commit generated copies of auto-config metadata to project src and docs/components
diff --git a/components-starter/camel-activemq-starter/src/main/docs/activemq.json b/components-starter/camel-activemq-starter/src/main/docs/activemq.json
new file mode 100644
index 0000000..4161548
--- /dev/null
+++ b/components-starter/camel-activemq-starter/src/main/docs/activemq.json
@@ -0,0 +1,706 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.activemq",
+      "type": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.activemq.accept-messages-while-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on the JMS broker. To avoid this its recommended to enable this option.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.acknowledgement-mode-name",
+      "type": "java.lang.String",
+      "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": "AUTO_ACKNOWLEDGE"
+    },
+    {
+      "name": "camel.component.activemq.allow-additional-headers",
+      "type": "java.lang.String",
+      "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.allow-auto-wired-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.allow-auto-wired-destination-resolver",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.allow-reply-manager-quick-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.always-copy-message",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set)",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.artemis-consumer-priority",
+      "type": "java.lang.Integer",
+      "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.artemis-streaming-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.async-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been enabled, then asyncConsumer=true does not run asynchronously, as transaction must be executed synchronously (Camel 3.0 may support async transactions).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.async-start-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.async-stop-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.broker-url",
+      "type": "java.lang.String",
+      "description": "Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default (however can be overridden by configuration from environment variables)",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.cache-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": "CACHE_AUTO"
+    },
+    {
+      "name": "camel.component.activemq.client-id",
+      "type": "java.lang.String",
+      "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.configuration",
+      "type": "org.apache.camel.component.jms.JmsConfiguration",
+      "description": "To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.consumer-type",
+      "type": "org.apache.camel.component.jms.ConsumerType",
+      "description": "The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.correlation-property",
+      "type": "java.lang.String",
+      "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.activemq.default-task-executor-type",
+      "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+      "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsync for reply consumers. The use of ThreadPool is recommended to reduce thread trash in elastic configurations with dynamically increasing and decreasing concurrent consumers.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.delivery-delay",
+      "type": "java.lang.Long",
+      "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.delivery-mode",
+      "type": "java.lang.Integer",
+      "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether persistent delivery is used by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.destination-resolver",
+      "type": "org.springframework.jms.support.destination.DestinationResolver",
+      "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.disable-reply-to",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you want to route message from one system to another.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.disable-time-to-live",
+      "type": "java.lang.Boolean",
+      "description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire on the receiver system. See below in section About time to live for more details.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.durable-subscription-name",
+      "type": "java.lang.String",
+      "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.eager-loading-of-properties",
+      "type": "java.lang.Boolean",
+      "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.eager-poison-body",
+      "type": "java.lang.String",
+      "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": "Poison JMS message due to ${exception.message}"
+    },
+    {
+      "name": "camel.component.activemq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the activemq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.error-handler-log-stack-trace",
+      "type": "java.lang.Boolean",
+      "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.error-handler-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.exception-listener",
+      "type": "javax.jms.ExceptionListener",
+      "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.explicit-qos-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.expose-listener-session",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the listener session should be exposed when consuming messages.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.force-send-original-message",
+      "type": "java.lang.Boolean",
+      "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.format-date-headers-to-iso8601",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.idle-consumer-limit",
+      "type": "java.lang.Integer",
+      "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.idle-task-execution-limit",
+      "type": "java.lang.Integer",
+      "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.include-all-jmsx-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.include-sent-jms-message-id",
+      "type": "java.lang.Boolean",
+      "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.jms-key-format-strategy",
+      "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.jms-message-type",
+      "type": "org.apache.camel.component.jms.JmsMessageType",
+      "description": "Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.lazy-create-transaction-manager",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.map-jms-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.max-messages-per-task",
+      "type": "java.lang.Integer",
+      "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.message-converter",
+      "type": "org.springframework.jms.support.converter.MessageConverter",
+      "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.message-created-strategy",
+      "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.message-id-enabled",
+      "type": "java.lang.Boolean",
+      "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.message-listener-container-factory",
+      "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+      "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.message-timestamp-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.password",
+      "type": "java.lang.String",
+      "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.preserve-message-qos",
+      "type": "java.lang.Boolean",
+      "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by contrast, will only use options set on the endpoint, and not values from the message header.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.priority",
+      "type": "java.lang.Integer",
+      "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 4
+    },
+    {
+      "name": "camel.component.activemq.pub-sub-no-local",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to inhibit the delivery of messages published by its own connection.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.queue-browse-strategy",
+      "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+      "description": "To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.receive-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for receiving messages (in milliseconds). The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.activemq.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.activemq.reply-to",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w\/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE_NONE is not allowed, and you must use a higher value such as CACHE_CONSUMER or CACHE_SESSION.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.reply-to-delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use persistent delivery by default for replies.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.reply-to-destination-selector-name",
+      "type": "java.lang.String",
+      "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.reply-to-override",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-same-destination-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.reply-to-type",
+      "type": "org.apache.camel.component.jms.ReplyToType",
+      "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running in a clustered environment, and the fact that Shared reply queues has lower performance than its alternatives Temporary and Exclusive.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.request-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.activemq.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.activemq.selector",
+      "type": "java.lang.String",
+      "description": "Sets the JMS selector to use",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.stream-message-type-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no more data.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.subscription-durable",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.subscription-name",
+      "type": "java.lang.String",
+      "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.subscription-shared",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscriptionDurable as well. Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well. Requires a JMS 2.0 compatible message broker.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.task-executor",
+      "type": "org.springframework.core.task.TaskExecutor",
+      "description": "Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.time-to-live",
+      "type": "java.lang.Long",
+      "description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.transacted",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use transacted mode",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.transacted-in-out",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.transaction-name",
+      "type": "java.lang.String",
+      "description": "The name of the transaction to use.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.transaction-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout value of the transaction (in seconds), if using transacted mode.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an Exchange and not a regular payload. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.trust-all-packages",
+      "type": "java.lang.Boolean",
+      "description": "Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.use-message-id-as-correlation-id",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.use-pooled-connection",
+      "type": "java.lang.Boolean",
+      "description": "Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is true.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.use-single-connection",
+      "type": "java.lang.Boolean",
+      "description": "Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.username",
+      "type": "java.lang.String",
+      "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.wait-for-provision-correlation-to-be-updated-counter",
+      "type": "java.lang.Integer",
+      "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.activemq.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+      "type": "java.lang.Long",
+      "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 100
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ahc-starter/src/main/docs/ahc.json b/components-starter/camel-ahc-starter/src/main/docs/ahc.json
new file mode 100644
index 0000000..dac99f4
--- /dev/null
+++ b/components-starter/camel-ahc-starter/src/main/docs/ahc.json
@@ -0,0 +1,87 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ahc",
+      "type": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ahc.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ahc.binding",
+      "type": "org.apache.camel.component.ahc.AhcBinding",
+      "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.client",
+      "type": "org.asynchttpclient.AsyncHttpClient",
+      "description": "To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.client-config",
+      "type": "org.asynchttpclient.AsyncHttpClientConfig",
+      "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ahc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ahc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws.json b/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws.json
new file mode 100644
index 0000000..97d36e2
--- /dev/null
+++ b/components-starter/camel-ahc-ws-starter/src/main/docs/ahc-ws.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ahc-ws",
+      "type": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ahc-ws.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc-ws.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ahc-ws.binding",
+      "type": "org.apache.camel.component.ahc.AhcBinding",
+      "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc-ws.client",
+      "type": "org.asynchttpclient.AsyncHttpClient",
+      "description": "To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.client-config",
+      "type": "org.asynchttpclient.AsyncHttpClientConfig",
+      "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ahc-ws.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ahc-ws component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc-ws.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-amqp-starter/src/main/docs/amqp.json b/components-starter/camel-amqp-starter/src/main/docs/amqp.json
new file mode 100644
index 0000000..fbcf11a
--- /dev/null
+++ b/components-starter/camel-amqp-starter/src/main/docs/amqp.json
@@ -0,0 +1,686 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.amqp",
+      "type": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.amqp.accept-messages-while-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on the JMS broker. To avoid this its recommended to enable this option.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.acknowledgement-mode-name",
+      "type": "java.lang.String",
+      "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": "AUTO_ACKNOWLEDGE"
+    },
+    {
+      "name": "camel.component.amqp.allow-additional-headers",
+      "type": "java.lang.String",
+      "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.allow-auto-wired-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.allow-auto-wired-destination-resolver",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.allow-reply-manager-quick-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.always-copy-message",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set)",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.artemis-consumer-priority",
+      "type": "java.lang.Integer",
+      "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.artemis-streaming-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.async-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been enabled, then asyncConsumer=true does not run asynchronously, as transaction must be executed synchronously (Camel 3.0 may support async transactions).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.async-start-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.async-stop-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.cache-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": "CACHE_AUTO"
+    },
+    {
+      "name": "camel.component.amqp.client-id",
+      "type": "java.lang.String",
+      "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.configuration",
+      "type": "org.apache.camel.component.jms.JmsConfiguration",
+      "description": "To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.consumer-type",
+      "type": "org.apache.camel.component.jms.ConsumerType",
+      "description": "The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.correlation-property",
+      "type": "java.lang.String",
+      "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.amqp.default-task-executor-type",
+      "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+      "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsync for reply consumers. The use of ThreadPool is recommended to reduce thread trash in elastic configurations with dynamically increasing and decreasing concurrent consumers.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.delivery-delay",
+      "type": "java.lang.Long",
+      "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.delivery-mode",
+      "type": "java.lang.Integer",
+      "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether persistent delivery is used by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.destination-resolver",
+      "type": "org.springframework.jms.support.destination.DestinationResolver",
+      "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.disable-reply-to",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you want to route message from one system to another.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.disable-time-to-live",
+      "type": "java.lang.Boolean",
+      "description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire on the receiver system. See below in section About time to live for more details.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.durable-subscription-name",
+      "type": "java.lang.String",
+      "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.eager-loading-of-properties",
+      "type": "java.lang.Boolean",
+      "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.eager-poison-body",
+      "type": "java.lang.String",
+      "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": "Poison JMS message due to ${exception.message}"
+    },
+    {
+      "name": "camel.component.amqp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the amqp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.error-handler-log-stack-trace",
+      "type": "java.lang.Boolean",
+      "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.error-handler-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.exception-listener",
+      "type": "javax.jms.ExceptionListener",
+      "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.explicit-qos-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.expose-listener-session",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the listener session should be exposed when consuming messages.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.force-send-original-message",
+      "type": "java.lang.Boolean",
+      "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.format-date-headers-to-iso8601",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.idle-consumer-limit",
+      "type": "java.lang.Integer",
+      "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.idle-task-execution-limit",
+      "type": "java.lang.Integer",
+      "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.include-all-jmsx-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.include-amqp-annotations",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include AMQP annotations when mapping from AMQP to Camel Message. Setting this to true maps AMQP message annotations that contain a JMS_AMQP_MA_ prefix to message headers. Due to limitations in Apache Qpid JMS API, currently delivery annotations are ignored.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.include-sent-jms-message-id",
+      "type": "java.lang.Boolean",
+      "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.jms-key-format-strategy",
+      "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.jms-message-type",
+      "type": "org.apache.camel.component.jms.JmsMessageType",
+      "description": "Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.lazy-create-transaction-manager",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.map-jms-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.max-messages-per-task",
+      "type": "java.lang.Integer",
+      "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.message-converter",
+      "type": "org.springframework.jms.support.converter.MessageConverter",
+      "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.message-created-strategy",
+      "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.message-id-enabled",
+      "type": "java.lang.Boolean",
+      "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.message-listener-container-factory",
+      "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+      "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.message-timestamp-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.password",
+      "type": "java.lang.String",
+      "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.preserve-message-qos",
+      "type": "java.lang.Boolean",
+      "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by contrast, will only use options set on the endpoint, and not values from the message header.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.priority",
+      "type": "java.lang.Integer",
+      "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 4
+    },
+    {
+      "name": "camel.component.amqp.pub-sub-no-local",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to inhibit the delivery of messages published by its own connection.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.queue-browse-strategy",
+      "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+      "description": "To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.receive-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for receiving messages (in milliseconds). The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.amqp.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.amqp.reply-to",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w\/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE_NONE is not allowed, and you must use a higher value such as CACHE_CONSUMER or CACHE_SESSION.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.reply-to-delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use persistent delivery by default for replies.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.reply-to-destination-selector-name",
+      "type": "java.lang.String",
+      "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.reply-to-override",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-same-destination-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.reply-to-type",
+      "type": "org.apache.camel.component.jms.ReplyToType",
+      "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running in a clustered environment, and the fact that Shared reply queues has lower performance than its alternatives Temporary and Exclusive.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.request-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.amqp.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.amqp.selector",
+      "type": "java.lang.String",
+      "description": "Sets the JMS selector to use",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.stream-message-type-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no more data.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.subscription-durable",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.subscription-name",
+      "type": "java.lang.String",
+      "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.subscription-shared",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscriptionDurable as well. Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well. Requires a JMS 2.0 compatible message broker.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.task-executor",
+      "type": "org.springframework.core.task.TaskExecutor",
+      "description": "Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.time-to-live",
+      "type": "java.lang.Long",
+      "description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.transacted",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use transacted mode",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.transacted-in-out",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.transaction-name",
+      "type": "java.lang.String",
+      "description": "The name of the transaction to use.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.transaction-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout value of the transaction (in seconds), if using transacted mode.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an Exchange and not a regular payload. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.use-message-id-as-correlation-id",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.username",
+      "type": "java.lang.String",
+      "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.wait-for-provision-correlation-to-be-updated-counter",
+      "type": "java.lang.Integer",
+      "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.amqp.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+      "type": "java.lang.Long",
+      "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 100
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-any23-starter/src/main/docs/any23.json b/components-starter/camel-any23-starter/src/main/docs/any23.json
new file mode 100644
index 0000000..9c8cd56
--- /dev/null
+++ b/components-starter/camel-any23-starter/src/main/docs/any23.json
@@ -0,0 +1,53 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.any23",
+      "type": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.any23.base-u-r-i",
+      "type": "java.lang.String",
+      "description": "The URI to use as base for building RDF entities if only relative paths are provided.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.configuration",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.any23.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the any23 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.extractors",
+      "type": "java.util.List<java.lang.String>",
+      "description": "List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.output-format",
+      "type": "org.apache.camel.dataformat.any23.Any23OutputFormat",
+      "description": "What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-arangodb-starter/src/main/docs/arangodb.json b/components-starter/camel-arangodb-starter/src/main/docs/arangodb.json
new file mode 100644
index 0000000..f4e4b0b
--- /dev/null
+++ b/components-starter/camel-arangodb-starter/src/main/docs/arangodb.json
@@ -0,0 +1,103 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.arangodb",
+      "type": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.arangodb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.arangodb.configuration",
+      "type": "org.apache.camel.component.arangodb.ArangoDbConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.arangodb.ArangoDbConfiguration type.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.arangodb.document-collection",
+      "type": "java.lang.String",
+      "description": "Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when using the CRUD operation on the document database collections (SAVE_DOCUMENT , FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT).",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.edge-collection",
+      "type": "java.lang.String",
+      "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perform CRUD operation on edges using these operations : SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX. The graph attribute is mandatory.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the arangodb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.graph",
+      "type": "java.lang.String",
+      "description": "Graph name, when using ArangoDb as a Graph Database. Combine this attribute with one of the two attributes vertexCollection and edgeCollection.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.host",
+      "type": "java.lang.String",
+      "description": "ArangoDB host. If host and port are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.arangodb.operation",
+      "type": "org.apache.camel.component.arangodb.ArangoDbOperation",
+      "description": "Operations to perform on ArangoDb. For the operation AQL_QUERY, no need to specify a collection or graph.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.password",
+      "type": "java.lang.String",
+      "description": "ArangoDB password. If user and password are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.port",
+      "type": "java.lang.Integer",
+      "description": "ArangoDB exposed port. If host and port are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.user",
+      "type": "java.lang.String",
+      "description": "ArangoDB user. If user and password are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.vertex-collection",
+      "type": "java.lang.String",
+      "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the vertexCollection name to perform CRUD operation on vertices using these operations : SAVE_EDGE, FIND_EDGE_BY_KEY, UPDATE_EDGE, DELETE_EDGE. The graph attribute is mandatory.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-as2-starter/src/main/docs/as2.json b/components-starter/camel-as2-starter/src/main/docs/as2.json
new file mode 100644
index 0000000..9f15fa7
--- /dev/null
+++ b/components-starter/camel-as2-starter/src/main/docs/as2.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.as2",
+      "type": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.as2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.as2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.as2.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.as2.configuration",
+      "type": "org.apache.camel.component.as2.AS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.as2.AS2Configuration type.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.as2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.as2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the as2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.as2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-asn1-starter/src/main/docs/asn1.json b/components-starter/camel-asn1-starter/src/main/docs/asn1.json
new file mode 100644
index 0000000..dda23c4
--- /dev/null
+++ b/components-starter/camel-asn1-starter/src/main/docs/asn1.json
@@ -0,0 +1,42 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.asn1",
+      "type": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.asn1.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.asn1.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.asn1.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the asn1 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.asn1.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class to use when unmarshalling.",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.asn1.using-iterator",
+      "type": "java.lang.Boolean",
+      "description": "If the asn1 file has more then one entry, the setting this option to true, allows to work with the splitter EIP, to split the data using an iterator in a streaming mode.",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-asterisk-starter/src/main/docs/asterisk.json b/components-starter/camel-asterisk-starter/src/main/docs/asterisk.json
new file mode 100644
index 0000000..619735c
--- /dev/null
+++ b/components-starter/camel-asterisk-starter/src/main/docs/asterisk.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.asterisk",
+      "type": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.asterisk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.asterisk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.asterisk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.asterisk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.asterisk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the asterisk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.asterisk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-atlasmap-starter/src/main/docs/atlasmap.json b/components-starter/camel-atlasmap-starter/src/main/docs/atlasmap.json
new file mode 100644
index 0000000..23d9276
--- /dev/null
+++ b/components-starter/camel-atlasmap-starter/src/main/docs/atlasmap.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atlasmap",
+      "type": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atlasmap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atlasmap.atlas-context-factory",
+      "type": "io.atlasmap.api.AtlasContextFactory",
+      "description": "To use the AtlasContextFactory otherwise a new engine is created. The option is a io.atlasmap.api.AtlasContextFactory type.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atlasmap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atlasmap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atlasmap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atlasmap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atlasmap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atlasmap.properties-file",
+      "type": "java.lang.String",
+      "description": "The URI of the properties file which is used for AtlasContextFactory initialization.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-atmos-starter/src/main/docs/atmos.json b/components-starter/camel-atmos-starter/src/main/docs/atmos.json
new file mode 100644
index 0000000..962ff5f6
--- /dev/null
+++ b/components-starter/camel-atmos-starter/src/main/docs/atmos.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atmos",
+      "type": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atmos.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atmos.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmos.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atmos.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atmos component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.full-token-id",
+      "type": "java.lang.String",
+      "description": "The token id to pass to the Atmos client",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmos.secret-key",
+      "type": "java.lang.String",
+      "description": "The secret key to pass to the Atmos client (should be base64 encoded)",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.ssl-validation",
+      "type": "java.lang.Boolean",
+      "description": "Whether the Atmos client should perform SSL validation",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmos.uri",
+      "type": "java.lang.String",
+      "description": "The URI of the server for the Atmos client to connect to",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket.json b/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket.json
new file mode 100644
index 0000000..744a897
--- /dev/null
+++ b/components-starter/camel-atmosphere-websocket-starter/src/main/docs/atmosphere-websocket.json
@@ -0,0 +1,101 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atmosphere-websocket",
+      "type": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atmosphere-websocket.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.attachment-multipart-binding",
+      "type": "java.lang.Boolean",
+      "description": "Whether to automatic bind multipart\/form-data as attachments on the Camel Exchange. The options attachmentMultipartBinding=true and disableStreamCache=false cannot work together. Remove disableStreamCache to use AttachmentMultipartBinding. This is turn off by default as this may require servlet specific configuration to enable this when using Servlet's.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atmosphere-websocket component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.file-name-ext-whitelist",
+      "type": "java.lang.String",
+      "description": "Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.http-registry",
+      "type": "org.apache.camel.http.common.HttpRegistry",
+      "description": "To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.http.common.HttpRegistry type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.servlet-name",
+      "type": "java.lang.String",
+      "description": "Default name of servlet to use. The default name is CamelServlet.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": "CamelServlet"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-atom-starter/src/main/docs/atom.json b/components-starter/camel-atom-starter/src/main/docs/atom.json
new file mode 100644
index 0000000..5d7d267
--- /dev/null
+++ b/components-starter/camel-atom-starter/src/main/docs/atom.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atom",
+      "type": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atom.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atom.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atom.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atom.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atom.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atom component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/docs/atomix.json b/components-starter/camel-atomix-starter/src/main/docs/atomix.json
new file mode 100644
index 0000000..be49cda
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/docs/atomix.json
@@ -0,0 +1,864 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.atomix",
+      "type": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map",
+      "type": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-messaging",
+      "type": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-multimap",
+      "type": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-queue",
+      "type": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-set",
+      "type": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-value",
+      "type": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.atomix.address",
+      "type": "java.lang.String",
+      "description": "The address of the node - node only.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The Atomix configuration uri.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the atomix cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.atomix.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not (node only).",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.id",
+      "type": "java.lang.String",
+      "description": "The cluster id.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.mode",
+      "type": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration$Mode",
+      "description": "Sets the cluster mode.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.nodes",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "The address of the nodes composing the cluster.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.storage-level",
+      "type": "io.atomix.copycat.server.storage.StorageLevel",
+      "description": "The storage mode - node only.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.storage-path",
+      "type": "java.lang.String",
+      "description": "The storage directory - node only.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-map.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-map.configuration",
+      "type": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.map.AtomixMapConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-map.default-action",
+      "type": "org.apache.camel.component.atomix.client.map.AtomixMap$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-map component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-map.key",
+      "type": "java.lang.Object",
+      "description": "The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-map.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-map.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-messaging.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-messaging.broadcast-type",
+      "type": "org.apache.camel.component.atomix.client.messaging.AtomixMessaging$BroadcastType",
+      "description": "The broadcast type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.channel-name",
+      "type": "java.lang.String",
+      "description": "The messaging channel name",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.configuration",
+      "type": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-messaging.default-action",
+      "type": "org.apache.camel.component.atomix.client.messaging.AtomixMessaging$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-messaging component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-messaging.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-messaging.member-name",
+      "type": "java.lang.String",
+      "description": "The Atomix Group member name",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-multimap.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-multimap.configuration",
+      "type": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-multimap.default-action",
+      "type": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMap$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-multimap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-multimap.key",
+      "type": "java.lang.Object",
+      "description": "The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-multimap.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-multimap.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-queue.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-queue.configuration",
+      "type": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-queue.default-action",
+      "type": "org.apache.camel.component.atomix.client.queue.AtomixQueue$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-queue.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-set.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-set.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-set.configuration",
+      "type": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.set.AtomixSetConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-set.default-action",
+      "type": "org.apache.camel.component.atomix.client.set.AtomixSet$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-set component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-set.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-set.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-set.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-value.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-value.configuration",
+      "type": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.value.AtomixValueConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-value.default-action",
+      "type": "org.apache.camel.component.atomix.client.value.AtomixValue$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-value component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-value.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-value.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-value.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc.json b/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc.json
new file mode 100644
index 0000000..e4207c4
--- /dev/null
+++ b/components-starter/camel-avro-rpc-starter/src/main/docs/avro-rpc.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.avro",
+      "type": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.avro.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.avro.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.configuration",
+      "type": "org.apache.camel.component.avro.AvroConfiguration",
+      "description": "To use a shared AvroConfiguration to configure options once. The option is a org.apache.camel.component.avro.AvroConfiguration type.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.avro.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the avro component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.protocol",
+      "type": "org.apache.avro.Protocol",
+      "description": "Avro protocol to use. The option is a org.apache.avro.Protocol type.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.protocol-class-name",
+      "type": "java.lang.String",
+      "description": "Avro protocol to use defined by the FQN class name",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.protocol-location",
+      "type": "java.lang.String",
+      "description": "Avro protocol location",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.reflection-protocol",
+      "type": "java.lang.Boolean",
+      "description": "If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassName protocol type will be auto detected",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.single-parameter",
+      "type": "java.lang.Boolean",
+      "description": "If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.uri-authority",
+      "type": "java.lang.String",
+      "description": "Authority to use (username and password)",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-avro-starter/src/main/docs/avro.json b/components-starter/camel-avro-starter/src/main/docs/avro.json
new file mode 100644
index 0000000..856d9e5
--- /dev/null
+++ b/components-starter/camel-avro-starter/src/main/docs/avro.json
@@ -0,0 +1,35 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.avro",
+      "type": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.avro.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.avro.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the avro data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro.instance-class-name",
+      "type": "java.lang.String",
+      "description": "Class name to use for marshal and unmarshalling",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-secrets-manager-starter/src/main/docs/aws-secrets-manager.json b/components-starter/camel-aws-secrets-manager-starter/src/main/docs/aws-secrets-manager.json
new file mode 100644
index 0000000..e3fcebe
--- /dev/null
+++ b/components-starter/camel-aws-secrets-manager-starter/src/main/docs/aws-secrets-manager.json
@@ -0,0 +1,138 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws-secrets-manager",
+      "type": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws-secrets-manager.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.binary-payload",
+      "type": "java.lang.Boolean",
+      "description": "Set if the secret is binary or not",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.configuration",
+      "type": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration type.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws-secrets-manager component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.operation",
+      "type": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Secrets Manager client",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Secrets Manager client",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Secrets Manager client",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.region",
+      "type": "java.lang.String",
+      "description": "The region in which Secrets Manager client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.secrets-manager-client",
+      "type": "software.amazon.awssdk.services.secretsmanager.SecretsManagerClient",
+      "description": "To use a existing configured AWS Secrets Manager as client. The option is a software.amazon.awssdk.services.secretsmanager.SecretsManagerClient type.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-xray-starter/src/main/docs/aws-xray.json b/components-starter/camel-aws-xray-starter/src/main/docs/aws-xray.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-aws-xray-starter/src/main/docs/aws-xray.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena.json b/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena.json
new file mode 100644
index 0000000..2c02fb4
--- /dev/null
+++ b/components-starter/camel-aws2-athena-starter/src/main/docs/aws2-athena.json
@@ -0,0 +1,219 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-athena",
+      "type": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-athena.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.amazon-athena-client",
+      "type": "software.amazon.awssdk.services.athena.AthenaClient",
+      "description": "The AmazonAthena instance to use as the client. The option is a software.amazon.awssdk.services.athena.AthenaClient type.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-athena.client-request-token",
+      "type": "java.lang.String",
+      "description": "A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.configuration",
+      "type": "org.apache.camel.component.aws2.athena.Athena2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.athena.Athena2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-athena.database",
+      "type": "java.lang.String",
+      "description": "The Athena database to use.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.delay",
+      "type": "java.lang.Long",
+      "description": "Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 2000
+    },
+    {
+      "name": "camel.component.aws2-athena.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-athena component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.encryption-option",
+      "type": "software.amazon.awssdk.services.athena.model.EncryptionOption",
+      "description": "The encryption type to use when storing query results in S3. One of SSE_S3, SSE_KMS, or CSE_KMS.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.include-trace",
+      "type": "java.lang.Boolean",
+      "description": "Include useful trace information at the beginning of queries as an SQL comment (prefixed with --).",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-athena.initial-delay",
+      "type": "java.lang.Long",
+      "description": "Milliseconds before the first poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.aws2-athena.kms-key",
+      "type": "java.lang.String",
+      "description": "For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-athena.max-attempts",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of times to attempt a query. Set to 1 to disable retries. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.aws2-athena.max-results",
+      "type": "java.lang.Integer",
+      "description": "Max number of results to return for the given operation (if supported by the Athena API endpoint). If not set, will use the Athena API default for the given operation.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.next-token",
+      "type": "java.lang.String",
+      "description": "Pagination token to use in the case where the response from the previous request was truncated.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.operation",
+      "type": "org.apache.camel.component.aws2.athena.Athena2Operations",
+      "description": "The Athena API function to call.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.output-location",
+      "type": "java.lang.String",
+      "description": "The location in Amazon S3 where query results are stored, such as s3:\/\/path\/to\/query\/bucket\/. Ensure this value ends with a forward slash ('\/').",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.output-type",
+      "type": "org.apache.camel.component.aws2.athena.Athena2OutputType",
+      "description": "How query results should be returned. One of StreamList (default - return a GetQueryResultsIterable that can page through all results), SelectList (returns at most 1,000 rows at a time, plus a NextToken value as a header than can be used for manual pagination of results), S3Pointer (return an S3 path pointing to the results).",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Athena client.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Athena client.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Athena client.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.query-execution-id",
+      "type": "java.lang.String",
+      "description": "The unique ID identifying the query execution.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.query-string",
+      "type": "java.lang.String",
+      "description": "The SQL query to run. Except for simple queries, prefer setting this as the body of the Exchange or as a header using Athena2Constants.QUERY_STRING to avoid having to deal with URL encoding issues.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.region",
+      "type": "java.lang.String",
+      "description": "The region in which Athena client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1). You'll need to use the name Region.EU_WEST_1.id().",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.reset-wait-timeout-on-retry",
+      "type": "java.lang.Boolean",
+      "description": "Reset the waitTimeout countdown in the event of a query retry. If set to true, potential max time spent waiting for queries is equal to waitTimeout x maxAttempts. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-athena.retry",
+      "type": "java.lang.String",
+      "description": "Optional comma separated list of error types to retry the query for. Use 'retryable' to retry all retryable failure conditions (e.g. generic errors and resources exhausted), 'generic' to retry 'GENERIC_INTERNAL_ERROR' failures, 'exhausted' to retry queries that have exhausted resource limits, 'always' to always retry regardless of failure condition, or 'never' or null to never retry (default). See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": "never"
+    },
+    {
+      "name": "camel.component.aws2-athena.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Athena client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-athena.wait-timeout",
+      "type": "java.lang.Long",
+      "description": "Optional max wait time in millis to wait for a successful query completion. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.aws2-athena.work-group",
+      "type": "java.lang.String",
+      "description": "The workgroup to use for running the query.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw.json b/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw.json
new file mode 100644
index 0000000..b0760f6
--- /dev/null
+++ b/components-starter/camel-aws2-cw-starter/src/main/docs/aws2-cw.json
@@ -0,0 +1,142 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-cw",
+      "type": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-cw.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.amazon-cw-client",
+      "type": "software.amazon.awssdk.services.cloudwatch.CloudWatchClient",
+      "description": "To use the AmazonCloudWatch as the client. The option is a software.amazon.awssdk.services.cloudwatch.CloudWatchClient type.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-cw.configuration",
+      "type": "org.apache.camel.component.aws2.cw.Cw2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.cw.Cw2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-cw.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-cw component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.name",
+      "type": "java.lang.String",
+      "description": "The metric name",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the CW client",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the CW client",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the CW client",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.region",
+      "type": "java.lang.String",
+      "description": "The region in which CW client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.timestamp",
+      "type": "java.time.Instant",
+      "description": "The metric timestamp. The option is a java.time.Instant type.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.unit",
+      "type": "java.lang.String",
+      "description": "The metric unit",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.value",
+      "type": "java.lang.Double",
+      "description": "The metric value",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb.json b/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb.json
new file mode 100644
index 0000000..748ed15
--- /dev/null
+++ b/components-starter/camel-aws2-ddb-starter/src/main/docs/aws2-ddb.json
@@ -0,0 +1,284 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ddb",
+      "type": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream",
+      "type": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ddb.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.amazon-d-d-b-client",
+      "type": "software.amazon.awssdk.services.dynamodb.DynamoDbClient",
+      "description": "To use the AmazonDynamoDB as the client. The option is a software.amazon.awssdk.services.dynamodb.DynamoDbClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ddb.configuration",
+      "type": "org.apache.camel.component.aws2.ddb.Ddb2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.ddb.Ddb2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.consistent-read",
+      "type": "java.lang.Boolean",
+      "description": "Determines whether or not strong consistency should be enforced when data is read.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ddb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ddb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.key-attribute-name",
+      "type": "java.lang.String",
+      "description": "Attribute name when creating table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.key-attribute-type",
+      "type": "java.lang.String",
+      "description": "Attribute type when creating table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.key-scalar-type",
+      "type": "java.lang.String",
+      "description": "The key scalar type, it can be S (String), N (Number) and B (Bytes)",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.operation",
+      "type": "org.apache.camel.component.aws2.ddb.Ddb2Operations",
+      "description": "What operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the DDB client",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The region in which DynamoDB client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the DDB client",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.read-capacity",
+      "type": "java.lang.Long",
+      "description": "The provisioned throughput to reserve for reading resources from your table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.region",
+      "type": "java.lang.String",
+      "description": "The region in which DDB client needs to work",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.write-capacity",
+      "type": "java.lang.Long",
+      "description": "The provisioned throughput to reserved for writing resources to your table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.amazon-dynamo-db-streams-client",
+      "type": "software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient",
+      "description": "Amazon DynamoDB client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.configuration",
+      "type": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ddbstream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.max-results-per-request",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of records that will be fetched in each poll",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the DDBStreams client",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the DDBStreams client",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the DDBStreams client",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.region",
+      "type": "java.lang.String",
+      "description": "The region in which DDBStreams client needs to work",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.stream-iterator-type",
+      "type": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration$StreamIteratorType",
+      "description": "Defines where in the DynamoDB stream to start getting records. Note that using FROM_START can cause a significant delay before the stream has caught up to real-time.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the DynamoDB Streams client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2.json b/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2.json
new file mode 100644
index 0000000..7890e32
--- /dev/null
+++ b/components-starter/camel-aws2-ec2-starter/src/main/docs/aws2-ec2.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ec2",
+      "type": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ec2.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.amazon-ec2-client",
+      "type": "software.amazon.awssdk.services.ec2.Ec2Client",
+      "description": "To use a existing configured AmazonEC2Client as client. The option is a software.amazon.awssdk.services.ec2.Ec2Client type.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ec2.configuration",
+      "type": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.ec2.AWS2EC2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ec2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ec2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.operation",
+      "type": "org.apache.camel.component.aws2.ec2.AWS2EC2Operations",
+      "description": "The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the EC2 client",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the EC2 client",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the EC2 client",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.region",
+      "type": "java.lang.String",
+      "description": "The region in which EC2 client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the EC2 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs.json b/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs.json
new file mode 100644
index 0000000..920e31c
--- /dev/null
+++ b/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ecs",
+      "type": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ecs.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ecs.configuration",
+      "type": "org.apache.camel.component.aws2.ecs.ECS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.ecs.ECS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ecs.ecs-client",
+      "type": "software.amazon.awssdk.services.ecs.EcsClient",
+      "description": "To use a existing configured AWS ECS as client. The option is a software.amazon.awssdk.services.ecs.EcsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ecs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.operation",
+      "type": "org.apache.camel.component.aws2.ecs.ECS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the ECS client",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the ECS client",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the ECS client",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.region",
+      "type": "java.lang.String",
+      "description": "The region in which ECS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the ECS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks.json b/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks.json
new file mode 100644
index 0000000..a744201
--- /dev/null
+++ b/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-eks",
+      "type": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-eks.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-eks.configuration",
+      "type": "org.apache.camel.component.aws2.eks.EKS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.eks.EKS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-eks.eks-client",
+      "type": "software.amazon.awssdk.services.eks.EksClient",
+      "description": "To use a existing configured AWS EKS as client. The option is a software.amazon.awssdk.services.eks.EksClient type.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-eks component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.operation",
+      "type": "org.apache.camel.component.aws2.eks.EKS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the EKS client",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the EKS client",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the EKS client",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.region",
+      "type": "java.lang.String",
+      "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the EKS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge.json b/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge.json
new file mode 100644
index 0000000..ac9f1e5
--- /dev/null
+++ b/components-starter/camel-aws2-eventbridge-starter/src/main/docs/aws2-eventbridge.json
@@ -0,0 +1,137 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-eventbridge",
+      "type": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-eventbridge.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.configuration",
+      "type": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration type.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-eventbridge component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.event-pattern-file",
+      "type": "java.lang.String",
+      "description": "EventPattern File",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.eventbridge-client",
+      "type": "software.amazon.awssdk.services.eventbridge.EventBridgeClient",
+      "description": "To use a existing configured AWS Eventbridge as client. The option is a software.amazon.awssdk.services.eventbridge.EventBridgeClient type.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.operation",
+      "type": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Eventbridge client",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Eventbridge client",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Eventbridge client",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.region",
+      "type": "java.lang.String",
+      "description": "The region in which Eventbridge client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Eventbridge client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam.json b/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam.json
new file mode 100644
index 0000000..df72eae
--- /dev/null
+++ b/components-starter/camel-aws2-iam-starter/src/main/docs/aws2-iam.json
@@ -0,0 +1,132 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-iam",
+      "type": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-iam.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-iam.configuration",
+      "type": "org.apache.camel.component.aws2.iam.IAM2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.iam.IAM2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-iam.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-iam component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.iam-client",
+      "type": "software.amazon.awssdk.services.iam.IamClient",
+      "description": "To use a existing configured AWS IAM as client. The option is a software.amazon.awssdk.services.iam.IamClient type.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.operation",
+      "type": "org.apache.camel.component.aws2.iam.IAM2Operations",
+      "description": "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the IAM client",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the IAM client",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the IAM client",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.region",
+      "type": "java.lang.String",
+      "description": "The region in which IAM client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": "aws-global"
+    },
+    {
+      "name": "camel.component.aws2-iam.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the IAM client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis.json b/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis.json
new file mode 100644
index 0000000..ee68f55
--- /dev/null
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/docs/aws2-kinesis.json
@@ -0,0 +1,287 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-kinesis",
+      "type": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose",
+      "type": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-kinesis-firehose.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.amazon-kinesis-firehose-client",
+      "type": "software.amazon.awssdk.services.firehose.FirehoseClient",
+      "description": "Amazon Kinesis Firehose client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.firehose.FirehoseClient type.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.cbor-enabled",
+      "type": "java.lang.Boolean",
+      "description": "This option will set the CBOR_ENABLED property during the execution",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.configuration",
+      "type": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-kinesis-firehose component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.operation",
+      "type": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Operations",
+      "description": "The operation to do in case the user don't want to send only a record",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Kinesis Firehose client",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Kinesis Firehose client",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Kinesis Firehose client",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.region",
+      "type": "java.lang.String",
+      "description": "The region in which Kinesis Firehose client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Kinesis Firehose client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.amazon-kinesis-client",
+      "type": "software.amazon.awssdk.services.kinesis.KinesisClient",
+      "description": "Amazon Kinesis client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.kinesis.KinesisClient type.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.cbor-enabled",
+      "type": "java.lang.Boolean",
+      "description": "This option will set the CBOR_ENABLED property during the execution",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis.configuration",
+      "type": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.kinesis.Kinesis2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-kinesis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.iterator-type",
+      "type": "software.amazon.awssdk.services.kinesis.model.ShardIteratorType",
+      "description": "Defines where in the Kinesis stream to start getting records",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.max-results-per-request",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of records that will be fetched in each poll",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.aws2-kinesis.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Kinesis client",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Kinesis client",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Kinesis client",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.region",
+      "type": "java.lang.String",
+      "description": "The region in which Kinesis Firehose client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.sequence-number",
+      "type": "java.lang.String",
+      "description": "The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.shard-closed",
+      "type": "org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum",
+      "description": "Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.shard-id",
+      "type": "java.lang.String",
+      "description": "Defines which shardId in the Kinesis stream to get records from",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Kinesis client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms.json b/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms.json
new file mode 100644
index 0000000..e44364c
--- /dev/null
+++ b/components-starter/camel-aws2-kms-starter/src/main/docs/aws2-kms.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-kms",
+      "type": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-kms.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kms.configuration",
+      "type": "org.apache.camel.component.aws2.kms.KMS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.kms.KMS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-kms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-kms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.kms-client",
+      "type": "software.amazon.awssdk.services.kms.KmsClient",
+      "description": "To use a existing configured AWS KMS as client. The option is a software.amazon.awssdk.services.kms.KmsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.operation",
+      "type": "org.apache.camel.component.aws2.kms.KMS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the KMS client",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the KMS client",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the KMS client",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.region",
+      "type": "java.lang.String",
+      "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the KMS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda.json b/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda.json
new file mode 100644
index 0000000..f9fa409
--- /dev/null
+++ b/components-starter/camel-aws2-lambda-starter/src/main/docs/aws2-lambda.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-lambda",
+      "type": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-lambda.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-lambda.aws-lambda-client",
+      "type": "software.amazon.awssdk.services.lambda.LambdaClient",
+      "description": "To use a existing configured AwsLambdaClient as client. The option is a software.amazon.awssdk.services.lambda.LambdaClient type.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.configuration",
+      "type": "org.apache.camel.component.aws2.lambda.Lambda2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.lambda.Lambda2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-lambda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-lambda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.operation",
+      "type": "org.apache.camel.component.aws2.lambda.Lambda2Operations",
+      "description": "The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Lambda client",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Lambda client",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Lambda client",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.region",
+      "type": "java.lang.String",
+      "description": "The region in which Lambda client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Lambda client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq.json b/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq.json
new file mode 100644
index 0000000..630657c
--- /dev/null
+++ b/components-starter/camel-aws2-mq-starter/src/main/docs/aws2-mq.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-mq",
+      "type": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-mq.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.amazon-mq-client",
+      "type": "software.amazon.awssdk.services.mq.MqClient",
+      "description": "To use a existing configured AmazonMQClient as client. The option is a software.amazon.awssdk.services.mq.MqClient type.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-mq.configuration",
+      "type": "org.apache.camel.component.aws2.mq.MQ2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.mq.MQ2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-mq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-mq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.operation",
+      "type": "org.apache.camel.component.aws2.mq.MQ2Operations",
+      "description": "The operation to perform. It can be listBrokers,createBroker,deleteBroker",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the MQ client",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the MQ client",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the MQ client",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.region",
+      "type": "java.lang.String",
+      "description": "The region in which MQ client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the MQ client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk.json b/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk.json
new file mode 100644
index 0000000..5f89a4d
--- /dev/null
+++ b/components-starter/camel-aws2-msk-starter/src/main/docs/aws2-msk.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-msk",
+      "type": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-msk.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-msk.configuration",
+      "type": "org.apache.camel.component.aws2.msk.MSK2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.msk.MSK2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-msk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-msk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.msk-client",
+      "type": "software.amazon.awssdk.services.kafka.KafkaClient",
+      "description": "To use a existing configured AWS MSK as client. The option is a software.amazon.awssdk.services.kafka.KafkaClient type.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.operation",
+      "type": "org.apache.camel.component.aws2.msk.MSK2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the MSK client",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the MSK client",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the MSK client",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.region",
+      "type": "java.lang.String",
+      "description": "The region in which MSK client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Kafka client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3.json b/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3.json
new file mode 100644
index 0000000..020d3a2
--- /dev/null
+++ b/components-starter/camel-aws2-s3-starter/src/main/docs/aws2-s3.json
@@ -0,0 +1,351 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-s3",
+      "type": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-s3.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.amazon-s3-client",
+      "type": "software.amazon.awssdk.services.s3.S3Client",
+      "description": "Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The option is a software.amazon.awssdk.services.s3.S3Client type.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.amazon-s3-presigner",
+      "type": "software.amazon.awssdk.services.s3.presigner.S3Presigner",
+      "description": "An S3 Presigner for Request, used mainly in createDownloadLink operation. The option is a software.amazon.awssdk.services.s3.presigner.S3Presigner type.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.auto-create-bucket",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAfterRead option enabled and it will create the destinationBucket if it doesn't exist already.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.autoclose-body",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true and includeBody is false, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to false and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.aws-k-m-s-key-id",
+      "type": "java.lang.String",
+      "description": "Define the id of KMS key to use in case KMS is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.batch-message-number",
+      "type": "java.lang.Integer",
+      "description": "The number of messages composing a batch in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.aws2-s3.batch-size",
+      "type": "java.lang.Integer",
+      "description": "The batch size (in bytes) in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": 1000000
+    },
+    {
+      "name": "camel.component.aws2-s3.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.configuration",
+      "type": "org.apache.camel.component.aws2.s3.AWS2S3Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.s3.AWS2S3Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customer-algorithm",
+      "type": "java.lang.String",
+      "description": "Define the customer algorithm to use in case CustomerKey is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customer-key-id",
+      "type": "java.lang.String",
+      "description": "Define the id of Customer key to use in case CustomerKey is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customer-key-m-d5",
+      "type": "java.lang.String",
+      "description": "Define the MD5 of Customer key to use in case CustomerKey is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-s3.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3Constants#KEY header.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.delete-after-write",
+      "type": "java.lang.Boolean",
+      "description": "Delete file object after the S3 file has been uploaded",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.destination-bucket",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket where an object must be moved when moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.destination-bucket-prefix",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket prefix to use when an object must be moved and moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.destination-bucket-suffix",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket suffix to use when an object must be moved and moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.done-file-name",
+      "type": "java.lang.String",
+      "description": "If provided, Camel will only consume files if a done file exists.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-s3 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.file-name",
+      "type": "java.lang.String",
+      "description": "To get the object from the bucket with the given file name",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.ignore-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the S3 Object Body will be ignored completely, if it is set to false the S3 Object will be put in the body. Setting this to true, will override any behavior defined by includeBody option.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.include-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed, while in case of includeBody false then it will be up to the caller to close the S3Object stream. However setting autocloseBody to true when includeBody is false it will schedule to close the S3Object stream automatically on exchange completion.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.include-folders",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the folders\/directories will be consumed. If it is false, they will be ignored, and Exchanges will not be created for those",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.key-name",
+      "type": "java.lang.String",
+      "description": "Setting the key name for an element in the bucket through endpoint parameter",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.move-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.multi-part-upload",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.naming-strategy",
+      "type": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum",
+      "description": "The naming strategy to use in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.operation",
+      "type": "org.apache.camel.component.aws2.s3.AWS2S3Operations",
+      "description": "The operation to do in case the user don't want to do only an upload",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.part-size",
+      "type": "java.lang.Long",
+      "description": "Setup the partSize which is used in multi part upload, the default size is 25M.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": 26214400
+    },
+    {
+      "name": "camel.component.aws2-s3.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.prefix",
+      "type": "java.lang.String",
+      "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "Specify a proxy port to be used inside the client definition.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the S3 client",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.region",
+      "type": "java.lang.String",
+      "description": "The region in which S3 client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.restarting-policy",
+      "type": "org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum",
+      "description": "The restarting policy to use in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.storage-class",
+      "type": "java.lang.String",
+      "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.streaming-upload-mode",
+      "type": "java.lang.Boolean",
+      "description": "When stream mode is true the upload to bucket will be done in streaming",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.streaming-upload-timeout",
+      "type": "java.lang.Long",
+      "description": "While streaming upload mode is true, this option set the timeout to complete upload",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.use-aws-k-m-s",
+      "type": "java.lang.Boolean",
+      "description": "Define if KMS must be used or not",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.use-customer-key",
+      "type": "java.lang.Boolean",
+      "description": "Define if Customer Key must be used or not",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses.json b/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses.json
new file mode 100644
index 0000000..c752261
--- /dev/null
+++ b/components-starter/camel-aws2-ses-starter/src/main/docs/aws2-ses.json
@@ -0,0 +1,142 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ses",
+      "type": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ses.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.amazon-s-e-s-client",
+      "type": "software.amazon.awssdk.services.ses.SesClient",
+      "description": "To use the AmazonSimpleEmailService as the client. The option is a software.amazon.awssdk.services.ses.SesClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ses.configuration",
+      "type": "org.apache.camel.component.aws2.ses.Ses2Configuration",
+      "description": "component configuration. The option is a org.apache.camel.component.aws2.ses.Ses2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ses.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ses component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ses.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ses.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SES client",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the SES client",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the SES client",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.region",
+      "type": "java.lang.String",
+      "description": "The region in which SES client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.reply-to-addresses",
+      "type": "java.util.List<java.lang.String>",
+      "description": "List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.return-path",
+      "type": "java.lang.String",
+      "description": "The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.subject",
+      "type": "java.lang.String",
+      "description": "The subject which is used if the message header 'CamelAwsSesSubject' is not present.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.to",
+      "type": "java.util.List<java.lang.String>",
+      "description": "List of destination email address. Can be overriden with 'CamelAwsSesTo' header.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ses.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Ses client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns.json b/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns.json
new file mode 100644
index 0000000..b6bca04
--- /dev/null
+++ b/components-starter/camel-aws2-sns-starter/src/main/docs/aws2-sns.json
@@ -0,0 +1,182 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-sns",
+      "type": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-sns.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.amazon-s-n-s-client",
+      "type": "software.amazon.awssdk.services.sns.SnsClient",
+      "description": "To use the AmazonSNS as the client. The option is a software.amazon.awssdk.services.sns.SnsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.auto-create-topic",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the topic",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sns.configuration",
+      "type": "org.apache.camel.component.aws2.sns.Sns2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.sns.Sns2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-sns.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-sns component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.kms-master-key-id",
+      "type": "java.lang.String",
+      "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.message-deduplication-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO Topic. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": "useExchangeId"
+    },
+    {
+      "name": "camel.component.aws2-sns.message-group-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO Topic. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.message-structure",
+      "type": "java.lang.String",
+      "description": "The message structure to use such as json",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this topic. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SNS client",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the SNS client",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the SNS client",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.queue-url",
+      "type": "java.lang.String",
+      "description": "The queueUrl to subscribe to",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.region",
+      "type": "java.lang.String",
+      "description": "The region in which SNS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.server-side-encryption-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Define if Server Side Encryption is enabled or not on the topic",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.subject",
+      "type": "java.lang.String",
+      "description": "The subject which is used if the message header 'CamelAwsSnsSubject' is not present.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.subscribe-s-n-sto-s-q-s",
+      "type": "java.lang.Boolean",
+      "description": "Define if the subscription between SNS Topic and SQS must be done or not",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the SNS client should expect to load credentials on an AWS infra instance or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs.json b/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs.json
new file mode 100644
index 0000000..1024c44
--- /dev/null
+++ b/components-starter/camel-aws2-sqs-starter/src/main/docs/aws2-sqs.json
@@ -0,0 +1,304 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-sqs",
+      "type": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-sqs.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.amazon-a-w-s-host",
+      "type": "java.lang.String",
+      "description": "The hostname of the Amazon AWS cloud.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": "amazonaws.com"
+    },
+    {
+      "name": "camel.component.aws2-sqs.amazon-s-q-s-client",
+      "type": "software.amazon.awssdk.services.sqs.SqsClient",
+      "description": "To use the AmazonSQS as client. The option is a software.amazon.awssdk.services.sqs.SqsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.attribute-names",
+      "type": "java.lang.String",
+      "description": "A list of attribute names to receive when consuming. Multiple names can be separated by comma.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.auto-create-queue",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the queue",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sqs.batch-separator",
+      "type": "java.lang.String",
+      "description": "Set the separator when passing a String to send batch message operation",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": ","
+    },
+    {
+      "name": "camel.component.aws2-sqs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Allows you to use multiple threads to poll the sqs queue to increase throughput",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.aws2-sqs.configuration",
+      "type": "org.apache.camel.component.aws2.sqs.Sqs2Configuration",
+      "description": "The AWS SQS default configuration. The option is a org.apache.camel.component.aws2.sqs.Sqs2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-sqs.default-visibility-timeout",
+      "type": "java.lang.Integer",
+      "description": "The default visibility timeout (in seconds)",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.delay-queue",
+      "type": "java.lang.Boolean",
+      "description": "Define if you want to apply delaySeconds option to the queue or on single messages",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.delay-seconds",
+      "type": "java.lang.Integer",
+      "description": "Delay sending messages for a number of seconds.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete message from SQS after it has been read",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sqs.delete-if-filtered",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to send the DeleteMessage to the SQS queue if the exchange has property with key Sqs2Constants#SQS_DELETE_FILTERED (CamelAwsSqsDeleteFiltered) set to true.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sqs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-sqs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.extend-message-visibility",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then a scheduled background task will keep extending the message visibility on SQS. This is needed if it takes a long time to process the message. If set to true defaultVisibilityTimeout must be set. See details at Amazon docs.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.kms-data-key-reuse-period-seconds",
+      "type": "java.lang.Integer",
+      "description": "The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes).",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.kms-master-key-id",
+      "type": "java.lang.String",
+      "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.maximum-message-size",
+      "type": "java.lang.Integer",
+      "description": "The maximumMessageSize (in bytes) an SQS message can contain for this queue.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-attribute-names",
+      "type": "java.lang.String",
+      "description": "A list of message attribute names to receive when consuming. Multiple names can be separated by comma.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-deduplication-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO queues. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": "useExchangeId"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-group-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO queues. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-retention-period",
+      "type": "java.lang.Integer",
+      "description": "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.operation",
+      "type": "org.apache.camel.component.aws2.sqs.Sqs2Operations",
+      "description": "The operation to do in case the user don't want to send only a message",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.protocol",
+      "type": "java.lang.String",
+      "description": "The underlying protocol used to communicate with SQS",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": "https"
+    },
+    {
+      "name": "camel.component.aws2-sqs.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.queue-owner-a-w-s-account-id",
+      "type": "java.lang.String",
+      "description": "Specify the queue owner aws account id when you need to connect the queue with different account owner.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.queue-url",
+      "type": "java.lang.String",
+      "description": "To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.receive-message-wait-time-seconds",
+      "type": "java.lang.Integer",
+      "description": "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.redrive-policy",
+      "type": "java.lang.String",
+      "description": "Specify the policy that send message to DeadLetter queue. See detail at Amazon docs.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.region",
+      "type": "java.lang.String",
+      "description": "The region in which SQS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.server-side-encryption-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Define if Server Side Encryption is enabled or not on the queue",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the SQS client should expect to load credentials on an AWS infra instance or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.visibility-timeout",
+      "type": "java.lang.Integer",
+      "description": "The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request to set in the com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only make sense if its different from defaultVisibilityTimeout. It changes the queue visibility timeout attribute permanently.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.wait-time-seconds",
+      "type": "java.lang.Integer",
+      "description": "Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts.json b/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts.json
new file mode 100644
index 0000000..2404664
--- /dev/null
+++ b/components-starter/camel-aws2-sts-starter/src/main/docs/aws2-sts.json
@@ -0,0 +1,132 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-sts",
+      "type": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-sts.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sts.configuration",
+      "type": "org.apache.camel.component.aws2.sts.STS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.sts.STS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-sts.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-sts component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.operation",
+      "type": "org.apache.camel.component.aws2.sts.STS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the STS client",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the STS client",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the STS client",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.region",
+      "type": "java.lang.String",
+      "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": "aws-global"
+    },
+    {
+      "name": "camel.component.aws2-sts.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.sts-client",
+      "type": "software.amazon.awssdk.services.sts.StsClient",
+      "description": "To use a existing configured AWS STS as client. The option is a software.amazon.awssdk.services.sts.StsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the STS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate.json b/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate.json
new file mode 100644
index 0000000..b08a70a
--- /dev/null
+++ b/components-starter/camel-aws2-translate-starter/src/main/docs/aws2-translate.json
@@ -0,0 +1,150 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-translate",
+      "type": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-translate.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.autodetect-source-language",
+      "type": "java.lang.Boolean",
+      "description": "Being able to autodetect the source language",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-translate.configuration",
+      "type": "org.apache.camel.component.aws2.translate.Translate2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.translate.Translate2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-translate.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-translate component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.operation",
+      "type": "org.apache.camel.component.aws2.translate.Translate2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Translate client",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Translate client",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Translate client",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.region",
+      "type": "java.lang.String",
+      "description": "The region in which Translate client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.source-language",
+      "type": "java.lang.String",
+      "description": "Source language to use",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.target-language",
+      "type": "java.lang.String",
+      "description": "Target language to use",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.translate-client",
+      "type": "software.amazon.awssdk.services.translate.TranslateClient",
+      "description": "To use a existing configured AWS Translate as client. The option is a software.amazon.awssdk.services.translate.TranslateClient type.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-cosmosdb-starter/src/main/docs/azure-cosmosdb.json b/components-starter/camel-azure-cosmosdb-starter/src/main/docs/azure-cosmosdb.json
new file mode 100644
index 0000000..d038047
--- /dev/null
+++ b/components-starter/camel-azure-cosmosdb-starter/src/main/docs/azure-cosmosdb.json
@@ -0,0 +1,216 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-cosmosdb",
+      "type": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-cosmosdb.account-key",
+      "type": "java.lang.String",
+      "description": "Sets either a master or readonly key used to perform authentication for accessing resource.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.change-feed-processor-options",
+      "type": "com.azure.cosmos.models.ChangeFeedProcessorOptions",
+      "description": "Sets the ChangeFeedProcessorOptions to be used. Unless specifically set the default values that will be used are: maximum items per page or FeedResponse: 100 lease renew interval: 17 seconds lease acquire interval: 13 seconds lease expiration interval: 60 seconds feed poll delay: 5 seconds maximum scale count: unlimited. The option is a com.azure.cosmos.models.ChangeFeedProcessorOptions type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.client-telemetry-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets the flag to enable client telemetry which will periodically collect database operations aggregation statistics, system information like cpu\/memory and send it to cosmos monitoring service, which will be helpful during debugging. DEFAULT value is false indicating this is opt in feature, by default no telemetry collection.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.configuration",
+      "type": "org.apache.camel.component.azure.cosmosdb.CosmosDbConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.cosmosdb.CosmosDbConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.connection-sharing-across-clients-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables connections sharing across multiple Cosmos Clients. The default is false. When you have multiple instances of Cosmos Client in the same JVM interacting to multiple Cosmos accounts, enabling this allows connection sharing in Direct mode if possible between instances of Cosmos Client. Please note, when setting this option, the connection configuration (e.g., socket timeout config, idle timeout config) of the first instantiated client will be used for all other client instances.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.consistency-level",
+      "type": "com.azure.cosmos.ConsistencyLevel",
+      "description": "Sets the consistency levels supported for Azure Cosmos DB client operations in the Azure Cosmos DB service. The requested ConsistencyLevel must match or be weaker than that provisioned for the database account. Consistency levels by order of strength are STRONG, BOUNDED_STALENESS, SESSION and EVENTUAL. Refer to consistency level documentation for additional details: https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/consistency-levels",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.container-partition-key-path",
+      "type": "java.lang.String",
+      "description": "Sets the container partition key path.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.content-response-on-write-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets the boolean to only return the headers and status code in Cosmos DB response in case of Create, Update and Delete operations on CosmosItem. In Consumer, it is enabled by default because of the ChangeFeed in the consumer that needs this flag to be enabled and thus is shouldn't be overridden. In Producer, it advised to disable it since it reduces the network overhead",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.cosmos-async-client",
+      "type": "com.azure.cosmos.CosmosAsyncClient",
+      "description": "Inject an external CosmosAsyncClient into the component which provides a client-side logical representation of the Azure Cosmos DB service. This asynchronous client is used to configure and execute requests against the service. The option is a com.azure.cosmos.CosmosAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-container-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos container automatically in case it doesn't exist in Cosmos database",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-database-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos database automatically in case it doesn't exist in Cosmos account",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-lease-container-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos lease container for the consumer automatically in case it doesn't exist in Cosmos database",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-lease-database-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos lease database for the consumer automatically in case it doesn't exist in Cosmos account",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.database-endpoint",
+      "type": "java.lang.String",
+      "description": "Sets the Azure Cosmos database endpoint the component will connect to.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-cosmosdb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.host-name",
+      "type": "java.lang.String",
+      "description": "Sets the hostname. The host: a host is an application instance that uses the change feed processor to listen for changes. Multiple instances with the same lease configuration can run in parallel, but each instance should have a different instance name. If not specified, this will be a generated random hostname.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.item-id",
+      "type": "java.lang.String",
+      "description": "Sets the itemId in case needed for operation on item like delete, replace",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.item-partition-key",
+      "type": "com.azure.cosmos.models.PartitionKey",
+      "description": "Sets partition key. Represents a partition key value in the Azure Cosmos DB database service. A partition key identifies the partition where the item is stored in. The option is a com.azure.cosmos.models.PartitionKey type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.lease-container-name",
+      "type": "java.lang.String",
+      "description": "Sets the lease container which acts as a state storage and coordinates processing the change feed across multiple workers. The lease container can be stored in the same account as the monitored container or in a separate account. It will be auto created if createLeaseContainerIfNotExists is set to true.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": "camel-lease"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.lease-database-name",
+      "type": "java.lang.String",
+      "description": "Sets the lease database where the leaseContainerName will be stored. If it is not specified, this component will store the lease container in the same database that is specified in databaseName. It will be auto created if createLeaseDatabaseIfNotExists is set to true.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.multiple-write-regions-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets the flag to enable writes on any regions for geo-replicated database accounts in the Azure Cosmos DB service. When the value of this property is true, the SDK will direct write operations to available writable regions of geo-replicated database account. Writable regions are ordered by PreferredRegions property. Setting the property value to true has no effect until EnableMultipleWriteRegions in DatabaseAccount is also set to true. DEFAULT value is true indicating that writes are directed to available writable regions of geo-replicated database account.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.operation",
+      "type": "org.apache.camel.component.azure.cosmosdb.CosmosDbOperationsDefinition",
+      "description": "The CosmosDB operation that can be used with this component on the producer.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.preferred-regions",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Sets the preferred regions for geo-replicated database accounts. For example, East US as the preferred region. When EnableEndpointDiscovery is true and PreferredRegions is non-empty, the SDK will prefer to use the regions in the container in the order they are specified to perform operations.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.query",
+      "type": "java.lang.String",
+      "description": "An SQL query to execute on a given resources. To learn more about Cosmos SQL API, check this link {link https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/sql-query-getting-started}",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.query-request-options",
+      "type": "com.azure.cosmos.models.CosmosQueryRequestOptions",
+      "description": "Set additional QueryRequestOptions that can be used with queryItems, queryContainers, queryDatabases, listDatabases, listItems, listContainers operations. The option is a com.azure.cosmos.models.CosmosQueryRequestOptions type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.read-requests-fallback-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to allow for reads to go to multiple regions configured on an account of Azure Cosmos DB service. DEFAULT value is true. If this property is not set, the default is true for all Consistency Levels other than Bounded Staleness, The default is false for Bounded Staleness. 1. endpointDiscoveryEnabled is true 2. the Azure Cosmos DB account has more than one region",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.throughput-properties",
+      "type": "com.azure.cosmos.models.ThroughputProperties",
+      "description": "Sets throughput of the resources in the Azure Cosmos DB service. The option is a com.azure.cosmos.models.ThroughputProperties type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs.json b/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs.json
new file mode 100644
index 0000000..360defd
--- /dev/null
+++ b/components-starter/camel-azure-eventhubs-starter/src/main/docs/azure-eventhubs.json
@@ -0,0 +1,154 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-eventhubs",
+      "type": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-eventhubs.amqp-retry-options",
+      "type": "com.azure.core.amqp.AmqpRetryOptions",
+      "description": "Sets the retry policy for EventHubAsyncClient. If not specified, the default retry options are used. The option is a com.azure.core.amqp.AmqpRetryOptions type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.amqp-transport-type",
+      "type": "com.azure.core.amqp.AmqpTransportType",
+      "description": "Sets the transport type by which all the communication with Azure Event Hubs occurs. Default value is AmqpTransportType#AMQP.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-access-key",
+      "type": "java.lang.String",
+      "description": "In case you chose the default BlobCheckpointStore, this sets access key for the associated azure account name to be used for authentication with azure blob services",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-account-name",
+      "type": "java.lang.String",
+      "description": "In case you chose the default BlobCheckpointStore, this sets Azure account name to be used for authentication with azure blob services.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-container-name",
+      "type": "java.lang.String",
+      "description": "In case you chose the default BlobCheckpointStore, this sets the blob container that shall be used by the BlobCheckpointStore to store the checkpoint offsets",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-storage-shared-key-credential",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "In case you chose the default BlobCheckpointStore, StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-eventhubs.checkpoint-store",
+      "type": "com.azure.messaging.eventhubs.CheckpointStore",
+      "description": "Sets the CheckpointStore the EventProcessorClient will use for storing partition ownership and checkpoint information. Users can, optionally, provide their own implementation of CheckpointStore which will store ownership and checkpoint information. By default it set to use com.azure.messaging.eventhubs.checkpointstore.blob.BlobCheckpointStore which stores all checkpoint offsets into Azure Blob Storage. The option is a com.azure.messaging.eventhubs.CheckpointStore type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.configuration",
+      "type": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.eventhubs.EventHubsConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.connection-string",
+      "type": "java.lang.String",
+      "description": "Instead of supplying namespace, sharedAccessKey, sharedAccessName ... etc, you can just supply the connection string for your eventHub. The connection string for EventHubs already include all the necessary information to connection to your EventHub. To learn on how to generate the connection string, take a look at this documentation: https:\/\/docs.microsoft.com\/en-us\/azure\/event-hubs\/event-hubs-get-connection-string",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.consumer-group-name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the consumer group this consumer is associated with. Events are read in the context of this group. The name of the consumer group that is created by default is {link #DEFAULT_CONSUMER_GROUP_NAME $Default}.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": "$Default"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-eventhubs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.event-position",
+      "type": "java.util.Map<java.lang.String,com.azure.messaging.eventhubs.models.EventPosition>",
+      "description": "Sets the map containing the event position to use for each partition if a checkpoint for the partition does not exist in CheckpointStore. This map is keyed off of the partition id. If there is no checkpoint in CheckpointStore and there is no entry in this map, the processing of the partition will start from {link EventPosition#latest() latest} position.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-eventhubs.partition-id",
+      "type": "java.lang.String",
+      "description": "Sets the identifier of the Event Hub partition that the events will be sent to. If the identifier is not specified, the Event Hubs service will be responsible for routing events that are sent to an available partition.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.partition-key",
+      "type": "java.lang.String",
+      "description": "Sets a hashing key to be provided for the batch of events, which instructs the Event Hubs service to map this key to a specific partition. The selection of a partition is stable for a given partition hashing key. Should any other batches of events be sent using the same exact partition hashing key, the Event Hubs service will route them all to the same partition. This should be specified only when there is a need to group events by partition, but there is flexibility into which partition they are routed. If ensuring that a batch of events is sent only to a specific partition, it is recommended that the {link #setPartitionId(String) identifier of the position be specified directly} when sending the batch.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "Sets the count used by the receiver to control the number of events the Event Hub consumer will actively receive and queue locally without regard to whether a receive operation is currently active.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.azure-eventhubs.producer-async-client",
+      "type": "com.azure.messaging.eventhubs.EventHubProducerAsyncClient",
+      "description": "Sets the EventHubProducerAsyncClient.An asynchronous producer responsible for transmitting EventData to a specific Event Hub, grouped together in batches. Depending on the options specified when creating an {linkEventDataBatch}, the events may be automatically routed to an available partition or specific to a partition. Use by this component to produce the data in camel producer. The option is a com.azure.messaging.eventhubs.EventHubProducerAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.shared-access-key",
+      "type": "java.lang.String",
+      "description": "The generated value for the SharedAccessName",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.shared-access-name",
+      "type": "java.lang.String",
+      "description": "The name you chose for your EventHubs SAS keys",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-servicebus-starter/src/main/docs/azure-servicebus.json b/components-starter/camel-azure-servicebus-starter/src/main/docs/azure-servicebus.json
new file mode 100644
index 0000000..c44902e
--- /dev/null
+++ b/components-starter/camel-azure-servicebus-starter/src/main/docs/azure-servicebus.json
@@ -0,0 +1,172 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-servicebus",
+      "type": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-servicebus.amqp-retry-options",
+      "type": "com.azure.core.amqp.AmqpRetryOptions",
+      "description": "Sets the retry options for Service Bus clients. If not specified, the default retry options are used. The option is a com.azure.core.amqp.AmqpRetryOptions type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.amqp-transport-type",
+      "type": "com.azure.core.amqp.AmqpTransportType",
+      "description": "Sets the transport type by which all the communication with Azure Service Bus occurs. Default value is AmqpTransportType#AMQP.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-servicebus.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-servicebus.client-options",
+      "type": "com.azure.core.util.ClientOptions",
+      "description": "Sets the ClientOptions to be sent from the client built from this builder, enabling customization of certain properties, as well as support the addition of custom header information. Refer to the ClientOptions documentation for more information. The option is a com.azure.core.util.ClientOptions type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.configuration",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.servicebus.ServiceBusConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.connection-string",
+      "type": "java.lang.String",
+      "description": "Sets the connection string for a Service Bus namespace or a specific Service Bus resource.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.consumer-operation",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusConsumerOperationDefinition",
+      "description": "Sets the desired operation to be used in the consumer",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-servicebus.disable-auto-complete",
+      "type": "java.lang.Boolean",
+      "description": "Disables auto-complete and auto-abandon of received messages. By default, a successfully processed message is {link ServiceBusReceiverAsyncClient#complete(ServiceBusReceivedMessage) completed}. If an error happens when the message is processed, it is {link ServiceBusReceiverAsyncClient#abandon(ServiceBusReceivedMessage) abandoned}.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-servicebus.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-servicebus component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-servicebus.max-auto-lock-renew-duration",
+      "type": "java.time.Duration",
+      "description": "Sets the amount of time to continue auto-renewing the lock. Setting Duration#ZERO or null disables auto-renewal. For {link ServiceBusReceiveMode#RECEIVE_AND_DELETE RECEIVE_AND_DELETE} mode, auto-renewal is disabled. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.peek-num-max-messages",
+      "type": "java.lang.Integer",
+      "description": "Set the max number of messages to be peeked during the peek operation.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "Sets the prefetch count of the receiver. For both {link ServiceBusReceiveMode#PEEK_LOCK PEEK_LOCK} and {link ServiceBusReceiveMode#RECEIVE_AND_DELETE RECEIVE_AND_DELETE} modes the default value is 1. Prefetch speeds up the message flow by aiming to have a message readily available for local retrieval when and before the application asks for one using ServiceBusReceiverAsyncClient#receiveMessages(). Setting a non-zero value will prefetch that number of messages. Setting the value to zero turns prefetch off.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-servicebus.producer-operation",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
+      "description": "Sets the desired operation to be used in the producer",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.proxy-options",
+      "type": "com.azure.core.amqp.ProxyOptions",
+      "description": "Sets the proxy configuration to use for ServiceBusSenderAsyncClient. When a proxy is configured, AmqpTransportType#AMQP_WEB_SOCKETS must be used for the transport type. The option is a com.azure.core.amqp.ProxyOptions type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.receiver-async-client",
+      "type": "com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient",
+      "description": "Sets the receiverAsyncClient in order to consume messages in the Consumer. The option is a com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.scheduled-enqueue-time",
+      "type": "java.time.OffsetDateTime",
+      "description": "Sets OffsetDateTime at which the message should appear in the Service Bus queue or topic. The option is a java.time.OffsetDateTime type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.sender-async-client",
+      "type": "com.azure.messaging.servicebus.ServiceBusSenderAsyncClient",
+      "description": "Sets SenderAsyncClient to be used in the producer. The option is a com.azure.messaging.servicebus.ServiceBusSenderAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.service-bus-receive-mode",
+      "type": "com.azure.messaging.servicebus.models.ServiceBusReceiveMode",
+      "description": "Sets the receive mode for the receiver.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.service-bus-transaction-context",
+      "type": "com.azure.messaging.servicebus.ServiceBusTransactionContext",
+      "description": "Represents transaction in service. This object just contains transaction id. The option is a com.azure.messaging.servicebus.ServiceBusTransactionContext type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.service-bus-type",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusType",
+      "description": "The service bus type of connection to execute. Queue is for typical queue option and topic for subscription based model.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.sub-queue",
+      "type": "com.azure.messaging.servicebus.models.SubQueue",
+      "description": "Sets the type of the SubQueue to connect to.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.subscription-name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the subscription in the topic to listen to. topicOrQueueName and serviceBusType=topic must also be set.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob.json b/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob.json
new file mode 100644
index 0000000..17c0bfa
--- /dev/null
+++ b/components-starter/camel-azure-storage-blob-starter/src/main/docs/azure-storage-blob.json
@@ -0,0 +1,221 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-storage-blob",
+      "type": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-storage-blob.access-key",
+      "type": "java.lang.String",
+      "description": "Access key for the associated azure account name to be used for authentication with azure blob services",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-name",
+      "type": "java.lang.String",
+      "description": "The blob name, to consume specific blob from a container. However on producer, is only required for the operations on the blob level",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-offset",
+      "type": "java.lang.Long",
+      "description": "Set the blob offset for the upload or download operations, default is 0",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-sequence-number",
+      "type": "java.lang.Long",
+      "description": "A user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 263 - 1.The default value is 0.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-type",
+      "type": "org.apache.camel.component.azure.storage.blob.BlobType",
+      "description": "The blob type in order to initiate the appropriate settings for each blob type",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.block-list-type",
+      "type": "com.azure.storage.blob.models.BlockListType",
+      "description": "Specifies which type of blocks to return.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-blob.change-feed-context",
+      "type": "com.azure.core.util.Context",
+      "description": "When using getChangeFeed producer operation, this gives additional context that is passed through the Http pipeline during the service call. The option is a com.azure.core.util.Context type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.change-feed-end-time",
+      "type": "java.time.OffsetDateTime",
+      "description": "When using getChangeFeed producer operation, this filters the results to return events approximately before the end time. Note: A few events belonging to the next hour can also be returned. A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the end time up by an hour. The option is a java.time.OffsetDateTime type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.change-feed-start-time",
+      "type": "java.time.OffsetDateTime",
+      "description": "When using getChangeFeed producer operation, this filters the results to return events approximately after the start time. Note: A few events belonging to the previous hour can also be returned. A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the start time down by an hour. The option is a java.time.OffsetDateTime type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.close-stream-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Close the stream after read or keep it open, default is true",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.close-stream-after-write",
+      "type": "java.lang.Boolean",
+      "description": "Close the stream after write or keep it open, default is true",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.commit-block-list-later",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the staged blocks will not be committed directly.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.configuration",
+      "type": "org.apache.camel.component.azure.storage.blob.BlobConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.storage.blob.BlobConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.create-append-blob",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the append blocks will be created when committing append blocks.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.create-page-blob",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the page blob will be created when uploading page blob.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.credentials",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.data-count",
+      "type": "java.lang.Long",
+      "description": "How many bytes to include in the range. Must be greater than or equal to 0 if specified.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.download-link-expiration",
+      "type": "java.lang.Long",
+      "description": "Override the default expiration (millis) of URL download link.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-storage-blob component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.file-dir",
+      "type": "java.lang.String",
+      "description": "The file directory where the downloaded blobs will be saved to, this can be used in both, producer and consumer",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-blob.max-results-per-page",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of blobs to return, including all BlobPrefix elements. If the request does not specify maxResultsPerPage or specifies a value greater than 5,000, the server will return up to 5,000 items.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.max-retry-requests",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of additional HTTP Get requests that will be made while reading the data from a response body.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-storage-blob.operation",
+      "type": "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition",
+      "description": "The blob operation that can be used with this component on the producer",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.page-blob-size",
+      "type": "java.lang.Long",
+      "description": "Specifies the maximum size for the page blob, up to 8 TB. The page blob size must be aligned to a 512-byte boundary.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 512
+    },
+    {
+      "name": "camel.component.azure-storage-blob.prefix",
+      "type": "java.lang.String",
+      "description": "Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.regex",
+      "type": "java.lang.String",
+      "description": "Filters the results to return only blobs whose names match the specified regular expression. May be null to return all if both prefix and regex are set, regex takes the priority and prefix is ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.service-client",
+      "type": "com.azure.storage.blob.BlobServiceClient",
+      "description": "Client to a storage account. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. It may also be used to construct URLs to blobs and containers. This client contains operations on a service account. Operations on a container are available on BlobContainerClient through BlobServiceClient#getBlobContainerClient(String), and operations on a blob are available on BlobClient through BlobContainerClient#getBlobClient(String). The option is a com.azure.storage.blob.BlobServiceClient type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.timeout",
+      "type": "java.time.Duration",
+      "description": "An optional timeout value beyond which a RuntimeException will be raised. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-storage-datalake-starter/src/main/docs/azure-storage-datalake.json b/components-starter/camel-azure-storage-datalake-starter/src/main/docs/azure-storage-datalake.json
new file mode 100644
index 0000000..14a8a91
--- /dev/null
+++ b/components-starter/camel-azure-storage-datalake-starter/src/main/docs/azure-storage-datalake.json
@@ -0,0 +1,230 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-storage-datalake",
+      "type": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-storage-datalake.account-key",
+      "type": "java.lang.String",
+      "description": "account key for authentication",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.client-id",
+      "type": "java.lang.String",
+      "description": "client id for azure account",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.client-secret",
+      "type": "java.lang.String",
+      "description": "client secret for azure account",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.client-secret-credential",
+      "type": "com.azure.identity.ClientSecretCredential",
+      "description": "client secret credential for authentication. The option is a com.azure.identity.ClientSecretCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.close",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not a file changed event raised indicates completion (true) or modification (false)",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.close-stream-after-read",
+      "type": "java.lang.Boolean",
+      "description": "check for closing stream after read",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.configuration",
+      "type": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration",
+      "description": "configuration object for datalake. The option is a org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.data-count",
+      "type": "java.lang.Long",
+      "description": "count number of bytes to download",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.directory-name",
+      "type": "java.lang.String",
+      "description": "directory of the file to be handled in component",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.download-link-expiration",
+      "type": "java.lang.Long",
+      "description": "download link expiration time",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-storage-datalake component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.expression",
+      "type": "java.lang.String",
+      "description": "expression for queryInputStream",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.file-dir",
+      "type": "java.lang.String",
+      "description": "directory of file to do operations in the local system",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.file-name",
+      "type": "java.lang.String",
+      "description": "name of file to be handled in component",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.file-offset",
+      "type": "java.lang.Long",
+      "description": "offset position in file for different operations",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.max-results",
+      "type": "java.lang.Integer",
+      "description": "maximum number of results to show at a time",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.max-retry-requests",
+      "type": "java.lang.Integer",
+      "description": "no of retries to a given request",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.open-options",
+      "type": "java.util.Set<java.nio.file.OpenOption>",
+      "description": "set open options for creating file",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.operation",
+      "type": "org.apache.camel.component.azure.storage.datalake.DataLakeOperationsDefinition",
+      "description": "operation to be performed",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.path",
+      "type": "java.lang.String",
+      "description": "path in azure datalake for operations",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.permission",
+      "type": "java.lang.String",
+      "description": "permission string for the file",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.position",
+      "type": "java.lang.Long",
+      "description": "This parameter allows the caller to upload data in parallel and control the order in which it is appended to the file.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.recursive",
+      "type": "java.lang.Boolean",
+      "description": "recursively include all paths",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.regex",
+      "type": "java.lang.String",
+      "description": "regular expression for matching file names",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.retain-uncommited-data",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not uncommitted data is to be retained after the operation",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.service-client",
+      "type": "com.azure.storage.file.datalake.DataLakeServiceClient",
+      "description": "datalake service client for azure storage datalake. The option is a com.azure.storage.file.datalake.DataLakeServiceClient type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.shared-key-credential",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "shared key credential for azure datalake gen2. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.tenant-id",
+      "type": "java.lang.String",
+      "description": "tenant id for azure account",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.timeout",
+      "type": "java.time.Duration",
+      "description": "Timeout for operation. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.umask",
+      "type": "java.lang.String",
+      "description": "umask permission for file",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.user-principal-name-returned",
+      "type": "java.lang.Boolean",
+      "description": "whether or not to use upn",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue.json b/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue.json
new file mode 100644
index 0000000..3a0039d
--- /dev/null
+++ b/components-starter/camel-azure-storage-queue-starter/src/main/docs/azure-storage-queue.json
@@ -0,0 +1,124 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-storage-queue",
+      "type": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-storage-queue.access-key",
+      "type": "java.lang.String",
+      "description": "Access key for the associated azure account name to be used for authentication with azure queue services",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-queue.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-queue.configuration",
+      "type": "org.apache.camel.component.azure.storage.queue.QueueConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.storage.queue.QueueConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.create-queue",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the queue will be automatically created when sending messages to the queue.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-queue.credentials",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-storage-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-queue.max-messages",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of messages to get, if there are less messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.azure-storage-queue.message-id",
+      "type": "java.lang.String",
+      "description": "The ID of the message to be deleted or updated.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.operation",
+      "type": "org.apache.camel.component.azure.storage.queue.QueueOperationDefinition",
+      "description": "Queue service operation hint to the producer",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.pop-receipt",
+      "type": "java.lang.String",
+      "description": "Unique identifier that must match for the message to be deleted or updated.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.service-client",
+      "type": "com.azure.storage.queue.QueueServiceClient",
+      "description": "Service client to a storage account to interact with the queue service. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. This client contains all the operations for interacting with a queue account in Azure Storage. Operations allowed by the client are creating, listing, and deleting queues, retrieving and updating properties of the account, and retrieving statistics of the account. The option is a com.azure.storage.queue.QueueServiceClient type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.time-to-live",
+      "type": "java.time.Duration",
+      "description": "How long the message will stay alive in the queue. If unset the value will default to 7 days, if -1 is passed the message will not expire. The time to live must be -1 or any positive number. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl\/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs are typesafe. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.timeout",
+      "type": "java.time.Duration",
+      "description": "An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.visibility-timeout",
+      "type": "java.time.Duration",
+      "description": "The timeout period for how long the message is invisible in the queue. The timeout must be between 1 seconds and 7 days. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl\/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs are typesafe. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-barcode-starter/src/main/docs/barcode.json b/components-starter/camel-barcode-starter/src/main/docs/barcode.json
new file mode 100644
index 0000000..c9805e6
--- /dev/null
+++ b/components-starter/camel-barcode-starter/src/main/docs/barcode.json
@@ -0,0 +1,53 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.barcode",
+      "type": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.barcode.barcode-format",
+      "type": "java.lang.String",
+      "description": "Barcode format such as QR-Code",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.barcode.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the barcode data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.height",
+      "type": "java.lang.Integer",
+      "description": "Height of the barcode",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.image-type",
+      "type": "java.lang.String",
+      "description": "Image type of the barcode such as png",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.width",
+      "type": "java.lang.Integer",
+      "description": "Width of the barcode",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-base64-starter/src/main/docs/base64.json b/components-starter/camel-base64-starter/src/main/docs/base64.json
new file mode 100644
index 0000000..e6a168e
--- /dev/null
+++ b/components-starter/camel-base64-starter/src/main/docs/base64.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.base64",
+      "type": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.base64.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.base64.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.base64.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the base64 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.base64.line-length",
+      "type": "java.lang.Integer",
+      "description": "To specific a maximum line length for the encoded data. By default 76 is used.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "defaultValue": 76
+    },
+    {
+      "name": "camel.dataformat.base64.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separators to use. Uses new line characters (CRLF) by default.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.base64.url-safe",
+      "type": "java.lang.Boolean",
+      "description": "Instead of emitting '' and '\/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes. Is by default false.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-bean-starter/src/main/docs/bean.json b/components-starter/camel-bean-starter/src/main/docs/bean.json
new file mode 100644
index 0000000..61cd01a
--- /dev/null
+++ b/components-starter/camel-bean-starter/src/main/docs/bean.json
@@ -0,0 +1,145 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.bean",
+      "type": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.class",
+      "type": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration"
+    },
+    {
+      "name": "camel.component.class.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.bean",
+      "type": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.bean.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.bean.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.bean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bean component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.bean.scope",
+      "type": "org.apache.camel.BeanScope",
+      "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using delegate scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. so when using prototype then this depends on the delegated registry.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.class.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.class.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.class.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the class component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration"
+    },
+    {
+      "name": "camel.component.class.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.class.scope",
+      "type": "org.apache.camel.BeanScope",
+      "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using delegate scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. so when using prototype then this depends on the delegated registry.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration"
+    },
+    {
+      "name": "camel.language.bean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.bean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bean language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.bean.scope",
+      "type": "java.lang.String",
+      "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using prototype scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. So when using prototype scope then this depends on the bean registry implementation.",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "defaultValue": "Singleton"
+    },
+    {
+      "name": "camel.language.bean.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bean.cache",
+      "type": "java.lang.Boolean",
+      "description": "Use singleton option instead.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "defaultValue": true,
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.class.cache",
+      "type": "java.lang.Boolean",
+      "description": "Use singleton option instead.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "defaultValue": true,
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator.json b/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator.json
new file mode 100644
index 0000000..08a9ce1
--- /dev/null
+++ b/components-starter/camel-bean-validator-starter/src/main/docs/bean-validator.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.bean-validator",
+      "type": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.bean-validator.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bean-validator.constraint-validator-factory",
+      "type": "javax.validation.ConstraintValidatorFactory",
+      "description": "To use a custom ConstraintValidatorFactory. The option is a javax.validation.ConstraintValidatorFactory type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.bean-validator.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bean-validator component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.ignore-xml-configuration",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore data from the META-INF\/validation.xml file.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.bean-validator.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.bean-validator.message-interpolator",
+      "type": "javax.validation.MessageInterpolator",
+      "description": "To use a custom MessageInterpolator. The option is a javax.validation.MessageInterpolator type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.traversable-resolver",
+      "type": "javax.validation.TraversableResolver",
+      "description": "To use a custom TraversableResolver. The option is a javax.validation.TraversableResolver type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.validation-provider-resolver",
+      "type": "javax.validation.ValidationProviderResolver",
+      "description": "To use a a custom ValidationProviderResolver. The option is a javax.validation.ValidationProviderResolver type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.validator-factory",
+      "type": "javax.validation.ValidatorFactory",
+      "description": "To use a custom ValidatorFactory. The option is a javax.validation.ValidatorFactory type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-beanio-starter/src/main/docs/beanio.json b/components-starter/camel-beanio-starter/src/main/docs/beanio.json
new file mode 100644
index 0000000..27bf242
--- /dev/null
+++ b/components-starter/camel-beanio-starter/src/main/docs/beanio.json
@@ -0,0 +1,81 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.beanio",
+      "type": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.beanio.bean-reader-error-handler-type",
+      "type": "java.lang.String",
+      "description": "To use a custom org.apache.camel.dataformat.beanio.BeanIOErrorHandler as error handler while parsing. Configure the fully qualified class name of the error handler. Notice the options ignoreUnidentifiedRecords, ignoreUnexpectedRecords, and ignoreInvalidRecords may not be in use when you use a custom error handler.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.beanio.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the beanio data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.encoding",
+      "type": "java.lang.String",
+      "description": "The charset to use. Is by default the JVM platform default charset.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.ignore-invalid-records",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore invalid records.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.beanio.ignore-unexpected-records",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore unexpected records.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.beanio.ignore-unidentified-records",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore unidentified records.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.beanio.mapping",
+      "type": "java.lang.String",
+      "description": "The BeanIO mapping file. Is by default loaded from the classpath. You can prefix with file:, http:, or classpath: to denote from where to load the mapping file.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.stream-name",
+      "type": "java.lang.String",
+      "description": "The name of the stream to use.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.unmarshal-single-object",
+      "type": "java.lang.Boolean",
+      "description": "This options controls whether to unmarshal as a list of objects or as a single object only. The former is the default mode, and the latter is only intended in special use-cases where beanio maps the Camel message to a single POJO bean.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk.json b/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk.json
new file mode 100644
index 0000000..f15ed3b
--- /dev/null
+++ b/components-starter/camel-beanstalk-starter/src/main/docs/beanstalk.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.beanstalk",
+      "type": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.beanstalk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.beanstalk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.beanstalk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.beanstalk.connection-settings-factory",
+      "type": "org.apache.camel.component.beanstalk.ConnectionSettingsFactory",
+      "description": "Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for unit testing without beanstalkd daemon (you can mock ConnectionSettings). The option is a org.apache.camel.component.beanstalk.ConnectionSettingsFactory type.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.beanstalk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.beanstalk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the beanstalk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.beanstalk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-bindy-starter/src/main/docs/bindy.json b/components-starter/camel-bindy-starter/src/main/docs/bindy.json
new file mode 100644
index 0000000..1440e82
--- /dev/null
+++ b/components-starter/camel-bindy-starter/src/main/docs/bindy.json
@@ -0,0 +1,169 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.bindy-csv",
+      "type": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed",
+      "type": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp",
+      "type": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.bindy-csv.allow-empty-stream",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without records is provided.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.class-type",
+      "type": "java.lang.String",
+      "description": "Name of model class to use.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bindy-csv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.locale",
+      "type": "java.lang.String",
+      "description": "To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the name default",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.type",
+      "type": "java.lang.String",
+      "description": "Whether to use Csv, Fixed, or KeyValue.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.unwrap-single-instance",
+      "type": "java.lang.Boolean",
+      "description": "When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.allow-empty-stream",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without records is provided.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.class-type",
+      "type": "java.lang.String",
+      "description": "Name of model class to use.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bindy-fixed data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.locale",
+      "type": "java.lang.String",
+      "description": "To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the name default",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.type",
+      "type": "java.lang.String",
+      "description": "Whether to use Csv, Fixed, or KeyValue.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.unwrap-single-instance",
+      "type": "java.lang.Boolean",
+      "description": "When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.allow-empty-stream",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without records is provided.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.class-type",
+      "type": "java.lang.String",
+      "description": "Name of model class to use.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bindy-kvp data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.locale",
+      "type": "java.lang.String",
+      "description": "To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the name default",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.type",
+      "type": "java.lang.String",
+      "description": "Whether to use Csv, Fixed, or KeyValue.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.unwrap-single-instance",
+      "type": "java.lang.Boolean",
+      "description": "When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-bonita-starter/src/main/docs/bonita.json b/components-starter/camel-bonita-starter/src/main/docs/bonita.json
new file mode 100644
index 0000000..8c4d4ac
--- /dev/null
+++ b/components-starter/camel-bonita-starter/src/main/docs/bonita.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.bonita",
+      "type": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bonita.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.bonita.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bonita.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.bonita.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bonita component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bonita.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-box-starter/src/main/docs/box.json b/components-starter/camel-box-starter/src/main/docs/box.json
new file mode 100644
index 0000000..5f6b817
--- /dev/null
+++ b/components-starter/camel-box-starter/src/main/docs/box.json
@@ -0,0 +1,148 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.box",
+      "type": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.box.access-token-cache",
+      "type": "com.box.sdk.IAccessTokenCache",
+      "description": "Custom Access Token Cache for storing and retrieving access tokens. The option is a com.box.sdk.IAccessTokenCache type.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.authentication-type",
+      "type": "java.lang.String",
+      "description": "The type of authentication for connection. Types of Authentication: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - OAuth 2.0 with JSON Web Tokens",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": "APP_USER_AUTHENTICATION"
+    },
+    {
+      "name": "camel.component.box.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.box.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.box.client-id",
+      "type": "java.lang.String",
+      "description": "Box application client ID",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.client-secret",
+      "type": "java.lang.String",
+      "description": "Box application client secret",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.configuration",
+      "type": "org.apache.camel.component.box.BoxConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.box.BoxConfiguration type.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.box.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the box component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.encryption-algorithm",
+      "type": "com.box.sdk.EncryptionAlgorithm",
+      "description": "The type of encryption algorithm for JWT. Supported Algorithms: RSA_SHA_256 RSA_SHA_384 RSA_SHA_512",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.enterprise-id",
+      "type": "java.lang.String",
+      "description": "The enterprise ID to use for an App Enterprise.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.http-params",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom HTTP params for settings like proxy host",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.box.max-cache-entries",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of access tokens in cache.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.box.private-key-file",
+      "type": "java.lang.String",
+      "description": "The private key for generating the JWT signature.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.private-key-password",
+      "type": "java.lang.String",
+      "description": "The password for the private key.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.public-key-id",
+      "type": "java.lang.String",
+      "description": "The ID for public key for validating the JWT signature.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.user-id",
+      "type": "java.lang.String",
+      "description": "The user ID to use for an App User.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.user-name",
+      "type": "java.lang.String",
+      "description": "Box user name, MUST be provided",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.user-password",
+      "type": "java.lang.String",
+      "description": "Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-braintree-starter/src/main/docs/braintree.json b/components-starter/camel-braintree-starter/src/main/docs/braintree.json
new file mode 100644
index 0000000..f818be3
--- /dev/null
+++ b/components-starter/camel-braintree-starter/src/main/docs/braintree.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.braintree",
+      "type": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.braintree.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.braintree.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.braintree.configuration",
+      "type": "org.apache.camel.component.braintree.BraintreeConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.braintree.BraintreeConfiguration type.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.braintree.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.braintree.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the braintree component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.braintree.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-browse-starter/src/main/docs/browse.json b/components-starter/camel-browse-starter/src/main/docs/browse.json
new file mode 100644
index 0000000..b44403a
--- /dev/null
+++ b/components-starter/camel-browse-starter/src/main/docs/browse.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.browse",
+      "type": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.browse.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.browse.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.browse.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.browse.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.browse.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the browse component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.browse.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-caffeine-lrucache-starter/src/main/docs/caffeine-lrucache.json b/components-starter/camel-caffeine-lrucache-starter/src/main/docs/caffeine-lrucache.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-caffeine-lrucache-starter/src/main/docs/caffeine-lrucache.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-caffeine-starter/src/main/docs/caffeine.json b/components-starter/camel-caffeine-starter/src/main/docs/caffeine.json
new file mode 100644
index 0000000..8ca9ca7
--- /dev/null
+++ b/components-starter/camel-caffeine-starter/src/main/docs/caffeine.json
@@ -0,0 +1,271 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.caffeine-cache",
+      "type": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache",
+      "type": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.caffeine-cache.action",
+      "type": "java.lang.String",
+      "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-cache.cache-loader",
+      "type": "com.github.benmanes.caffeine.cache.CacheLoader",
+      "description": "To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.configuration",
+      "type": "org.apache.camel.component.caffeine.CaffeineConfiguration",
+      "description": "Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.create-cache-if-not-exist",
+      "type": "java.lang.Boolean",
+      "description": "Configure if a cache need to be created if it does exist or can't be pre-configured.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-cache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.caffeine-cache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the caffeine-cache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.eviction-type",
+      "type": "org.apache.camel.component.caffeine.EvictionType",
+      "description": "Set the eviction Type for this cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.expire-after-access-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Time in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-cache.expire-after-write-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Write in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-cache.initial-capacity",
+      "type": "java.lang.Integer",
+      "description": "Set the initial Capacity for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-cache.key",
+      "type": "java.lang.Object",
+      "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.key-type",
+      "type": "java.lang.String",
+      "description": "The cache key type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-cache.maximum-size",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum size for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-cache.removal-listener",
+      "type": "com.github.benmanes.caffeine.cache.RemovalListener",
+      "description": "Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.stats-counter",
+      "type": "com.github.benmanes.caffeine.cache.stats.StatsCounter",
+      "description": "Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.stats-enabled",
+      "type": "java.lang.Boolean",
+      "description": "To enable stats on the cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-cache.value-type",
+      "type": "java.lang.String",
+      "description": "The cache value type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.action",
+      "type": "java.lang.String",
+      "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.cache-loader",
+      "type": "com.github.benmanes.caffeine.cache.CacheLoader",
+      "description": "To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.configuration",
+      "type": "org.apache.camel.component.caffeine.CaffeineConfiguration",
+      "description": "Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.create-cache-if-not-exist",
+      "type": "java.lang.Boolean",
+      "description": "Configure if a cache need to be created if it does exist or can't be pre-configured.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the caffeine-loadcache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.eviction-type",
+      "type": "org.apache.camel.component.caffeine.EvictionType",
+      "description": "Set the eviction Type for this cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.expire-after-access-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Time in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.expire-after-write-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Write in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.initial-capacity",
+      "type": "java.lang.Integer",
+      "description": "Set the initial Capacity for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.key",
+      "type": "java.lang.Object",
+      "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.key-type",
+      "type": "java.lang.String",
+      "description": "The cache key type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.maximum-size",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum size for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.removal-listener",
+      "type": "com.github.benmanes.caffeine.cache.RemovalListener",
+      "description": "Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.stats-counter",
+      "type": "com.github.benmanes.caffeine.cache.stats.StatsCounter",
+      "description": "Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.stats-enabled",
+      "type": "java.lang.Boolean",
+      "description": "To enable stats on the cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.value-type",
+      "type": "java.lang.String",
+      "description": "The cache value type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cassandraql-starter/src/main/docs/cassandraql.json b/components-starter/camel-cassandraql-starter/src/main/docs/cassandraql.json
new file mode 100644
index 0000000..af4a63f
--- /dev/null
+++ b/components-starter/camel-cassandraql-starter/src/main/docs/cassandraql.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cql",
+      "type": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cbor-starter/src/main/docs/cbor.json b/components-starter/camel-cbor-starter/src/main/docs/cbor.json
new file mode 100644
index 0000000..fa798cf
--- /dev/null
+++ b/components-starter/camel-cbor-starter/src/main/docs/cbor.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.cbor",
+      "type": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.cbor.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.cbor.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson CBOR is allowed to attempt to use the CamelCBORUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.cbor.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.cbor.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cbor data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing CBOR ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.cbor.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson CBOR ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.cbor.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-chatscript-starter/src/main/docs/chatscript.json b/components-starter/camel-chatscript-starter/src/main/docs/chatscript.json
new file mode 100644
index 0000000..c02e8e5
--- /dev/null
+++ b/components-starter/camel-chatscript-starter/src/main/docs/chatscript.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.chatscript",
+      "type": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chatscript.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.chatscript.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.chatscript.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.chatscript.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the chatscript component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chatscript.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-chunk-starter/src/main/docs/chunk.json b/components-starter/camel-chunk-starter/src/main/docs/chunk.json
new file mode 100644
index 0000000..651f475
--- /dev/null
+++ b/components-starter/camel-chunk-starter/src/main/docs/chunk.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.chunk",
+      "type": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chunk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.chunk.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.chunk.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.chunk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.chunk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.chunk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the chunk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chunk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cm-sms-starter/src/main/docs/cm-sms.json b/components-starter/camel-cm-sms-starter/src/main/docs/cm-sms.json
new file mode 100644
index 0000000..d89576f
--- /dev/null
+++ b/components-starter/camel-cm-sms-starter/src/main/docs/cm-sms.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cm-sms",
+      "type": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cm-sms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cm-sms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cm-sms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cm-sms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cm-sms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cm-sms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cmis-starter/src/main/docs/cmis.json b/components-starter/camel-cmis-starter/src/main/docs/cmis.json
new file mode 100644
index 0000000..4ede0a7
--- /dev/null
+++ b/components-starter/camel-cmis-starter/src/main/docs/cmis.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cmis",
+      "type": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cmis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cmis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cmis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cmis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cmis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cmis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cmis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cmis.session-facade-factory",
+      "type": "org.apache.camel.component.cmis.CMISSessionFacadeFactory",
+      "description": "To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances. The option is a org.apache.camel.component.cmis.CMISSessionFacadeFactory type.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-coap-starter/src/main/docs/coap.json b/components-starter/camel-coap-starter/src/main/docs/coap.json
new file mode 100644
index 0000000..6dd8024
--- /dev/null
+++ b/components-starter/camel-coap-starter/src/main/docs/coap.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.coap",
+      "type": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.coap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.coap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.coap.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.coap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.coap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the coap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.coap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cometd-starter/src/main/docs/cometd.json b/components-starter/camel-cometd-starter/src/main/docs/cometd.json
new file mode 100644
index 0000000..f2d9337
--- /dev/null
+++ b/components-starter/camel-cometd-starter/src/main/docs/cometd.json
@@ -0,0 +1,93 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cometd",
+      "type": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cometd.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cometd.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cometd.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cometd.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cometd component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.extensions",
+      "type": "java.util.List<org.cometd.bayeux.server.BayeuxServer$Extension>",
+      "description": "To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cometd.security-policy",
+      "type": "org.cometd.bayeux.server.SecurityPolicy",
+      "description": "To use a custom configured SecurityPolicy to control authorization. The option is a org.cometd.bayeux.server.SecurityPolicy type.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password for the keystore when using SSL.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-keystore",
+      "type": "java.lang.String",
+      "description": "The path to the keystore.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-password",
+      "type": "java.lang.String",
+      "description": "The password when using SSL.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-consul-starter/src/main/docs/consul.json b/components-starter/camel-consul-starter/src/main/docs/consul.json
new file mode 100644
index 0000000..ee9cfdf
--- /dev/null
+++ b/components-starter/camel-consul-starter/src/main/docs/consul.json
@@ -0,0 +1,610 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud.consul",
+      "type": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul",
+      "type": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.consul",
+      "type": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.consul.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The time (in seconds) to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.cloud.consul.check-interval",
+      "type": "java.lang.Integer",
+      "description": "How often (in seconds) a service has to be marked as healthy if its check is TTL or how often the check should run. Default is 5 seconds.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.cloud.consul.check-ttl",
+      "type": "java.lang.Integer",
+      "description": "The time (in seconds) to live for TTL checks. Default is 1 minute.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.cloud.consul.connect-timeout",
+      "type": "java.time.Duration",
+      "description": "Connect timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use connectTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.consistency-mode",
+      "type": "com.orbitz.consul.option.ConsistencyMode",
+      "description": "The consistencyMode used for queries, default ConsistencyMode.DEFAULT",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.deregister-after",
+      "type": "java.lang.Integer",
+      "description": "How long (in seconds) to wait to deregister a service in case of unclean shutdown. Default is 1 hour.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 3600
+    },
+    {
+      "name": "camel.cloud.consul.deregister-services-on-stop",
+      "type": "java.lang.Boolean",
+      "description": "Should we remove all the registered services know by this registry on stop?",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the consul service registry should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.consul.first-index",
+      "type": "java.math.BigInteger",
+      "description": "The first index for watch for, default 0",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cloud.consul.id",
+      "type": "java.lang.String",
+      "description": "Service Registry ID",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.near-node",
+      "type": "java.lang.String",
+      "description": "The near node to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.node-meta",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The note meta-data to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.override-service-host",
+      "type": "java.lang.Boolean",
+      "description": "Should we override the service host if given ?",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.ping-instance",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.read-timeout",
+      "type": "java.time.Duration",
+      "description": "Read timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use readTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.recursive",
+      "type": "java.lang.Boolean",
+      "description": "Recursively watch, default false",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.consul.service-host",
+      "type": "java.lang.String",
+      "description": "Service host.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.tags",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Set tags. You can separate multiple tags by comma.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.write-timeout",
+      "type": "java.time.Duration",
+      "description": "Write timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use writeTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The time (in seconds) to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.cluster.consul.connect-timeout",
+      "type": "java.time.Duration",
+      "description": "Connect timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use connectTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.consistency-mode",
+      "type": "com.orbitz.consul.option.ConsistencyMode",
+      "description": "The consistencyMode used for queries, default ConsistencyMode.DEFAULT",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the consul cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.consul.first-index",
+      "type": "java.math.BigInteger",
+      "description": "The first index for watch for, default 0",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cluster.consul.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.near-node",
+      "type": "java.lang.String",
+      "description": "The near node to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.node-meta",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The note meta-data to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.ping-instance",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cluster.consul.read-timeout",
+      "type": "java.time.Duration",
+      "description": "Read timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use readTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.recursive",
+      "type": "java.lang.Boolean",
+      "description": "Recursively watch, default false",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.consul.root-path",
+      "type": "java.lang.String",
+      "description": "Consul root path",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": "\/camel"
+    },
+    {
+      "name": "camel.cluster.consul.session-lock-delay",
+      "type": "java.lang.Integer",
+      "description": "The value for lockDelay",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.cluster.consul.session-refresh-interval",
+      "type": "java.lang.Integer",
+      "description": "The value of wait attribute",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.cluster.consul.session-ttl",
+      "type": "java.lang.Integer",
+      "description": "The value of TTL",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.cluster.consul.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.tags",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Set tags. You can separate multiple tags by comma.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.write-timeout",
+      "type": "java.time.Duration",
+      "description": "Write timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use writeTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.consul.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.action",
+      "type": "java.lang.String",
+      "description": "The default action. Can be overridden by CamelConsulAction",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.consul.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The second to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.consul.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.configuration",
+      "type": "org.apache.camel.component.consul.ConsulConfiguration",
+      "description": "Consul configuration. The option is a org.apache.camel.component.consul.ConsulConfiguration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.connect-timeout",
+      "type": "java.time.Duration",
+      "description": "Connect timeout for OkHttpClient. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.consistency-mode",
+      "type": "com.orbitz.consul.option.ConsistencyMode",
+      "description": "The consistencyMode used for queries, default ConsistencyMode.DEFAULT",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.consul-client",
+      "type": "com.orbitz.consul.Consul",
+      "description": "Reference to a com.orbitz.consul.Consul in the registry. The option is a com.orbitz.consul.Consul type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.consul.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the consul component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.first-index",
+      "type": "java.math.BigInteger",
+      "description": "The first index for watch for, default 0. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.key",
+      "type": "java.lang.String",
+      "description": "The default key. Can be overridden by CamelConsulKey",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.near-node",
+      "type": "java.lang.String",
+      "description": "The near node to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.node-meta",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The note meta-data to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.ping-instance",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.consul.read-timeout",
+      "type": "java.time.Duration",
+      "description": "Read timeout for OkHttpClient. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.recursive",
+      "type": "java.lang.Boolean",
+      "description": "Recursively watch, default false",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.tags",
+      "type": "java.lang.String",
+      "description": "Set tags. You can separate multiple tags by comma.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.value-as-string",
+      "type": "java.lang.Boolean",
+      "description": "Default to transform values retrieved from Consul i.e. on KV endpoint to string.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.write-timeout",
+      "type": "java.time.Duration",
+      "description": "Write timeout for OkHttpClient. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.dc",
+      "type": "java.lang.String",
+      "description": "Use datacenter instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.cluster.consul.dc",
+      "type": "java.lang.String",
+      "description": "Use datacenter instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.consul.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Connect timeout for OkHttpClient. Deprecation note: Use connectTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.consul.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Read timeout for OkHttpClient. Deprecation note: Use readTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.consul.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Write timeout for OkHttpClient. Deprecation note: Use writeTimeout instead. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-controlbus-starter/src/main/docs/controlbus.json b/components-starter/camel-controlbus-starter/src/main/docs/controlbus.json
new file mode 100644
index 0000000..d81416c
--- /dev/null
+++ b/components-starter/camel-controlbus-starter/src/main/docs/controlbus.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.controlbus",
+      "type": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.controlbus.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.controlbus.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.controlbus.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.controlbus.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the controlbus component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.controlbus.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-corda-starter/src/main/docs/corda.json b/components-starter/camel-corda-starter/src/main/docs/corda.json
new file mode 100644
index 0000000..4f5bd5b
--- /dev/null
+++ b/components-starter/camel-corda-starter/src/main/docs/corda.json
@@ -0,0 +1,117 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.corda",
+      "type": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.corda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.corda.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.corda.configuration",
+      "type": "org.apache.camel.component.corda.CordaConfiguration",
+      "description": "To use a shared configuration. The option is a org.apache.camel.component.corda.CordaConfiguration type.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.contract-state-class",
+      "type": "java.lang.Class<net.corda.core.contracts.ContractState>",
+      "description": "A contract state (or just state) contains opaque data used by a contract program. It can be thought of as a disk file that the program can use to persist data across transactions. States are immutable: once created they are never updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the notary is responsible for ensuring there is no double spending by only signing a transaction if the input states are all free.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.corda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the corda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.flow-logic-arguments",
+      "type": "java.lang.Object[]",
+      "description": "Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.flow-logic-class",
+      "type": "java.lang.Class<net.corda.core.flows.FlowLogic<java.lang.Object>>",
+      "description": "Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.corda.operation",
+      "type": "java.lang.String",
+      "description": "Operation to use",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.page-specification",
+      "type": "net.corda.core.node.services.vault.PageSpecification",
+      "description": "PageSpecification allows specification of a page number (starting from 1) and page size (defaulting to 200 with a maximum page size of (Integer.MAX_INT) Note: we default the page number to 200 to enable queries without requiring a page specification but enabling detection of large results sets that fall out of the 200 requirement. Max page size should be used with extreme caution as results may exceed your JVM memory footprint. The option is a net.corda.core.node.services.vault.PageSpecification type.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.password",
+      "type": "java.lang.String",
+      "description": "Password for login",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.process-snapshot",
+      "type": "java.lang.Boolean",
+      "description": "Whether to process snapshots or not",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.corda.query-criteria",
+      "type": "net.corda.core.node.services.vault.QueryCriteria",
+      "description": "QueryCriteria assumes underlying schema tables are correctly indexed for performance. The option is a net.corda.core.node.services.vault.QueryCriteria type.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.sort",
+      "type": "net.corda.core.node.services.vault.Sort",
+      "description": "Sort allows specification of a set of entity attribute names and their associated directionality and null handling, to be applied upon processing a query specification.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.username",
+      "type": "java.lang.String",
+      "description": "Username for login",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-core-starter/src/main/docs/core.json b/components-starter/camel-core-starter/src/main/docs/core.json
new file mode 100644
index 0000000..3d7c7d0
--- /dev/null
+++ b/components-starter/camel-core-starter/src/main/docs/core.json
@@ -0,0 +1,1123 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud.consul.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer",
+      "type": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.hystrix",
+      "type": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.language.constant",
+      "type": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.constant.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.csimple",
+      "type": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.csimple.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.exchangeproperty",
+      "type": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.exchangeproperty.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.file",
+      "type": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.file.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.header",
+      "type": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.header.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.ref",
+      "type": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ref.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.simple",
+      "type": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.simple.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.tokenize",
+      "type": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.tokenize.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.resilience4j",
+      "type": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest",
+      "type": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.consul.service-discovery.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The seconds to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Connect timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Read timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Write timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.domain",
+      "type": "java.lang.String",
+      "description": "The domain name;",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.proto",
+      "type": "java.lang.String",
+      "description": "The transport protocol of the desired service.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "_tcp"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.type",
+      "type": "java.lang.String",
+      "description": "To set the discovery type, valid values are on-demand and watch.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "on-demand"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.uris",
+      "type": "java.lang.String",
+      "description": "The URIs the client can connect to.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.api-version",
+      "type": "java.lang.String",
+      "description": "Sets the API version when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.ca-cert-data",
+      "type": "java.lang.String",
+      "description": "Sets the Certificate Authority data when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.ca-cert-file",
+      "type": "java.lang.String",
+      "description": "Sets the Certificate Authority data that are loaded from the file when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-cert-data",
+      "type": "java.lang.String",
+      "description": "Sets the Client Certificate data when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-cert-file",
+      "type": "java.lang.String",
+      "description": "Sets the Client Certificate data that are loaded from the file when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-algo",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore algorithm, such as RSA when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-data",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore data when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-file",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore data that are loaded from the file when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-passphrase",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore passphrase when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.dns-domain",
+      "type": "java.lang.String",
+      "description": "Sets the DNS domain to use for DNS lookup.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.lookup",
+      "type": "java.lang.String",
+      "description": "How to perform service lookup. Possible values: client, dns, environment. When using client, then the client queries the kubernetes master to obtain a list of active pods that provides the service, and then random (or round robin) select a pod. When using dns the service name is resolved as name.namespace.svc.dnsDomain. When using dnssrv the service name is resolved with SRV query for _._...svc... When using environment then environment variables are used to lookup the service. By default environment is used.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "environment"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.master-url",
+      "type": "java.lang.String",
+      "description": "Sets the URL to the master when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.namespace",
+      "type": "java.lang.String",
+      "description": "Sets the namespace to use. Will by default use namespace from the ENV variable KUBERNETES_MASTER.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.oauth-token",
+      "type": "java.lang.String",
+      "description": "Sets the OAUTH token for authentication (instead of username\/password) when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.password",
+      "type": "java.lang.String",
+      "description": "Sets the password for authentication when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.port-name",
+      "type": "java.lang.String",
+      "description": "Sets the Port Name to use for DNS\/DNSSRV lookup.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.port-protocol",
+      "type": "java.lang.String",
+      "description": "Sets the Port Protocol to use for DNS\/DNSSRV lookup.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.trust-certs",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to turn on trust certificate check when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.username",
+      "type": "java.lang.String",
+      "description": "Sets the username for authentication when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.client-name",
+      "type": "java.lang.String",
+      "description": "Sets the Ribbon client name",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.namespace",
+      "type": "java.lang.String",
+      "description": "The namespace",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.password",
+      "type": "java.lang.String",
+      "description": "The password",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.username",
+      "type": "java.lang.String",
+      "description": "The username",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.hystrix.allow-maximum-size-to-diverge-from-core-size",
+      "type": "java.lang.Boolean",
+      "description": "Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than coreSize",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests permitted. This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing whether it should be open\/closed, this property results in not even instantiating a circuit-breaker.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-error-threshold-percentage",
+      "type": "java.lang.Integer",
+      "description": "Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and reject requests. It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds; The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts().",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-force-closed",
+      "type": "java.lang.Boolean",
+      "description": "If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the error percentage from HystrixCommandMetrics.getHealthCounts(). The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-force-open",
+      "type": "java.lang.Boolean",
+      "description": "If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open (tripped) and reject all requests. This property takes precedence over circuitBreakerForceClosed();",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-request-volume-threshold",
+      "type": "java.lang.Integer",
+      "description": "Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the HystrixCircuitBreaker will trip. If below this number the circuit will not trip regardless of error percentage.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-sleep-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests again.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.hystrix.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.springboot.HystrixConfigurationDefinitionCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.hystrix.core-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Core thread-pool size that gets passed to java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int)",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.execution-isolation-semaphore-max-concurrent-requests",
+      "type": "java.lang.Integer",
+      "description": "Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be rejected. Applicable only when executionIsolationStrategy == SEMAPHORE.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.hystrix.execution-isolation-strategy",
+      "type": "java.lang.String",
+      "description": "What isolation strategy HystrixCommand.run() will be executed with. If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads in the thread-pool. If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore count.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": "THREAD"
+    },
+    {
+      "name": "camel.hystrix.execution-isolation-thread-interrupt-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "Whether the execution thread should attempt an interrupt (using Future#cancel ) when a thread times out. Applicable only when executionIsolationStrategy() == THREAD.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.execution-timeout-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether the timeout mechanism is enabled for this command",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.execution-timeout-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Time in milliseconds at which point the command will timeout and halt execution. If executionIsolationThreadInterruptOnTimeout == true and the command is thread-isolated, the executing thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command will get unsubscribed.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.hystrix.fallback-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether HystrixCommand.getFallback() should be attempted when failure occurs.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.fallback-isolation-semaphore-max-concurrent-requests",
+      "type": "java.lang.Integer",
+      "description": "Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit will fail-fast and not attempt retrieving a fallback.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.group-key",
+      "type": "java.lang.String",
+      "description": "Sets the group key to use. The default value is CamelHystrix.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": "CamelHystrix"
+    },
+    {
+      "name": "camel.hystrix.keep-alive-time",
+      "type": "java.lang.Integer",
+      "description": "Keep-alive time in minutes that gets passed to ThreadPoolExecutor#setKeepAliveTime(long,TimeUnit)",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.hystrix.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Max queue size that gets passed to BlockingQueue in HystrixConcurrencyStrategy.getBlockingQueue(int) This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the fly. For that, use queueSizeRejectionThreshold().",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.hystrix.maximum-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum thread-pool size that gets passed to ThreadPoolExecutor#setMaximumPoolSize(int) . This is the maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.metrics-health-snapshot-interval-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error percentages and affect HystrixCircuitBreaker.isOpen() status. On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls how often it is calculated.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-bucket-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of values stored in each bucket of the rolling percentile. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-window-buckets",
+      "type": "java.lang.Integer",
+      "description": "Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 6
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-statistical-window-buckets",
+      "type": "java.lang.Integer",
+      "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-statistical-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. The window is divided into buckets and rolls by those increments.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.hystrix.queue-size-rejection-threshold",
+      "type": "java.lang.Integer",
+      "description": "Queue size rejection threshold is an artificial max size at which rejections will occur even if maxQueueSize has not been reached. This is done because the maxQueueSize of a BlockingQueue can not be dynamically changed and we want to support dynamically changing the queue size that affects rejections. This is used by HystrixCommand when queuing a thread for execution.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.hystrix.request-log-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether HystrixCommand execution and events should be logged to HystrixRequestLog.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.thread-pool-key",
+      "type": "java.lang.String",
+      "description": "Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": "CamelHystrix"
+    },
+    {
+      "name": "camel.hystrix.thread-pool-rolling-number-statistical-window-buckets",
+      "type": "java.lang.Integer",
+      "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.thread-pool-rolling-number-statistical-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.language.constant.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.constant.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the constant language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.constant.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.csimple.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.csimple.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the csimple language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.csimple.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.exchangeproperty.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.exchangeproperty.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the exchangeProperty language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.exchangeproperty.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.file.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.file.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the file language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.file.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.header.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.header.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the header language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.header.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.ref.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.ref.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ref language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ref.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.simple.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.simple.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the simple language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.simple.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.tokenize.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.tokenize.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tokenize language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.tokenize.group-delimiter",
+      "type": "java.lang.String",
+      "description": "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter.",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.tokenize.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.resilience4j.automatic-transition-from-open-to-half-open-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.resilience4j.circuit-breaker-ref",
+      "type": "java.lang.String",
+      "description": "Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreaker instance to lookup and use from the registry. When using this, then any other circuit breaker options are not in use.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.config-ref",
+      "type": "java.lang.String",
+      "description": "Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreakerConfig instance to lookup and use from the registry.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.resilience4j.failure-rate-threshold",
+      "type": "java.lang.Float",
+      "description": "Configures the failure rate threshold in percentage. If the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 50 percentage.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.minimum-number-of-calls",
+      "type": "java.lang.Integer",
+      "description": "Configures the minimum number of calls which are required (per sliding window period) before the CircuitBreaker can calculate the error rate. For example, if minimumNumberOfCalls is 10, then at least 10 calls must be recorded, before the failure rate can be calculated. If only 9 calls have been recorded the CircuitBreaker will not transition to open even if all 9 calls have failed. Default minimumNumberOfCalls is 100",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.resilience4j.permitted-number-of-calls-in-half-open-state",
+      "type": "java.lang.Integer",
+      "description": "Configures the number of permitted calls when the CircuitBreaker is half open. The size must be greater than 0. Default size is 10.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.resilience4j.sliding-window-size",
+      "type": "java.lang.Integer",
+      "description": "Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. slidingWindowSize configures the size of the sliding window. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. The slidingWindowSize must be greater than 0. The minimumNumberOfCalls must be greater than 0. If the slidingWindowType is COUNT_BASED, the minimumNumberOfCalls cannot be greater than slidingWindowSize . If the slidingWindowType is TIME_BASED, you can pick whatever you want. Default slidingWindowSize is 100.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.resilience4j.sliding-window-type",
+      "type": "java.lang.String",
+      "description": "Configures the type of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. Default slidingWindowType is COUNT_BASED.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": "COUNT_BASED"
+    },
+    {
+      "name": "camel.resilience4j.slow-call-duration-threshold",
+      "type": "java.lang.Integer",
+      "description": "Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.resilience4j.slow-call-rate-threshold",
+      "type": "java.lang.Float",
+      "description": "Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 100 percentage which means that all recorded calls must be slower than slowCallDurationThreshold.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.wait-duration-in-open-state",
+      "type": "java.lang.Integer",
+      "description": "Configures the wait duration (in seconds) which specifies how long the CircuitBreaker should stay open, before it switches to half open. Default value is 60 seconds.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.resilience4j.writable-stack-trace-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables writable stack traces. When set to false, Exception.getStackTrace returns a zero length array. This may be used to reduce log spam when the circuit breaker is open as the cause of the exceptions is already known (the circuit breaker is short-circuiting calls).",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.rest.api-component",
+      "type": "java.lang.String",
+      "description": "The name of the Camel component to use as the REST API (such as swagger) If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-context-id-pattern",
+      "type": "java.lang.String",
+      "description": "Sets an CamelContext id pattern to only allow Rest APIs from rest services within CamelContext's which name matches the pattern. The pattern #name# refers to the CamelContext name, to match on the current CamelContext only. For any other value, the pattern uses the rules from PatternHelper#matchPattern(String,String)",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-context-listing",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether listing of all available CamelContext's with REST services in the JVM is enabled. If enabled it allows to discover these contexts, if false then only the current CamelContext is in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.api-context-path",
+      "type": "java.lang.String",
+      "description": "Sets a leading API context-path the REST API services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-context-route-id",
+      "type": "java.lang.String",
+      "description": "Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-host",
+      "type": "java.lang.String",
+      "description": "To use an specific hostname for the API documentation (eg swagger) This can be used to override the generated host with this configured hostname",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the api documentation (swagger). For example set property api.title to my cool stuff",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-vendor-extension",
+      "type": "java.lang.Boolean",
+      "description": "Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Not all 3rd party API gateways and tools supports vendor-extensions when importing your API docs.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.binding-mode",
+      "type": "org.apache.camel.model.rest.RestBindingMode",
+      "description": "Sets the binding mode to use. The default value is off",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.client-request-validation",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable validation of the client request to check whether the Content-Type and Accept headers from the client is supported by the Rest-DSL configuration of its consumes\/produces settings. This can be turned on, to enable this check. In case of validation error, then HTTP Status codes 415 or 406 is returned. The default value is false.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.component",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.component-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the rest component in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.consumer-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the rest consumer in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.context-path",
+      "type": "java.lang.String",
+      "description": "Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.cors-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure custom CORS headers.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.data-format-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are: json.in. json.out. xml.in. xml.out. For example a key with value xml.out.mustBeJAXBElement is only for the XML data format for the outgoing. A key without a prefix is a common key for all situations.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.enable-cors",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable CORS headers in the HTTP response. The default value is false.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.endpoint-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the rest endpoint in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.host",
+      "type": "java.lang.String",
+      "description": "The hostname to use for exposing the REST service.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.host-name-resolver",
+      "type": "org.apache.camel.model.rest.RestHostNameResolver",
+      "description": "If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.json-data-format",
+      "type": "java.lang.String",
+      "description": "Name of specific json data format to use. By default json-jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.port",
+      "type": "java.lang.String",
+      "description": "The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.producer-api-doc",
+      "type": "java.lang.String",
+      "description": "Sets the location of the api document (swagger api) the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. This requires adding camel-swagger-java to the classpath, and any miss configuration will let Camel fail on startup and report the error(s). The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.producer-component",
+      "type": "java.lang.String",
+      "description": "Sets the name of the Camel component to use as the REST producer",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.scheme",
+      "type": "java.lang.String",
+      "description": "The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.skip-binding-on-error-code",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.use-x-forward-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use X-Forward headers for Host and related setting. The default value is true.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.rest.xml-data-format",
+      "type": "java.lang.String",
+      "description": "Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-couchbase-starter/src/main/docs/couchbase.json b/components-starter/camel-couchbase-starter/src/main/docs/couchbase.json
new file mode 100644
index 0000000..8c13d78
--- /dev/null
+++ b/components-starter/camel-couchbase-starter/src/main/docs/couchbase.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.couchbase",
+      "type": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchbase.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.couchbase.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.couchbase.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.couchbase.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.couchbase.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the couchbase component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchbase.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-couchdb-starter/src/main/docs/couchdb.json b/components-starter/camel-couchdb-starter/src/main/docs/couchdb.json
new file mode 100644
index 0000000..9d298c7
--- /dev/null
+++ b/components-starter/camel-couchdb-starter/src/main/docs/couchdb.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.couchdb",
+      "type": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchdb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.couchdb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.couchdb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.couchdb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.couchdb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the couchdb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchdb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cron-starter/src/main/docs/cron.json b/components-starter/camel-cron-starter/src/main/docs/cron.json
new file mode 100644
index 0000000..3b2fd18
--- /dev/null
+++ b/components-starter/camel-cron-starter/src/main/docs/cron.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cron",
+      "type": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cron.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cron.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cron.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cron.cron-service",
+      "type": "java.lang.String",
+      "description": "The id of the CamelCronService to use when multiple implementations are provided",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cron.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cron.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cron component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-crypto-starter/src/main/docs/crypto.json b/components-starter/camel-crypto-starter/src/main/docs/crypto.json
new file mode 100644
index 0000000..aa2ec4f
--- /dev/null
+++ b/components-starter/camel-crypto-starter/src/main/docs/crypto.json
@@ -0,0 +1,347 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.crypto",
+      "type": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.crypto",
+      "type": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.pgp",
+      "type": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.crypto.algorithm",
+      "type": "java.lang.String",
+      "description": "Sets the JCE name of the Algorithm that should be used for the signer.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": "SHA256withRSA"
+    },
+    {
+      "name": "camel.component.crypto.alias",
+      "type": "java.lang.String",
+      "description": "Sets the alias used to query the KeyStore for keys and {link java.security.cert.Certificate Certificates} to be used in signing and verifying exchanges. This value can be provided at runtime via the message header org.apache.camel.component.crypto.DigitalSignatureConstants#KEYSTORE_ALIAS",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.crypto.buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Set the size of the buffer used to read in the Exchange payload data.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.crypto.certificate",
+      "type": "java.security.cert.Certificate",
+      "description": "Set the Certificate that should be used to verify the signature in the exchange based on its payload. The option is a java.security.cert.Certificate type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.certificate-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a PrivateKey that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.clear-headers",
+      "type": "java.lang.Boolean",
+      "description": "Determines if the Signature specific headers be cleared after signing and verification. Defaults to true, and should only be made otherwise at your extreme peril as vital private information such as Keys and passwords may escape if unset.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.crypto.configuration",
+      "type": "org.apache.camel.component.crypto.DigitalSignatureConfiguration",
+      "description": "To use the shared DigitalSignatureConfiguration as configuration. The option is a org.apache.camel.component.crypto.DigitalSignatureConfiguration type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.crypto.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the crypto component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.key-store-parameters",
+      "type": "org.apache.camel.support.jsse.KeyStoreParameters",
+      "description": "Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges based on the given KeyStoreParameters. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a org.apache.camel.support.jsse.KeyStoreParameters type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.keystore",
+      "type": "java.security.KeyStore",
+      "description": "Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a java.security.KeyStore type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.keystore-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a Keystore that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.crypto.password",
+      "type": "java.lang.String",
+      "description": "Sets the password used to access an aliased PrivateKey in the KeyStore.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.private-key",
+      "type": "java.security.PrivateKey",
+      "description": "Set the PrivateKey that should be used to sign the exchange. The option is a java.security.PrivateKey type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.private-key-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a PrivateKey that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.provider",
+      "type": "java.lang.String",
+      "description": "Set the id of the security provider that provides the configured Signature algorithm.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.public-key",
+      "type": "java.security.PublicKey",
+      "description": "Set the PublicKey that should be used to verify the signature in the exchange. The option is a java.security.PublicKey type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.public-key-name",
+      "type": "java.lang.String",
+      "description": "references that should be resolved when the context changes",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.secure-random",
+      "type": "java.security.SecureRandom",
+      "description": "Set the SecureRandom used to initialize the Signature service. The option is a java.security.SecureRandom type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.secure-random-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a SecureRandom that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.signature-header-name",
+      "type": "java.lang.String",
+      "description": "Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelDigitalSignature'",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.algorithm",
+      "type": "java.lang.String",
+      "description": "The JCE algorithm name indicating the cryptographic algorithm that will be used.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.algorithm-parameter-ref",
+      "type": "java.lang.String",
+      "description": "A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type using the given name as a java.security.spec.AlgorithmParameterSpec type.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.buffersize",
+      "type": "java.lang.Integer",
+      "description": "The size of the buffer used in the signature process.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.crypto-provider",
+      "type": "java.lang.String",
+      "description": "The name of the JCE Security Provider that should be used.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.crypto.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the crypto data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.init-vector-ref",
+      "type": "java.lang.String",
+      "description": "Refers to a byte array containing the Initialization Vector that will be used to initialize the Cipher.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.inline",
+      "type": "java.lang.Boolean",
+      "description": "Flag indicating that the configured IV should be inlined into the encrypted data stream. Is by default false.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.crypto.key-ref",
+      "type": "java.lang.String",
+      "description": "Refers to the secret key to lookup from the register to use.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.mac-algorithm",
+      "type": "java.lang.String",
+      "description": "The JCE algorithm name indicating the Message Authentication algorithm.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "defaultValue": "HmacSHA1"
+    },
+    {
+      "name": "camel.dataformat.crypto.should-append-h-m-a-c",
+      "type": "java.lang.Boolean",
+      "description": "Flag indicating that a Message Authentication Code should be calculated and appended to the encrypted data.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.pgp.algorithm",
+      "type": "java.lang.Integer",
+      "description": "Symmetric key encryption algorithm; possible values are defined in org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags; for example 2 (= TRIPLE DES), 3 (= CAST5), 4 (= BLOWFISH), 6 (= DES), 7 (= AES_128). Only relevant for encrypting.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.armored",
+      "type": "java.lang.Boolean",
+      "description": "This option will cause PGP to base64 encode the encrypted text, making it available for copy\/paste, etc.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.pgp.compression-algorithm",
+      "type": "java.lang.Integer",
+      "description": "Compression algorithm; possible values are defined in org.bouncycastle.bcpg.CompressionAlgorithmTags; for example 0 (= UNCOMPRESSED), 1 (= ZIP), 2 (= ZLIB), 3 (= BZIP2). Only relevant for encrypting.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.pgp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pgp data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.hash-algorithm",
+      "type": "java.lang.Integer",
+      "description": "Signature hash algorithm; possible values are defined in org.bouncycastle.bcpg.HashAlgorithmTags; for example 2 (= SHA1), 8 (= SHA256), 9 (= SHA384), 10 (= SHA512), 11 (=SHA224). Only relevant for signing.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.integrity",
+      "type": "java.lang.Boolean",
+      "description": "Adds an integrity check\/sign into the encryption file. The default value is true.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.pgp.key-file-name",
+      "type": "java.lang.String",
+      "description": "Filename of the keyring; must be accessible as a classpath resource (but you can specify a location in the file system by using the file: prefix).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.key-userid",
+      "type": "java.lang.String",
+      "description": "The user ID of the key in the PGP keyring used during encryption. Can also be only a part of a user ID. For example, if the user ID is Test User then you can use the part Test User or to address the user ID.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.password",
+      "type": "java.lang.String",
+      "description": "Password used when opening the private key (not used for encryption).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.provider",
+      "type": "java.lang.String",
+      "description": "Java Cryptography Extension (JCE) provider, default is Bouncy Castle (BC). Alternatively you can use, for example, the IAIK JCE provider; in this case the provider must be registered beforehand and the Bouncy Castle provider must not be registered beforehand. The Sun JCE provider does not work.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-key-file-name",
+      "type": "java.lang.String",
+      "description": "Filename of the keyring to use for signing (during encryption) or for signature verification (during decryption); must be accessible as a classpath resource (but you can specify a location in the file system by using the file: prefix).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-key-ring",
+      "type": "java.lang.String",
+      "description": "Keyring used for signing\/verifying as byte array. You can not set the signatureKeyFileName and signatureKeyRing at the same time.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-key-userid",
+      "type": "java.lang.String",
+      "description": "User ID of the key in the PGP keyring used for signing (during encryption) or signature verification (during decryption). During the signature verification process the specified User ID restricts the public keys from the public keyring which can be used for the verification. If no User ID is specified for the signature verficiation then any public key in the public keyring can be used for the verification. Can also be only a part of a user ID. For example, if the user ID is Test User then you can use the part Test User or to address the User ID.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-password",
+      "type": "java.lang.String",
+      "description": "Password used when opening the private key used for signing (during encryption).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-verification-option",
+      "type": "java.lang.String",
+      "description": "Controls the behavior for verifying the signature during unmarshaling. There are 4 values possible: optional: The PGP message may or may not contain signatures; if it does contain signatures, then a signature verification is executed. required: The PGP message must contain at least one signature; if this is not the case an exception (PGPException) is thrown. A signature verification is executed. ignore: Contained signatures in the PGP message are ignored; no signature verification is executed. no_signature_allowed: The PGP message must not contain a signature; otherwise an exception (PGPException) is thrown.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-csimple-joor-starter/src/main/docs/csimple-joor.json b/components-starter/camel-csimple-joor-starter/src/main/docs/csimple-joor.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-csimple-joor-starter/src/main/docs/csimple-joor.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-csv-starter/src/main/docs/csv.json b/components-starter/camel-csv-starter/src/main/docs/csv.json
new file mode 100644
index 0000000..7f1e29e
--- /dev/null
+++ b/components-starter/camel-csv-starter/src/main/docs/csv.json
@@ -0,0 +1,219 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.csv",
+      "type": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.csv.allow-missing-column-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow missing column names.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.capture-header-record",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should capture the header record and store it in the message header",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.comment-marker",
+      "type": "java.lang.String",
+      "description": "Sets the comment marker of the reference format.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.comment-marker-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables the comment marker of the reference format.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.csv.delimiter",
+      "type": "java.lang.String",
+      "description": "Sets the delimiter to use. The default value is , (comma)",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the csv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.escape",
+      "type": "java.lang.String",
+      "description": "Sets the escape character to use",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.escape-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Use for disabling using escape character",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.format-name",
+      "type": "java.lang.String",
+      "description": "The name of the format to use, the default value is CSVFormat.DEFAULT",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.format-ref",
+      "type": "java.lang.String",
+      "description": "The reference format to use, it will be updated with the other format options, the default value is CSVFormat.DEFAULT",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.header",
+      "type": "java.util.List<java.lang.String>",
+      "description": "To configure the CSV headers",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.header-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Use for disabling headers",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.ignore-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore empty lines.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.ignore-header-case",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether or not to ignore case when accessing header names.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.ignore-surrounding-spaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore surrounding spaces",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.marshaller-factory-ref",
+      "type": "java.lang.String",
+      "description": "Sets the implementation of the CsvMarshallerFactory interface which is able to customize marshalling\/unmarshalling behavior by extending CsvMarshaller or creating it from scratch.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.null-string",
+      "type": "java.lang.String",
+      "description": "Sets the null string",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.null-string-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Used to disable null strings",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.quote",
+      "type": "java.lang.String",
+      "description": "Sets the quote which by default is",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.quote-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Used to disable quotes",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.quote-mode",
+      "type": "java.lang.String",
+      "description": "Sets the quote mode",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.record-converter-ref",
+      "type": "java.lang.String",
+      "description": "Refers to a custom CsvRecordConverter to lookup from the registry to use.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.record-separator",
+      "type": "java.lang.String",
+      "description": "Sets the record separator (aka new line) which by default is new line characters (CRLF)",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.record-separator-disabled",
+      "type": "java.lang.String",
+      "description": "Used for disabling record separator",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.skip-header-record",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip the header record in the output",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.trailing-delimiter",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether or not to add a trailing delimiter.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.trim",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether or not to trim leading and trailing blanks.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.use-maps",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps (HashMap)for the lines values instead of lists. It requires to have header (either defined or collected).",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.use-ordered-maps",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires to have header (either defined or collected).",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cxf-starter/src/main/docs/cxf.json b/components-starter/camel-cxf-starter/src/main/docs/cxf.json
new file mode 100644
index 0000000..fc6a3a0
--- /dev/null
+++ b/components-starter/camel-cxf-starter/src/main/docs/cxf.json
@@ -0,0 +1,125 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cxf",
+      "type": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.cxfrs",
+      "type": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxfrs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cxf.allow-streaming",
+      "type": "java.lang.Boolean",
+      "description": "This option controls whether the CXF component, when running in PAYLOAD mode, will DOM parse the incoming messages into DOM Elements or keep the payload as a javax.xml.transform.Source object that would allow streaming in some cases.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cxf.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cxf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cxf component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxf.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxfrs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cxfrs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxfrs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cxfrs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cxfrs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxfrs.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxfrs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxfrs.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-cxf-transport-starter/src/main/docs/cxf-transport.json b/components-starter/camel-cxf-transport-starter/src/main/docs/cxf-transport.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-cxf-transport-starter/src/main/docs/cxf-transport.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-dataformat-starter/src/main/docs/dataformat.json b/components-starter/camel-dataformat-starter/src/main/docs/dataformat.json
new file mode 100644
index 0000000..8e7e310
--- /dev/null
+++ b/components-starter/camel-dataformat-starter/src/main/docs/dataformat.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dataformat",
+      "type": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataformat.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dataformat.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dataformat.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dataformat.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dataformat component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataformat.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-dataset-starter/src/main/docs/dataset.json b/components-starter/camel-dataset-starter/src/main/docs/dataset.json
new file mode 100644
index 0000000..07938f3
--- /dev/null
+++ b/components-starter/camel-dataset-starter/src/main/docs/dataset.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dataset",
+      "type": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test",
+      "type": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.dataset.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dataset-test.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dataset-test.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dataset-test.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dataset-test component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset-test.log",
+      "type": "java.lang.Boolean",
+      "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dataset.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dataset.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dataset component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset.log",
+      "type": "java.lang.Boolean",
+      "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-datasonnet-starter/src/main/docs/datasonnet.json b/components-starter/camel-datasonnet-starter/src/main/docs/datasonnet.json
new file mode 100644
index 0000000..0e068af
--- /dev/null
+++ b/components-starter/camel-datasonnet-starter/src/main/docs/datasonnet.json
@@ -0,0 +1,48 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.datasonnet",
+      "type": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.datasonnet.body-media-type",
+      "type": "java.lang.String",
+      "description": "The String representation of the message's body MediaType",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.datasonnet.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the datasonnet language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.output-media-type",
+      "type": "java.lang.String",
+      "description": "The String representation of the MediaType to output",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-debezium-common-starter/src/main/docs/debezium-common.json b/components-starter/camel-debezium-common-starter/src/main/docs/debezium-common.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-debezium-common-starter/src/main/docs/debezium-common.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb.json b/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb.json
new file mode 100644
index 0000000..9479142
--- /dev/null
+++ b/components-starter/camel-debezium-mongodb-starter/src/main/docs/debezium-mongodb.json
@@ -0,0 +1,418 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-mongodb",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-mongodb.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mongodb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.collection-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the collection names for which changes are to be excluded",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.collection-include-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the collection names for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.connect-backoff-initial-delay-ms",
+      "type": "java.lang.Long",
+      "description": "The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available, given in milliseconds. Defaults to 1 second (1,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.connect-backoff-max-delay-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available, given in milliseconds. Defaults to 120 second (120,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.connect-max-attempts",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of failed connection attempts to a replica set primary before an exception occurs and task is aborted. Defaults to 16, which with the defaults for 'connect.backoff.initial.delay.ms' and 'connect.backoff.max.delay.ms' results in just over 20 minutes of attempts before failing.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 16
+    },
+    {
+      "name": "camel.component.debezium-mongodb.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.cursor-max-await-time-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum processing time in milliseconds to wait for the oplog cursor to process a single poll request. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.database-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the database names for which changes are to be excluded",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.database-include-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the database names for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-mongodb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.field-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of the fully-qualified names of fields that should be excluded from change event message values",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.field-renames",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of the fully-qualified replacements of fields that should be used to rename fields in change event message values. Fully-qualified replacements for fields are of the form databaseName.collectionName.fieldName.nestedFieldName:newNestedFieldName, where databaseName and collectionName may contain the wildcard () which matches any characters, the colon character (:) is used to determine rename mapping of field.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-mongodb.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-mongodb.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-authsource",
+      "type": "java.lang.String",
+      "description": "Database containing user credentials.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "admin"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-connect-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The connection timeout, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-hosts",
+      "type": "java.lang.String",
+      "description": "The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server(s) in the replica set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-members-auto-discover",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the addresses in 'hosts' are seeds that should be used to discover all members of the cluster or replica set ('true'), or whether the address(es) in 'hosts' should be used as is ('false'). The default is 'true'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the MongoDB replica set or cluster and all recorded offsets, andthat is used as a prefix for all schemas and topics. Each distinct MongoDB installation should have a separate namespace and monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-password",
+      "type": "java.lang.String",
+      "description": "Password to be used when connecting to MongoDB, if necessary.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval for looking for new, removed, or changed replica sets, given in milliseconds. Defaults to 30 seconds (30,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-server-selection-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The server selection timeout, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-socket-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The socket timeout, given in milliseconds. Defaults to 0 ms. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-ssl-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Should connector use SSL to connect to MongoDB instances",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-ssl-invalid-hostname-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether invalid host names are allowed when using SSL. If true the connection will not prevent man-in-the-middle attacks",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-user",
+      "type": "java.lang.String",
+      "description": "Database user for connecting to MongoDB, if necessary.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-mongodb.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-collection-filter-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of ., for which the initial snapshot may be a subset of data present in the data source. The subset would be defined by mongodb filter query specified as value for property snapshot.collection.filter.override..",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should always perform an initial sync when required; 'never' to specify the connector should never perform an initial sync",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql.json b/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql.json
new file mode 100644
index 0000000..e7f4aa8
--- /dev/null
+++ b/components-starter/camel-debezium-mysql-starter/src/main/docs/debezium-mysql.json
@@ -0,0 +1,647 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-mysql",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-mysql.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.bigint-unsigned-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how BIGINT UNSIGNED columns should be represented in change events, including:'precise' uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'long' (the default) represents values using Java's 'long', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "long"
+    },
+    {
+      "name": "camel.component.debezium-mysql.binary-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "bytes"
+    },
+    {
+      "name": "camel.component.debezium-mysql.binlog-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The size of a look-ahead buffer used by the binlog reader to decide whether the transaction in progress is going to be committed or rolled back. Use 0 to disable look-ahead buffering. Defaults to 0 (i.e. buffering is disabled).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-blacklist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-exclude-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-include-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-whitelist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events (deprecated, use column.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.connect-keep-alive",
+      "type": "java.lang.Boolean",
+      "description": "Whether a separate thread should be used to ensure the connection is kept alive.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.connect-keep-alive-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval for connection checking if keep alive thread is used, given in milliseconds Defaults to 1 minute (60,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-mysql.connect-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "Maximum time to wait after trying to connect to the database before timing out, given in milliseconds. Defaults to 30 seconds (30,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.debezium-mysql.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match database names to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history",
+      "type": "java.lang.String",
+      "description": "The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "io.debezium.relational.history.FileDatabaseHistory"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-bootstrap-servers",
+      "type": "java.lang.String",
+      "description": "A list of host\/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-recovery-attempts",
+      "type": "java.lang.Integer",
+      "description": "The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-recovery-poll-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-topic",
+      "type": "java.lang.String",
+      "description": "The name of the topic for the database schema history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-skip-unparseable-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls the action Debezium will take when it meets a DDL statement in binlog, that it cannot parse.By default the connector will stop operating but by changing the setting it can ignore the statements which it cannot parse. If skipping is enabled then Debezium can miss metadata changes.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-store-only-captured-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a captured table will be stored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-store-only-monitored-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a monitored table will be stored (deprecated, use database.history.store.only.captured.tables.ddl instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-hostname",
+      "type": "java.lang.String",
+      "description": "Resolvable hostname or IP address of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-include-list",
+      "type": "java.lang.String",
+      "description": "The databases for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-initial-statements",
+      "type": "java.lang.String",
+      "description": "A semicolon separated list of SQL statements to be executed when a JDBC connection (not binlog reading connection) to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configuration of session parameters only,but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-jdbc-driver",
+      "type": "java.lang.String",
+      "description": "JDBC Driver class name used to connect to the MySQL database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "class com.mysql.cj.jdbc.Driver"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-password",
+      "type": "java.lang.String",
+      "description": "Password of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-port",
+      "type": "java.lang.Integer",
+      "description": "Port of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 3306
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-server-id",
+      "type": "java.lang.Long",
+      "description": "A numeric ID of this database client, which must be unique across all currently-running database processes in the cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number is generated between 5400 and 6400.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-server-id-offset",
+      "type": "java.lang.Long",
+      "description": "Only relevant if parallel snapshotting is configured. During parallel snapshotting, multiple (4) connections open to the database client, and they each need their own unique connection ID. This offset is used to generate those IDs from the base configured cluster ID.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-server-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-keystore",
+      "type": "java.lang.String",
+      "description": "Location of the Java keystore file containing an application process's own certificate and private key.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-keystore-password",
+      "type": "java.lang.String",
+      "description": "Password to access the private key from the keystore file specified by 'ssl.keystore' configuration property or the 'javax.net.ssl.keyStore' system or JVM property. This password is used to unlock the keystore file (store password), and to decrypt the private key stored in the keystore (key password).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-mode",
+      "type": "java.lang.String",
+      "description": "Whether to use an encrypted connection to MySQL. Options include'disabled' (the default) to use an unencrypted connection; 'preferred' to establish a secure (encrypted) connection if the server supports secure connections, but fall back to an unencrypted connection otherwise; 'required' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify_ca' like 'required' but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates, or fail if no valid matching CA certificates are found; or'verify_identity' like 'verify_ca' but additionally verify that the server certificate matches the host to which the connection is attempted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "disabled"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-truststore",
+      "type": "java.lang.String",
+      "description": "Location of the Java truststore file containing the collection of CA certificates trusted by this application process (trust store).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-truststore-password",
+      "type": "java.lang.String",
+      "description": "Password to unlock the keystore file (store password) specified by 'ssl.trustore' configuration property or the 'javax.net.ssl.trustStore' system or JVM property.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-user",
+      "type": "java.lang.String",
+      "description": "Name of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.datatype-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.decimal-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "precise"
+    },
+    {
+      "name": "camel.component.debezium-mysql.enable-time-adjuster",
+      "type": "java.lang.Boolean",
+      "description": "MySQL allows user to insert year value as either 2-digit or 4-digit. In case of two digit the value is automatically mapped into 1970 - 2069.false - delegates the implicit conversion to the databasetrue - (the default) Debezium makes the conversion",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-mysql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.event-deserialization-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during deserialization of binlog events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mysql.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mysql.gtid-source-excludes",
+      "type": "java.lang.String",
+      "description": "The source UUIDs used to exclude GTID ranges when determine the starting position in the MySQL server's binlog.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.gtid-source-filter-dml-events",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, we will only produce DML events into Kafka for transactions that were written on mysql servers with UUIDs matching the filters defined by the gtid.source.includes or gtid.source.excludes configuration options, if they are specified.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.gtid-source-includes",
+      "type": "java.lang.String",
+      "description": "The source UUIDs used to include GTID ranges when determine the starting position in the MySQL server's binlog.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-mysql.include-query",
+      "type": "java.lang.Boolean",
+      "description": "Whether the connector should include the original SQL query that generated the change event. Note: This option requires MySQL be configured with the binlog_rows_query_log_events option set to ON. Query will not be present for events generated from snapshot. WARNING: Enabling this option may expose tables or fields explicitly blacklisted or masked by including the original SQL statement in the change event. For this reason the default value is 'false'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.include-schema-changes",
+      "type": "java.lang.Boolean",
+      "description": "Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.inconsistent-schema-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binlog events that belong to a table missing from internal schema representation (i.e. internal representation is not consistent with database) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'skip' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mysql.incremental-snapshot-chunk-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of chunk for incremental snapshotting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.debezium-mysql.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mysql.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mysql.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-mysql.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-mysql.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.message-key-columns",
+      "type": "java.lang.String",
+      "description": "A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.min-row-count-to-stream-results",
+      "type": "java.lang.Integer",
+      "description": "The number of rows a table must contain to stream results rather than pull all into memory during snapshots. Defaults to 1,000. Use 0 to stream all results and completely avoid checking the size of each table.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-mysql.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mysql.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-lock-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-locking-mode",
+      "type": "java.lang.String",
+      "description": "Controls how long the connector holds onto the global read lock while it is performing a snapshot. The default is 'minimal', which means the connector holds the global read lock (and thus prevents any updates) for just the initial portion of the snapshot while the database schemas and other metadata are being read. The remaining work in a snapshot involves selecting all rows from each table, and this can be done using the snapshot process' REPEATABLE READ transaction even when the lock is no longer held and other operations are updating the database. However, in some cases it may be desirable to block all writes for the entire duration of the snapshot; in such cases set this property to 'extended'. Using a value of 'none' will prevent the connector from acquiring any table locks during the snapshot process. This mode can only be used in combination with snapshot.mode values of 'schema_only' or 'schema_only_recovery' and is only safe to use if no schema changes are happening while the snapshot is taken.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "minimal"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'schema_only' to only take a snapshot of the schema (table structures) but no actual data; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally read the binlog; and'never' to specify the connector should never run a snapshot and that upon first startup the connector should read from the beginning of the binlog. The 'never' mode should be used with care, and only when the binlog is known to contain all history.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-new-tables",
+      "type": "java.lang.String",
+      "description": "BETA FEATURE: On connector restart, the connector will check if there have been any new tables added to the configuration, and snapshot them. There is presently only two options:'off': Default behavior. Do not snapshot new tables.'parallel': The snapshot of the new tables will occur in parallel to the continued binlog reading of the old tables. When the snapshot completes, an independent binlog reader will begin reading the events for the new tables until it catches up to present time. At this point, both old and new binlog readers will be momentarily halted and new binlog reader will start that will read the binlog for all configured tables. The parallel binlog reader will have a configured server id of 10000 the primary binlog reader's server id.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "off"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-select-statement-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-blacklist",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-ignore-builtin",
+      "type": "java.lang.Boolean",
+      "description": "Flag specifying whether built-in tables should be ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-include-list",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-whitelist",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured (deprecated, use table.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.time-precision-mode",
+      "type": "java.lang.String",
+      "description": "Time, date and timestamps can be represented with different kinds of precisions, including:'adaptive_time_microseconds': the precision of date and timestamp values is based the database column's precision; but time fields always use microseconds precision;'connect': always represents time, date and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "adaptive_time_microseconds"
+    },
+    {
+      "name": "camel.component.debezium-mysql.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres.json b/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres.json
new file mode 100644
index 0000000..82d9e5a
--- /dev/null
+++ b/components-starter/camel-debezium-postgres-starter/src/main/docs/debezium-postgres.json
@@ -0,0 +1,617 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-postgres",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-postgres.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-postgres.binary-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "bytes"
+    },
+    {
+      "name": "camel.component.debezium-postgres.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-blacklist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-exclude-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-include-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-whitelist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events (deprecated, use column.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-dbname",
+      "type": "java.lang.String",
+      "description": "The name of the database from which the connector should capture changes",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-hostname",
+      "type": "java.lang.String",
+      "description": "Resolvable hostname or IP address of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-initial-statements",
+      "type": "java.lang.String",
+      "description": "A semicolon separated list of SQL statements to be executed when a JDBC connection to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configurationof session parameters only, but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-password",
+      "type": "java.lang.String",
+      "description": "Password of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-port",
+      "type": "java.lang.Integer",
+      "description": "Port of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 5432
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-server-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslcert",
+      "type": "java.lang.String",
+      "description": "File containing the SSL Certificate for the client. See the Postgres SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslfactory",
+      "type": "java.lang.String",
+      "description": "A name of class to that creates SSL Sockets. Use org.postgresql.ssl.NonValidatingFactory to disable SSL validation in development environments",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslkey",
+      "type": "java.lang.String",
+      "description": "File containing the SSL private key for the client. See the Postgres SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslmode",
+      "type": "java.lang.String",
+      "description": "Whether to use an encrypted connection to Postgres. Options include'disable' (the default) to use an unencrypted connection; 'require' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify-ca' like 'required' but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates, or fail if no valid matching CA certificates are found; or'verify-full' like 'verify-ca' but additionally verify that the server certificate matches the host to which the connection is attempted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "disable"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslpassword",
+      "type": "java.lang.String",
+      "description": "Password to access the client private key from the file specified by 'database.sslkey'. See the Postgres SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslrootcert",
+      "type": "java.lang.String",
+      "description": "File containing the root certificate(s) against which the server is validated. See the Postgres JDBC SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-tcpkeepalive",
+      "type": "java.lang.Boolean",
+      "description": "Enable or disable TCP keep-alive probe to avoid dropping TCP connection",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-user",
+      "type": "java.lang.String",
+      "description": "Name of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.datatype-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.decimal-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "precise"
+    },
+    {
+      "name": "camel.component.debezium-postgres.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-postgres component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-postgres.heartbeat-action-query",
+      "type": "java.lang.String",
+      "description": "The query executed with every heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-postgres.hstore-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how HSTORE columns should be represented in change events, including:'json' represents values as string-ified JSON (default)'map' represents values as a key\/value map",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "json"
+    },
+    {
+      "name": "camel.component.debezium-postgres.include-unknown-datatypes",
+      "type": "java.lang.Boolean",
+      "description": "Specify whether the fields of data type not supported by Debezium should be processed:'false' (the default) omits the fields; 'true' converts the field into an implementation dependent binary representation.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.incremental-snapshot-chunk-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of chunk for incremental snapshotting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.debezium-postgres.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-postgres.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-postgres.interval-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how INTERVAL columns should be represented in change events, including:'string' represents values as an exact ISO formatted string'numeric' (default) represents values using the inexact conversion into microseconds",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "numeric"
+    },
+    {
+      "name": "camel.component.debezium-postgres.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-postgres.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-postgres.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.message-key-columns",
+      "type": "java.lang.String",
+      "description": "A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.plugin-name",
+      "type": "java.lang.String",
+      "description": "The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs', 'wal2json', 'pgoutput', 'wal2json_streaming', 'wal2json_rds' and 'wal2json_rds_streaming'. Defaults to 'decoderbufs'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "decoderbufs"
+    },
+    {
+      "name": "camel.component.debezium-postgres.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-postgres.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.publication-autocreate-mode",
+      "type": "java.lang.String",
+      "description": "Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all. The expectation is that the user has created the publication up-front. If the publication isn't found to exist upon startup, the connector will throw an exception and stop.ALL_TABLES - If no publication exists, the connector will create a new publication for all tables. Note this requires that the configured user has access. If the publication already exists, it will be used. i.e CREATE PUBLICATION FOR ALL TABLES;FILTERED - If no publication exists, the connector will create a new publication for all those tables matchingthe current filter configuration (see table\/database include\/exclude list properties). If the publication already exists, it will be used. i.e CREATE PUBLICATION FOR TABLE",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "all_tables"
+    },
+    {
+      "name": "camel.component.debezium-postgres.publication-name",
+      "type": "java.lang.String",
+      "description": "The name of the Postgres 10 publication used for streaming changes from a plugin.Defaults to 'dbz_publication'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "dbz_publication"
+    },
+    {
+      "name": "camel.component.debezium-postgres.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-blacklist",
+      "type": "java.lang.String",
+      "description": "The schemas for which events must not be captured (deprecated, use schema.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-exclude-list",
+      "type": "java.lang.String",
+      "description": "The schemas for which events must not be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-include-list",
+      "type": "java.lang.String",
+      "description": "The schemas for which events should be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-refresh-mode",
+      "type": "java.lang.String",
+      "description": "Specify the conditions that trigger a refresh of the in-memory schema for a table. 'columns_diff' (the default) is the safest mode, ensuring the in-memory schema stays in-sync with the database table's schema at all times. 'columns_diff_exclude_unchanged_toast' instructs the connector to refresh the in-memory schema cache if there is a discrepancy between it and the schema derived from the incoming message, unless unchanged TOASTable data fully accounts for the discrepancy. This setting can improve connector performance significantly if there are frequently-updated tables that have TOASTed data that are rarely part of these updates. However, it is possible for the in-memory schema to become outdated if TOASTable columns are dropped from the table.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "columns_diff"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-whitelist",
+      "type": "java.lang.String",
+      "description": "The schemas for which events should be captured (deprecated, use schema.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-drop-on-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-max-retries",
+      "type": "java.lang.Integer",
+      "description": "How many times to retry connecting to a replication slot when an attempt fails.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 6
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-name",
+      "type": "java.lang.String",
+      "description": "The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "debezium"
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-retry-delay-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait between retry attempts when the connector fails to connect to a replication slot, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-stream-params",
+      "type": "java.lang.String",
+      "description": "Any optional parameters used by logical decoding plugin. Semi-colon separated. E.g. 'add-tables=public.table,public.table2;include-lsn=true'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-custom-class",
+      "type": "java.lang.String",
+      "description": "When 'snapshot.mode' is set as custom, this setting must be set to specify a fully qualified class name to load (via the default class loader).This class must implement the 'Snapshotter' interface and is called on each app boot to determine whether to do a snapshot and how to build queries.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-lock-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'always' to specify that the connector run a snapshot each time it starts up; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally start emitting changes;'never' to specify the connector should never run a snapshot and that upon first startup the connector should read from the last position (LSN) recorded by the server; and'exported' deprecated, use 'initial' instead; 'custom' to specify a custom class with 'snapshot.custom_class' which will be loaded and used to determine the snapshot, see docs for more details.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-select-statement-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-postgres.status-update-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Frequency for sending replication connection status updates to the server, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-blacklist",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-ignore-builtin",
+      "type": "java.lang.Boolean",
+      "description": "Flag specifying whether built-in tables should be ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-include-list",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-whitelist",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured (deprecated, use table.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.time-precision-mode",
+      "type": "java.lang.String",
+      "description": "Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision .",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "adaptive"
+    },
+    {
+      "name": "camel.component.debezium-postgres.toasted-value-placeholder",
+      "type": "java.lang.String",
+      "description": "Specify the constant that will be provided by Debezium to indicate that the original value is a toasted value not provided by the database. If starts with 'hex:' prefix it is expected that the rest of the string repesents hexadecimally encoded octets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "__debezium_unavailable_value"
+    },
+    {
+      "name": "camel.component.debezium-postgres.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.truncate-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how TRUNCATE operations are handled for change events (supported only on pg11 pgoutput plugin), including: 'skip' to skip \/ ignore TRUNCATE events (default), 'include' to handle and include TRUNCATE events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "skip"
+    },
+    {
+      "name": "camel.component.debezium-postgres.xmin-fetch-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Specify how often (in ms) the xmin will be fetched from the replication slot. This xmin value is exposed by the slot which gives a lower bound of where a new replication slot could start from. The lower the value, the more likely this value is to be the current 'true' value, but the bigger the performance cost. The bigger the value, the less likely this value is to be the current 'true' value, but the lower the performance penalty. The default is set to 0 ms, which disables tracking xmin. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver.json b/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver.json
new file mode 100644
index 0000000..ad4ed76
--- /dev/null
+++ b/components-starter/camel-debezium-sqlserver-starter/src/main/docs/debezium-sqlserver.json
@@ -0,0 +1,507 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-sqlserver",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-sqlserver.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.binary-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "bytes"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-blacklist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-exclude-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-include-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-whitelist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events (deprecated, use column.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-dbname",
+      "type": "java.lang.String",
+      "description": "The name of the database from which the connector should capture changes",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history",
+      "type": "java.lang.String",
+      "description": "The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "io.debezium.relational.history.FileDatabaseHistory"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-bootstrap-servers",
+      "type": "java.lang.String",
+      "description": "A list of host\/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-recovery-attempts",
+      "type": "java.lang.Integer",
+      "description": "The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-recovery-poll-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-topic",
+      "type": "java.lang.String",
+      "description": "The name of the topic for the database schema history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-skip-unparseable-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls the action Debezium will take when it meets a DDL statement in binlog, that it cannot parse.By default the connector will stop operating but by changing the setting it can ignore the statements which it cannot parse. If skipping is enabled then Debezium can miss metadata changes.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-store-only-captured-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a captured table will be stored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-store-only-monitored-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a monitored table will be stored (deprecated, use database.history.store.only.captured.tables.ddl instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-hostname",
+      "type": "java.lang.String",
+      "description": "Resolvable hostname or IP address of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-instance",
+      "type": "java.lang.String",
+      "description": "The SQL Server instance name",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-names",
+      "type": "java.lang.String",
+      "description": "The names of the databases from which the connector should capture changes",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-password",
+      "type": "java.lang.String",
+      "description": "Password of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-port",
+      "type": "java.lang.Integer",
+      "description": "Port of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 1433
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-server-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-user",
+      "type": "java.lang.String",
+      "description": "Name of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.datatype-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.decimal-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "precise"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-sqlserver component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.include-schema-changes",
+      "type": "java.lang.Boolean",
+      "description": "Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-iteration-transactions",
+      "type": "java.lang.Integer",
+      "description": "This property can be used to reduce the connector memory usage footprint when changes are streamed from multiple tables per database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.message-key-columns",
+      "type": "java.lang.String",
+      "description": "A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-isolation-mode",
+      "type": "java.lang.String",
+      "description": "Controls which transaction isolation level is used and how long the connector locks the monitored tables. The default is 'repeatable_read', which means that repeatable read isolation level is used. In addition, exclusive locks are taken only during schema snapshot. Using a value of 'exclusive' ensures that the connector holds the exclusive lock (and thus prevents any reads and updates) for all monitored tables during the entire snapshot duration. When 'snapshot' is specified, connector runs the initial snapshot in SNAPSHOT isolation level, which guarantees snapshot consistency. In addition, neither table nor row-level locks are held. When 'read_committed' is specified, connector runs the initial snapshot in READ COMMITTED isolation level. No long-running locks are taken, so that initial snapshot does not prevent other transactions from updating table rows. Snapshot consistency is not guaranteed.In 'read_uncommitted' mode neither table nor row-level locks are acquired, but connector does not guarantee snapshot consistency.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "repeatable_read"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-lock-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should run a snapshot only when no offsets are available for the logical server name; 'schema_only' to specify the connector should run a snapshot of the schema when no offsets are available for the logical server name.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-select-statement-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.source-timestamp-mode",
+      "type": "java.lang.String",
+      "description": "Configures the criteria of the attached timestamp within the source record (ts_ms).Options include:'commit', (default) the source timestamp is set to the instant where the record was committed in the database'processing', (deprecated) the source timestamp is set to the instant where the record was processed by Debezium.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "commit"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-blacklist",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-ignore-builtin",
+      "type": "java.lang.Boolean",
+      "description": "Flag specifying whether built-in tables should be ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-include-list",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-whitelist",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured (deprecated, use table.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.time-precision-mode",
+      "type": "java.lang.String",
+      "description": "Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision .",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "adaptive"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-digitalocean-starter/src/main/docs/digitalocean.json b/components-starter/camel-digitalocean-starter/src/main/docs/digitalocean.json
new file mode 100644
index 0000000..b829a26
--- /dev/null
+++ b/components-starter/camel-digitalocean-starter/src/main/docs/digitalocean.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.digitalocean",
+      "type": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.digitalocean.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.digitalocean.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.digitalocean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.digitalocean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the digitalocean component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.digitalocean.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-direct-starter/src/main/docs/direct.json b/components-starter/camel-direct-starter/src/main/docs/direct.json
new file mode 100644
index 0000000..d648ea0
--- /dev/null
+++ b/components-starter/camel-direct-starter/src/main/docs/direct.json
@@ -0,0 +1,64 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.direct",
+      "type": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.direct.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct.block",
+      "type": "java.lang.Boolean",
+      "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.direct.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the direct component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct.timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout value to use if block is enabled.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": 30000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-directvm-starter/src/main/docs/directvm.json b/components-starter/camel-directvm-starter/src/main/docs/directvm.json
new file mode 100644
index 0000000..1e4b408
--- /dev/null
+++ b/components-starter/camel-directvm-starter/src/main/docs/directvm.json
@@ -0,0 +1,77 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.direct-vm",
+      "type": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct-vm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.direct-vm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct-vm.block",
+      "type": "java.lang.Boolean",
+      "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct-vm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct-vm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.direct-vm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the direct-vm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct-vm.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct-vm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct-vm.propagate-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to propagate or not properties from the producer side to the consumer side, and vice versa. Default value: true.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct-vm.timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout value to use if block is enabled.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": 30000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-disruptor-starter/src/main/docs/disruptor.json b/components-starter/camel-disruptor-starter/src/main/docs/disruptor.json
new file mode 100644
index 0000000..f3fbb61
--- /dev/null
+++ b/components-starter/camel-disruptor-starter/src/main/docs/disruptor.json
@@ -0,0 +1,173 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.disruptor",
+      "type": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm",
+      "type": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.disruptor.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.disruptor-vm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor-vm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor-vm.buffer-size",
+      "type": "java.lang.Integer",
+      "description": "To configure the ring buffer size",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.disruptor-vm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for block when full The default value is true.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "To configure the default number of concurrent consumers",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-multiple-consumers",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for multiple consumers",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-producer-type",
+      "type": "org.apache.camel.component.disruptor.DisruptorProducerType",
+      "description": "To configure the default value for DisruptorProducerType The default value is Multi.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-wait-strategy",
+      "type": "org.apache.camel.component.disruptor.DisruptorWaitStrategy",
+      "description": "To configure the default value for DisruptorWaitStrategy The default value is Blocking.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the disruptor-vm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor.buffer-size",
+      "type": "java.lang.Integer",
+      "description": "To configure the ring buffer size",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.disruptor.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.disruptor.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for block when full The default value is true.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor.default-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "To configure the default number of concurrent consumers",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.disruptor.default-multiple-consumers",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for multiple consumers",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor.default-producer-type",
+      "type": "org.apache.camel.component.disruptor.DisruptorProducerType",
+      "description": "To configure the default value for DisruptorProducerType The default value is Multi.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor.default-wait-strategy",
+      "type": "org.apache.camel.component.disruptor.DisruptorWaitStrategy",
+      "description": "To configure the default value for DisruptorWaitStrategy The default value is Blocking.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the disruptor component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-djl-starter/src/main/docs/djl.json b/components-starter/camel-djl-starter/src/main/docs/djl.json
new file mode 100644
index 0000000..594392e
--- /dev/null
+++ b/components-starter/camel-djl-starter/src/main/docs/djl.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.djl",
+      "type": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.djl.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.djl.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.djl.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.djl.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the djl component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.djl.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-dns-starter/src/main/docs/dns.json b/components-starter/camel-dns-starter/src/main/docs/dns.json
new file mode 100644
index 0000000..7138f40
--- /dev/null
+++ b/components-starter/camel-dns-starter/src/main/docs/dns.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dns",
+      "type": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dns.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dns.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dns.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dns.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dns component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dns.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-docker-starter/src/main/docs/docker.json b/components-starter/camel-docker-starter/src/main/docs/docker.json
new file mode 100644
index 0000000..ed76042
--- /dev/null
+++ b/components-starter/camel-docker-starter/src/main/docs/docker.json
@@ -0,0 +1,169 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.docker",
+      "type": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.docker.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.docker.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.cert-path",
+      "type": "java.lang.String",
+      "description": "Location containing the SSL certificate chain",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.cmd-exec-factory",
+      "type": "java.lang.String",
+      "description": "The fully qualified class name of the DockerCmdExecFactory implementation to use",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": "com.github.dockerjava.netty.NettyDockerCmdExecFactory"
+    },
+    {
+      "name": "camel.component.docker.configuration",
+      "type": "org.apache.camel.component.docker.DockerConfiguration",
+      "description": "To use the shared docker configuration. The option is a org.apache.camel.component.docker.DockerConfiguration type.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.docker.email",
+      "type": "java.lang.String",
+      "description": "Email address associated with the user",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the docker component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.follow-redirect-filter",
+      "type": "java.lang.Boolean",
+      "description": "Whether to follow redirect filter",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.host",
+      "type": "java.lang.String",
+      "description": "Docker host",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": "localhost"
+    },
+    {
+      "name": "camel.component.docker.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.logging-filter",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use logging filter",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.max-per-route-connections",
+      "type": "java.lang.Integer",
+      "description": "Maximum route connections",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.docker.max-total-connections",
+      "type": "java.lang.Integer",
+      "description": "Maximum total connections",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.docker.parameters",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional configuration parameters as key\/value pairs",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.password",
+      "type": "java.lang.String",
+      "description": "Password to authenticate with",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.port",
+      "type": "java.lang.Integer",
+      "description": "Docker port",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": 2375
+    },
+    {
+      "name": "camel.component.docker.request-timeout",
+      "type": "java.lang.Integer",
+      "description": "Request timeout for response (in seconds)",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.secure",
+      "type": "java.lang.Boolean",
+      "description": "Use HTTPS communication",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.server-address",
+      "type": "java.lang.String",
+      "description": "Server address for docker registry.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": "https:\/\/index.docker.io\/v1\/"
+    },
+    {
+      "name": "camel.component.docker.socket",
+      "type": "java.lang.Boolean",
+      "description": "Socket connection mode",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.docker.tls-verify",
+      "type": "java.lang.Boolean",
+      "description": "Check TLS",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.username",
+      "type": "java.lang.String",
+      "description": "User name to authenticate with",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-dozer-starter/src/main/docs/dozer.json b/components-starter/camel-dozer-starter/src/main/docs/dozer.json
new file mode 100644
index 0000000..49e0be2
--- /dev/null
+++ b/components-starter/camel-dozer-starter/src/main/docs/dozer.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dozer",
+      "type": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dozer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dozer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dozer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dozer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dozer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dozer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-drill-starter/src/main/docs/drill.json b/components-starter/camel-drill-starter/src/main/docs/drill.json
new file mode 100644
index 0000000..6cd291f
--- /dev/null
+++ b/components-starter/camel-drill-starter/src/main/docs/drill.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.drill",
+      "type": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration"
+    },
+    {
+      "name": "camel.component.drill.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.drill.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.drill.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.drill.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the drill component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration"
+    },
+    {
+      "name": "camel.component.drill.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-dropbox-starter/src/main/docs/dropbox.json b/components-starter/camel-dropbox-starter/src/main/docs/dropbox.json
new file mode 100644
index 0000000..97b5371
--- /dev/null
+++ b/components-starter/camel-dropbox-starter/src/main/docs/dropbox.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dropbox",
+      "type": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dropbox.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dropbox.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dropbox.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dropbox.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dropbox.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dropbox component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dropbox.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ehcache-starter/src/main/docs/ehcache.json b/components-starter/camel-ehcache-starter/src/main/docs/ehcache.json
new file mode 100644
index 0000000..18771f6
--- /dev/null
+++ b/components-starter/camel-ehcache-starter/src/main/docs/ehcache.json
@@ -0,0 +1,166 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ehcache",
+      "type": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-configuration",
+      "type": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-manager",
+      "type": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ehcache.action",
+      "type": "java.lang.String",
+      "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ehcache.cache-manager",
+      "type": "org.ehcache.CacheManager",
+      "description": "The cache manager. The option is a org.ehcache.CacheManager type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.cache-manager-configuration",
+      "type": "org.ehcache.config.Configuration",
+      "description": "The cache manager configuration. The option is a org.ehcache.config.Configuration type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.configuration",
+      "type": "org.ehcache.config.CacheConfiguration",
+      "description": "The default cache configuration to be used to create caches. The option is a org.ehcache.config.CacheConfiguration type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.configuration-uri",
+      "type": "java.lang.String",
+      "description": "URI pointing to the Ehcache XML configuration file's location",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.configurations",
+      "type": "java.util.Map<java.lang.String,org.ehcache.config.CacheConfiguration>",
+      "description": "A map of cache configuration to be used to create caches.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.create-cache-if-not-exist",
+      "type": "java.lang.Boolean",
+      "description": "Configure if a cache need to be created if it does exist or can't be pre-configured.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-configuration.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable or disable the cache-configuration customizer.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-configuration.mode",
+      "type": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration$Mode",
+      "description": "Configure if the cache configurations have be added or they have to replace those already configured on the component.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-manager.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable or disable the cache-manager customizer.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-manager.override",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the cache manager eventually set on the component should be overridden by the customizer.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ehcache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ehcache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ehcache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.event-firing",
+      "type": "org.ehcache.event.EventFiring",
+      "description": "Set the delivery mode (synchronous, asynchronous)",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.event-ordering",
+      "type": "org.ehcache.event.EventOrdering",
+      "description": "Set the delivery mode (ordered, unordered)",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.event-types",
+      "type": "java.lang.String",
+      "description": "Set the type of events to listen for (EVICTED,EXPIRED,REMOVED,CREATED,UPDATED). You can specify multiple entries separated by comma.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.key",
+      "type": "java.lang.Object",
+      "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.key-type",
+      "type": "java.lang.String",
+      "description": "The cache key type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ehcache.value-type",
+      "type": "java.lang.String",
+      "description": "The cache value type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest.json b/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest.json
new file mode 100644
index 0000000..59e159d
--- /dev/null
+++ b/components-starter/camel-elasticsearch-rest-starter/src/main/docs/elasticsearch-rest.json
@@ -0,0 +1,116 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.elasticsearch-rest",
+      "type": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.elasticsearch-rest.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.client",
+      "type": "org.elasticsearch.client.RestClient",
+      "description": "To use an existing configured Elasticsearch client, instead of creating a client per endpoint. This allow to customize the client with specific settings. The option is a org.elasticsearch.client.RestClient type.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "The time in ms to wait before connection will timeout.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.enable-s-s-l",
+      "type": "java.lang.Boolean",
+      "description": "Enable SSL",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.enable-sniffer",
+      "type": "java.lang.Boolean",
+      "description": "Enable automatically discover nodes from a running Elasticsearch cluster",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the elasticsearch-rest component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.host-addresses",
+      "type": "java.lang.String",
+      "description": "Comma separated list with ip:port formatted remote transport addresses to use. The ip and port options must be left blank for hostAddresses to be considered instead.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.max-retry-timeout",
+      "type": "java.lang.Integer",
+      "description": "The time in ms before retry",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.password",
+      "type": "java.lang.String",
+      "description": "Password for authenticate",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.sniff-after-failure-delay",
+      "type": "java.lang.Integer",
+      "description": "The delay of a sniff execution scheduled after a failure (in milliseconds)",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.sniffer-interval",
+      "type": "java.lang.Integer",
+      "description": "The interval between consecutive ordinary sniff executions in milliseconds. Will be honoured when sniffOnFailure is disabled or when there are no failures between consecutive sniff executions",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout in ms to wait before the socket will timeout.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.user",
+      "type": "java.lang.String",
+      "description": "Basic authenticate user",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-elsql-starter/src/main/docs/elsql.json b/components-starter/camel-elsql-starter/src/main/docs/elsql.json
new file mode 100644
index 0000000..a84955a
--- /dev/null
+++ b/components-starter/camel-elsql-starter/src/main/docs/elsql.json
@@ -0,0 +1,68 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.elsql",
+      "type": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.elsql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.elsql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elsql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.elsql.database-vendor",
+      "type": "org.apache.camel.component.elsql.ElSqlDatabaseVendor",
+      "description": "To use a vendor specific com.opengamma.elsql.ElSqlConfig",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.el-sql-config",
+      "type": "com.opengamma.elsql.ElSqlConfig",
+      "description": "To use a specific configured ElSqlConfig. It may be better to use the databaseVendor option instead. The option is a com.opengamma.elsql.ElSqlConfig type.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the elsql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elsql.resource-uri",
+      "type": "java.lang.String",
+      "description": "The resource file which contains the elsql SQL statements to use. You can specify multiple resources separated by comma. The resources are loaded on the classpath by default, you can prefix with file: to load from file system. Notice you can set this option on the component and then you do not have to configure this on the endpoint.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-etcd-starter/src/main/docs/etcd.json b/components-starter/camel-etcd-starter/src/main/docs/etcd.json
new file mode 100644
index 0000000..b40d390
--- /dev/null
+++ b/components-starter/camel-etcd-starter/src/main/docs/etcd.json
@@ -0,0 +1,336 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.etcd-keys",
+      "type": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.etcd-stats",
+      "type": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.etcd-watch",
+      "type": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.etcd-keys.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.etcd-keys.configuration",
+      "type": "org.apache.camel.component.etcd.EtcdConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.etcd.EtcdConfiguration type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.etcd-keys.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the etcd-keys component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-keys.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.recursive",
+      "type": "java.lang.Boolean",
+      "description": "To apply an action recursively.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-keys.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.component.etcd-keys.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.time-to-live",
+      "type": "java.lang.Integer",
+      "description": "To set the lifespan of a key in milliseconds.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.uris",
+      "type": "java.lang.String",
+      "description": "To set the URIs the client connects.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001"
+    },
+    {
+      "name": "camel.component.etcd-keys.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-keys.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.etcd-stats.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.configuration",
+      "type": "org.apache.camel.component.etcd.EtcdConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.etcd.EtcdConfiguration type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.etcd-stats.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the etcd-stats component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.from-index",
+      "type": "java.lang.Long",
+      "description": "The index to watch from",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.etcd-stats.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.recursive",
+      "type": "java.lang.Boolean",
+      "description": "To apply an action recursively.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.send-empty-exchange-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "To send an empty message in case of timeout watching for a key.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.component.etcd-stats.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.time-to-live",
+      "type": "java.lang.Integer",
+      "description": "To set the lifespan of a key in milliseconds.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.uris",
+      "type": "java.lang.String",
+      "description": "To set the URIs the client connects.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001"
+    },
+    {
+      "name": "camel.component.etcd-stats.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.etcd-watch.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.configuration",
+      "type": "org.apache.camel.component.etcd.EtcdConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.etcd.EtcdConfiguration type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.etcd-watch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the etcd-watch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.from-index",
+      "type": "java.lang.Long",
+      "description": "The index to watch from",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.etcd-watch.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.recursive",
+      "type": "java.lang.Boolean",
+      "description": "To apply an action recursively.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.send-empty-exchange-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "To send an empty message in case of timeout watching for a key.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.component.etcd-watch.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.uris",
+      "type": "java.lang.String",
+      "description": "To set the URIs the client connects.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001"
+    },
+    {
+      "name": "camel.component.etcd-watch.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-etcd3-starter/src/main/docs/etcd3.json b/components-starter/camel-etcd3-starter/src/main/docs/etcd3.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-etcd3-starter/src/main/docs/etcd3.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-exec-starter/src/main/docs/exec.json b/components-starter/camel-exec-starter/src/main/docs/exec.json
new file mode 100644
index 0000000..c74319d
--- /dev/null
+++ b/components-starter/camel-exec-starter/src/main/docs/exec.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.exec",
+      "type": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration"
+    },
+    {
+      "name": "camel.component.exec.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.exec.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.exec.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.exec.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the exec component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration"
+    },
+    {
+      "name": "camel.component.exec.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-facebook-starter/src/main/docs/facebook.json b/components-starter/camel-facebook-starter/src/main/docs/facebook.json
new file mode 100644
index 0000000..c90d350
--- /dev/null
+++ b/components-starter/camel-facebook-starter/src/main/docs/facebook.json
@@ -0,0 +1,235 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.facebook",
+      "type": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.facebook.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.facebook.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.client-u-r-l",
+      "type": "java.lang.String",
+      "description": "Facebook4J API client URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.client-version",
+      "type": "java.lang.String",
+      "description": "Facebook4J client API version",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.configuration",
+      "type": "org.apache.camel.component.facebook.config.FacebookConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.facebook.config.FacebookConfiguration type.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.facebook.debug-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables deubg output. Effective only with the embedded logger",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the facebook component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.gzip-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Use Facebook GZIP encoding",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.facebook.http-connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Http connection timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.facebook.http-default-max-per-route",
+      "type": "java.lang.Integer",
+      "description": "HTTP maximum connections per route",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.facebook.http-max-total-connections",
+      "type": "java.lang.Integer",
+      "description": "HTTP maximum total connections",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "HTTP proxy server host name",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "HTTP proxy server password",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "HTTP proxy server port",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "HTTP proxy server user name",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-read-timeout",
+      "type": "java.lang.Integer",
+      "description": "Http read timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.facebook.http-retry-count",
+      "type": "java.lang.Integer",
+      "description": "Number of HTTP retries",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.facebook.http-retry-interval-seconds",
+      "type": "java.lang.Integer",
+      "description": "HTTP retry interval in seconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.facebook.http-streaming-read-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP streaming read timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 40000
+    },
+    {
+      "name": "camel.component.facebook.json-store-enabled",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, raw JSON forms will be stored in DataObjectFactory",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.mbean-enabled",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, Facebook4J mbean will be registerd",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.o-auth-access-token",
+      "type": "java.lang.String",
+      "description": "The user access token",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-access-token-u-r-l",
+      "type": "java.lang.String",
+      "description": "OAuth access token URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/graph.facebook.com\/oauth\/access_token"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-app-id",
+      "type": "java.lang.String",
+      "description": "The application Id",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-app-secret",
+      "type": "java.lang.String",
+      "description": "The application Secret",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-authorization-u-r-l",
+      "type": "java.lang.String",
+      "description": "OAuth authorization URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/www.facebook.com\/dialog\/oauth"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-permissions",
+      "type": "java.lang.String",
+      "description": "Default OAuth permissions. Comma separated permission names. See https:\/\/developers.facebook.com\/docs\/reference\/login\/#permissions for the detail",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.pretty-debug-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Prettify JSON debug output if set to true",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.rest-base-u-r-l",
+      "type": "java.lang.String",
+      "description": "API base URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/graph.facebook.com\/"
+    },
+    {
+      "name": "camel.component.facebook.use-s-s-l",
+      "type": "java.lang.Boolean",
+      "description": "Use SSL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.facebook.video-base-u-r-l",
+      "type": "java.lang.String",
+      "description": "Video API base URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/graph-video.facebook.com\/"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-fastjson-starter/src/main/docs/fastjson.json b/components-starter/camel-fastjson-starter/src/main/docs/fastjson.json
new file mode 100644
index 0000000..c264001
--- /dev/null
+++ b/components-starter/camel-fastjson-starter/src/main/docs/fastjson.json
@@ -0,0 +1,42 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-fastjson",
+      "type": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-fastjson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-fastjson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-fhir-starter/src/main/docs/fhir.json b/components-starter/camel-fhir-starter/src/main/docs/fhir.json
new file mode 100644
index 0000000..6572aff
--- /dev/null
+++ b/components-starter/camel-fhir-starter/src/main/docs/fhir.json
@@ -0,0 +1,421 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.fhir",
+      "type": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.fhirjson",
+      "type": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.fhirxml",
+      "type": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.fhir.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth access token",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.fhir.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.client",
+      "type": "ca.uhn.fhir.rest.client.api.IGenericClient",
+      "description": "To use the custom client. The option is a ca.uhn.fhir.rest.client.api.IGenericClient type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.client-factory",
+      "type": "ca.uhn.fhir.rest.client.api.IRestfulClientFactory",
+      "description": "To use the custom client factory. The option is a ca.uhn.fhir.rest.client.api.IRestfulClientFactory type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.compress",
+      "type": "java.lang.Boolean",
+      "description": "Compresses outgoing (POST\/PUT) contents to the GZIP format",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.configuration",
+      "type": "org.apache.camel.component.fhir.FhirConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.fhir.FhirConfiguration type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "How long to try and establish the initial TCP connection (in ms)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.fhir.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.fhir.defer-model-scanning",
+      "type": "java.lang.Boolean",
+      "description": "When this option is set, model classes will not be scanned for children until the child list for the given type is actually accessed.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fhir component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.encoding",
+      "type": "java.lang.String",
+      "description": "Encoding to use for all request",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.fhir-context",
+      "type": "ca.uhn.fhir.context.FhirContext",
+      "description": "FhirContext is an expensive object to create. To avoid creating multiple instances, it can be set directly. The option is a ca.uhn.fhir.context.FhirContext type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.fhir-version",
+      "type": "java.lang.String",
+      "description": "The FHIR Version to use",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": "R4"
+    },
+    {
+      "name": "camel.component.fhir.force-conformance-check",
+      "type": "java.lang.Boolean",
+      "description": "Force conformance check",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.log",
+      "type": "java.lang.Boolean",
+      "description": "Will log every requests and responses",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.password",
+      "type": "java.lang.String",
+      "description": "Username to use for basic authentication",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "Pretty print all request",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.proxy-host",
+      "type": "java.lang.String",
+      "description": "The proxy host",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.proxy-password",
+      "type": "java.lang.String",
+      "description": "The proxy password",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The proxy port",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.proxy-user",
+      "type": "java.lang.String",
+      "description": "The proxy username",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.server-url",
+      "type": "java.lang.String",
+      "description": "The FHIR server base URL",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.session-cookie",
+      "type": "java.lang.String",
+      "description": "HTTP session cookie to add to every request",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "How long to block for individual read\/write operations (in ms)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.fhir.summary",
+      "type": "java.lang.String",
+      "description": "Request that the server modify the response using the _summary param",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.username",
+      "type": "java.lang.String",
+      "description": "Username to use for basic authentication",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.validation-mode",
+      "type": "java.lang.String",
+      "description": "When should Camel validate the FHIR Server's conformance statement",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": "ONCE"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.fhirjson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.dont-encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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.meta will work for DSTU2 parsers, but values with subelements on meta such as Patient.meta.lastUpdated will only work in DSTU3 mode.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.dont-strip-versions-from-references-at-paths",
+      "type": "java.util.List<java.lang.String>",
+      "description": "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(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been set to true (which is the default)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fhirJson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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 mandatory fields (min 0) to be encoded",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.encode-elements-applies-to-child-resources-only",
+      "type": "java.lang.Boolean",
+      "description": "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)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.fhir-version",
+      "type": "java.lang.String",
+      "description": "The version of FHIR to use. Possible values are: DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": "DSTU3"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.omit-resource-id",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.override-resource-id-with-bundle-entry-full-url",
+      "type": "java.lang.Boolean",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "Sets the pretty print flag, meaning that the parser will encode resources with human-readable spacing and newlines between elements instead of condensing output as much as possible.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.server-base-url",
+      "type": "java.lang.String",
+      "description": "Sets the server's base URL used by this parser. If a value is set, resource references will be turned into relative references if they are provided as absolute URLs but have a base matching the given base.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.strip-versions-from-references",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (which is the default), resource references containing a version will have the version removed when the resource is encoded. This is generally good behaviour because in most situations, references from one resource to another should be to the resource by ID, not by ID and version. In some cases though, it may be desirable to preserve the version in resource links. In that case, this value should be set to false. This method provides the ability to globally disable reference encoding. If finer-grained control is needed, use setDontStripVersionsFromReferencesAtPaths(List)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.summary-mode",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.suppress-narratives",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false), narratives will not be included in the encoded values.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.fhirxml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.dont-encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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.meta will work for DSTU2 parsers, but values with subelements on meta such as Patient.meta.lastUpdated will only work in DSTU3 mode.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.dont-strip-versions-from-references-at-paths",
+      "type": "java.util.List<java.lang.String>",
+      "description": "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(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been set to true (which is the default)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fhirXml data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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 mandatory fields (min 0) to be encoded",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.encode-elements-applies-to-child-resources-only",
+      "type": "java.lang.Boolean",
+      "description": "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)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.fhir-version",
+      "type": "java.lang.String",
+      "description": "The version of FHIR to use. Possible values are: DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": "DSTU3"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.omit-resource-id",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.override-resource-id-with-bundle-entry-full-url",
+      "type": "java.lang.Boolean",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "Sets the pretty print flag, meaning that the parser will encode resources with human-readable spacing and newlines between elements instead of condensing output as much as possible.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.server-base-url",
+      "type": "java.lang.String",
+      "description": "Sets the server's base URL used by this parser. If a value is set, resource references will be turned into relative references if they are provided as absolute URLs but have a base matching the given base.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.strip-versions-from-references",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (which is the default), resource references containing a version will have the version removed when the resource is encoded. This is generally good behaviour because in most situations, references from one resource to another should be to the resource by ID, not by ID and version. In some cases though, it may be desirable to preserve the version in resource links. In that case, this value should be set to false. This method provides the ability to globally disable reference encoding. If finer-grained control is needed, use setDontStripVersionsFromReferencesAtPaths(List)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.summary-mode",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.suppress-narratives",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false), narratives will not be included in the encoded values.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-file-starter/src/main/docs/file.json b/components-starter/camel-file-starter/src/main/docs/file.json
new file mode 100644
index 0000000..eb5f7e8
--- /dev/null
+++ b/components-starter/camel-file-starter/src/main/docs/file.json
@@ -0,0 +1,98 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.file",
+      "type": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.file",
+      "type": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.file.acquire-lock-delay",
+      "type": "java.lang.String",
+      "description": "The time to wait before starting to try to acquire lock.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.acquire-lock-interval",
+      "type": "java.lang.String",
+      "description": "The time to wait between attempts to try to acquire lock.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the file cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.file.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.root",
+      "type": "java.lang.String",
+      "description": "The root path.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.file.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.file.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.file.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.file.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the file component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-file-watch-starter/src/main/docs/file-watch.json b/components-starter/camel-file-watch-starter/src/main/docs/file-watch.json
new file mode 100644
index 0000000..420d609
--- /dev/null
+++ b/components-starter/camel-file-watch-starter/src/main/docs/file-watch.json
@@ -0,0 +1,77 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.file-watch",
+      "type": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file-watch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.file-watch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.file-watch.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.file-watch.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "The number of concurrent consumers. Increase this value, if your route is slow to prevent buffering in queue.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.file-watch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.file-watch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the file-watch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file-watch.file-hasher",
+      "type": "io.methvin.watcher.hashing.FileHasher",
+      "description": "Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple modifications per second per file, use #lastModifiedTimeFileHasher. You can also provide custom implementation in registry. The option is a io.methvin.watcher.hashing.FileHasher type.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file-watch.poll-threads",
+      "type": "java.lang.Integer",
+      "description": "The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.file-watch.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of queue between WatchService and consumer. Unbounded by default.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": 2147483647
+    },
+    {
+      "name": "camel.component.file-watch.use-file-hashing",
+      "type": "java.lang.Boolean",
+      "description": "Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target platform.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-flatpack-starter/src/main/docs/flatpack.json b/components-starter/camel-flatpack-starter/src/main/docs/flatpack.json
new file mode 100644
index 0000000..d5cd140
--- /dev/null
+++ b/components-starter/camel-flatpack-starter/src/main/docs/flatpack.json
@@ -0,0 +1,125 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.flatpack",
+      "type": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flatpack.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.flatpack",
+      "type": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.flatpack.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.flatpack.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.flatpack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.flatpack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the flatpack component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flatpack.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.allow-short-lines",
+      "type": "java.lang.Boolean",
+      "description": "Allows for lines to be shorter than expected and ignores the extra characters",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.flatpack.definition",
+      "type": "java.lang.String",
+      "description": "The flatpack pzmap configuration file. Can be omitted in simpler situations, but its preferred to use the pzmap.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter char (could be ; , or similar)",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": ","
+    },
+    {
+      "name": "camel.dataformat.flatpack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the flatpack data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.fixed",
+      "type": "java.lang.Boolean",
+      "description": "Delimited or fixed. Is by default false = delimited",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.ignore-extra-columns",
+      "type": "java.lang.Boolean",
+      "description": "Allows for lines to be longer than expected and ignores the extra characters.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.ignore-first-record",
+      "type": "java.lang.Boolean",
+      "description": "Whether the first line is ignored for delimited files (for the column headers). Is by default true.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.flatpack.parser-factory-ref",
+      "type": "java.lang.String",
+      "description": "References to a custom parser factory to lookup in the registry",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.text-qualifier",
+      "type": "java.lang.String",
+      "description": "If the text is qualified with a character. Uses quote character by default.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-flink-starter/src/main/docs/flink.json b/components-starter/camel-flink-starter/src/main/docs/flink.json
new file mode 100644
index 0000000..305d4ab
--- /dev/null
+++ b/components-starter/camel-flink-starter/src/main/docs/flink.json
@@ -0,0 +1,61 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.flink",
+      "type": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.flink.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.flink.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.flink.data-set-callback",
+      "type": "org.apache.camel.component.flink.DataSetCallback",
+      "description": "Function performing action against a DataSet. The option is a org.apache.camel.component.flink.DataSetCallback type.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.data-stream",
+      "type": "org.apache.flink.streaming.api.datastream.DataStream",
+      "description": "DataStream to compute against. The option is a org.apache.flink.streaming.api.datastream.DataStream type.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.data-stream-callback",
+      "type": "org.apache.camel.component.flink.DataStreamCallback",
+      "description": "Function performing action against a DataStream. The option is a org.apache.camel.component.flink.DataStreamCallback type.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the flink component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-fop-starter/src/main/docs/fop.json b/components-starter/camel-fop-starter/src/main/docs/fop.json
new file mode 100644
index 0000000..7e02286
--- /dev/null
+++ b/components-starter/camel-fop-starter/src/main/docs/fop.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.fop",
+      "type": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fop.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.fop.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.fop.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.fop.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fop component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fop.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-freemarker-starter/src/main/docs/freemarker.json b/components-starter/camel-freemarker-starter/src/main/docs/freemarker.json
new file mode 100644
index 0000000..641ff51
--- /dev/null
+++ b/components-starter/camel-freemarker-starter/src/main/docs/freemarker.json
@@ -0,0 +1,70 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.freemarker",
+      "type": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.freemarker.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.freemarker.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.freemarker.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.freemarker.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.freemarker.configuration",
+      "type": "freemarker.template.Configuration",
+      "description": "To use an existing freemarker.template.Configuration instance as the configuration. The option is a freemarker.template.Configuration type.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.freemarker.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.freemarker.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the freemarker component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.freemarker.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.freemarker.localized-lookup",
+      "type": "java.lang.Boolean",
+      "description": "Enables\/disables localized template lookup. Disabled by default.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ftp-starter/src/main/docs/ftp.json b/components-starter/camel-ftp-starter/src/main/docs/ftp.json
new file mode 100644
index 0000000..c76d47f
--- /dev/null
+++ b/components-starter/camel-ftp-starter/src/main/docs/ftp.json
@@ -0,0 +1,143 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ftp",
+      "type": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ftps",
+      "type": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftps.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.sftp",
+      "type": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sftp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ftp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ftp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ftp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ftp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftps.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ftps.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftps.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ftps.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ftps component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftps.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftps.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sftp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sftp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sftp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sftp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sftp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sftp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ganglia-starter/src/main/docs/ganglia.json b/components-starter/camel-ganglia-starter/src/main/docs/ganglia.json
new file mode 100644
index 0000000..15d72a8
--- /dev/null
+++ b/components-starter/camel-ganglia-starter/src/main/docs/ganglia.json
@@ -0,0 +1,127 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ganglia",
+      "type": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ganglia.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ganglia.configuration",
+      "type": "org.apache.camel.component.ganglia.GangliaConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.ganglia.GangliaConfiguration type.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ganglia.dmax",
+      "type": "java.lang.Integer",
+      "description": "Minumum time in seconds before Ganglia will purge the metric value if it expires. Set to 0 and the value will remain in Ganglia indefinitely until a gmond agent restart.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.ganglia.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ganglia component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.group-name",
+      "type": "java.lang.String",
+      "description": "The group that the metric belongs to.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": "java"
+    },
+    {
+      "name": "camel.component.ganglia.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ganglia.metric-name",
+      "type": "java.lang.String",
+      "description": "The name to use for the metric.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": "metric"
+    },
+    {
+      "name": "camel.component.ganglia.mode",
+      "type": "info.ganglia.gmetric4j.gmetric.GMetric$UDPAddressingMode",
+      "description": "Send the UDP metric packets using MULTICAST or UNICAST",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.prefix",
+      "type": "java.lang.String",
+      "description": "Prefix the metric name with this string and an underscore.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.slope",
+      "type": "info.ganglia.gmetric4j.gmetric.GMetricSlope",
+      "description": "The slope",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.spoof-hostname",
+      "type": "java.lang.String",
+      "description": "Spoofing information IP:hostname",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.tmax",
+      "type": "java.lang.Integer",
+      "description": "Maximum time in seconds that the value can be considered current. After this, Ganglia considers the value to have expired.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.ganglia.ttl",
+      "type": "java.lang.Integer",
+      "description": "If using multicast, set the TTL of the packets",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.ganglia.type",
+      "type": "info.ganglia.gmetric4j.gmetric.GMetricType",
+      "description": "The type of value",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.units",
+      "type": "java.lang.String",
+      "description": "Any unit of measurement that qualifies the metric, e.g. widgets, litres, bytes. Do not include a prefix such as k (kilo) or m (milli), other tools may scale the units later. The value should be unscaled.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.wire-format31x",
+      "type": "java.lang.Boolean",
+      "description": "Use the wire format of Ganglia 3.1.0 and later versions. Set this to false to use Ganglia 3.0.x or earlier.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-geocoder-starter/src/main/docs/geocoder.json b/components-starter/camel-geocoder-starter/src/main/docs/geocoder.json
new file mode 100644
index 0000000..b594b92
--- /dev/null
+++ b/components-starter/camel-geocoder-starter/src/main/docs/geocoder.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.geocoder",
+      "type": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.geocoder.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.geocoder.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.geocoder.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.geocoder.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the geocoder component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.geocoder.geo-api-context",
+      "type": "com.google.maps.GeoApiContext",
+      "description": "Configuration for Google maps API. The option is a com.google.maps.GeoApiContext type.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.geocoder.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-git-starter/src/main/docs/git.json b/components-starter/camel-git-starter/src/main/docs/git.json
new file mode 100644
index 0000000..4e01f44
--- /dev/null
+++ b/components-starter/camel-git-starter/src/main/docs/git.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.git",
+      "type": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration"
+    },
+    {
+      "name": "camel.component.git.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.git.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.git.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.git.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.git.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the git component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration"
+    },
+    {
+      "name": "camel.component.git.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-github-starter/src/main/docs/github.json b/components-starter/camel-github-starter/src/main/docs/github.json
new file mode 100644
index 0000000..5d7e1b2
--- /dev/null
+++ b/components-starter/camel-github-starter/src/main/docs/github.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.github",
+      "type": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.github.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.github.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.github.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.github.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.github.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the github component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.github.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.github.oauth-token",
+      "type": "java.lang.String",
+      "description": "GitHub OAuth token. Must be configured on either component or endpoint.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-bigquery-starter/src/main/docs/google-bigquery.json b/components-starter/camel-google-bigquery-starter/src/main/docs/google-bigquery.json
new file mode 100644
index 0000000..05cc939
--- /dev/null
+++ b/components-starter/camel-google-bigquery-starter/src/main/docs/google-bigquery.json
@@ -0,0 +1,109 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-bigquery",
+      "type": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql",
+      "type": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-bigquery.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-bigquery-sql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.connection-factory",
+      "type": "org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory",
+      "description": "ConnectionFactory to obtain connection to Bigquery Service. If not provided the default one will be used. The option is a org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-bigquery-sql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.project-id",
+      "type": "java.lang.String",
+      "description": "Google Cloud Project Id",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-bigquery.connection-factory",
+      "type": "org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory",
+      "description": "ConnectionFactory to obtain connection to Bigquery Service. If not provided the default one will be used. The option is a org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-bigquery.dataset-id",
+      "type": "java.lang.String",
+      "description": "BigQuery Dataset Id",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-bigquery component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-bigquery.project-id",
+      "type": "java.lang.String",
+      "description": "Google Cloud Project Id",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-calendar-starter/src/main/docs/google-calendar.json b/components-starter/camel-google-calendar-starter/src/main/docs/google-calendar.json
new file mode 100644
index 0000000..18c9337
--- /dev/null
+++ b/components-starter/camel-google-calendar-starter/src/main/docs/google-calendar.json
@@ -0,0 +1,260 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-calendar",
+      "type": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream",
+      "type": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-calendar.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-calendar-stream.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.application-name",
+      "type": "java.lang.String",
+      "description": "Google Calendar application name. Example would be camel-google-calendar\/1.0",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-calendar-stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar-stream.calendar-id",
+      "type": "java.lang.String",
+      "description": "The calendarId to be used",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": "primary"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.client-factory",
+      "type": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory",
+      "description": "The client Factory. The option is a org.apache.camel.component.google.calendar.GoogleCalendarClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.configuration",
+      "type": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
+      "description": "The configuration. The option is a org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.consider-last-update",
+      "type": "java.lang.Boolean",
+      "description": "Take into account the lastUpdate of the last event polled as start date for the next poll",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar-stream.consume-from-now",
+      "type": "java.lang.Boolean",
+      "description": "Consume events in the selected calendar from now on",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-calendar-stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.email-address",
+      "type": "java.lang.String",
+      "description": "The emailAddress of the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-calendar-stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.max-results",
+      "type": "java.lang.Integer",
+      "description": "Max results to be returned",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.google-calendar-stream.p12-file-name",
+      "type": "java.lang.String",
+      "description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.query",
+      "type": "java.lang.String",
+      "description": "The query to execute on calendar",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.scopes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/developers.google.com\/calendar\/auth for more info.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.sync-flow",
+      "type": "java.lang.Boolean",
+      "description": "Sync events, see https:\/\/developers.google.com\/calendar\/v3\/sync Note: not compatible with: 'query' and 'considerLastUpdate' parameters",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar-stream.user",
+      "type": "java.lang.String",
+      "description": "The email address of the user the application is trying to impersonate in the service account flow.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.application-name",
+      "type": "java.lang.String",
+      "description": "Google calendar application name. Example would be camel-google-calendar\/1.0",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-calendar.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar.client-factory",
+      "type": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory",
+      "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory. The option is a org.apache.camel.component.google.calendar.GoogleCalendarClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.configuration",
+      "type": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.calendar.GoogleCalendarConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-calendar.email-address",
+      "type": "java.lang.String",
+      "description": "The emailAddress of the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-calendar component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar.p12-file-name",
+      "type": "java.lang.String",
+      "description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.scopes",
+      "type": "java.lang.String",
+      "description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": "https:\/\/www.googleapis.com\/auth\/calendar"
+    },
+    {
+      "name": "camel.component.google-calendar.user",
+      "type": "java.lang.String",
+      "description": "The email address of the user the application is trying to impersonate in the service account flow",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-drive-starter/src/main/docs/google-drive.json b/components-starter/camel-google-drive-starter/src/main/docs/google-drive.json
new file mode 100644
index 0000000..f29e8b7
--- /dev/null
+++ b/components-starter/camel-google-drive-starter/src/main/docs/google-drive.json
@@ -0,0 +1,98 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-drive",
+      "type": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-drive.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.application-name",
+      "type": "java.lang.String",
+      "description": "Google drive application name. Example would be camel-google-drive\/1.0",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-drive.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-drive.client-factory",
+      "type": "org.apache.camel.component.google.drive.GoogleDriveClientFactory",
+      "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory. The option is a org.apache.camel.component.google.drive.GoogleDriveClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the drive application",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the drive application",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.configuration",
+      "type": "org.apache.camel.component.google.drive.GoogleDriveConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.drive.GoogleDriveConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-drive.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-drive component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-drive.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.scopes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Specifies the level of permissions you want a drive application to have to a user account. See https:\/\/developers.google.com\/drive\/web\/scopes for more info.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-functions-starter/src/main/docs/google-functions.json b/components-starter/camel-google-functions-starter/src/main/docs/google-functions.json
new file mode 100644
index 0000000..0a3ea48
--- /dev/null
+++ b/components-starter/camel-google-functions-starter/src/main/docs/google-functions.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-functions",
+      "type": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-functions.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-functions.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-functions.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-functions.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-functions component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-functions.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-mail-starter/src/main/docs/google-mail.json b/components-starter/camel-google-mail-starter/src/main/docs/google-mail.json
new file mode 100644
index 0000000..ce1c900
--- /dev/null
+++ b/components-starter/camel-google-mail-starter/src/main/docs/google-mail.json
@@ -0,0 +1,197 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-mail",
+      "type": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream",
+      "type": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-mail.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-mail-stream.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.application-name",
+      "type": "java.lang.String",
+      "description": "Google mail application name. Example would be camel-google-mail\/1.0",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-mail-stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-mail-stream.client-factory",
+      "type": "org.apache.camel.component.google.mail.GoogleMailClientFactory",
+      "description": "The client Factory. The option is a org.apache.camel.component.google.mail.GoogleMailClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.configuration",
+      "type": "org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration",
+      "description": "The configuration. The option is a org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-mail-stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-mail-stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.labels",
+      "type": "java.lang.String",
+      "description": "Comma separated list of labels to take into account",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.mark-as-read",
+      "type": "java.lang.Boolean",
+      "description": "Mark the message as read once it has been consumed",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-mail-stream.max-results",
+      "type": "java.lang.Long",
+      "description": "Max results to be returned",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.google-mail-stream.query",
+      "type": "java.lang.String",
+      "description": "The query to execute on gmail box",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": "is:unread"
+    },
+    {
+      "name": "camel.component.google-mail-stream.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.application-name",
+      "type": "java.lang.String",
+      "description": "Google mail application name. Example would be camel-google-mail\/1.0",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-mail.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-mail.client-factory",
+      "type": "org.apache.camel.component.google.mail.GoogleMailClientFactory",
+      "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleMailClientFactory. The option is a org.apache.camel.component.google.mail.GoogleMailClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.configuration",
+      "type": "org.apache.camel.component.google.mail.GoogleMailConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.mail.GoogleMailConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-mail.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-mail component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-mail.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-pubsub-starter/src/main/docs/google-pubsub.json b/components-starter/camel-google-pubsub-starter/src/main/docs/google-pubsub.json
new file mode 100644
index 0000000..9234aa6
--- /dev/null
+++ b/components-starter/camel-google-pubsub-starter/src/main/docs/google-pubsub.json
@@ -0,0 +1,87 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-pubsub",
+      "type": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-pubsub.authenticate",
+      "type": "java.lang.Boolean",
+      "description": "Use Credentials when interacting with PubSub service (no authentication is required when using emulator).",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-pubsub.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-pubsub.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-pubsub.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-pubsub.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-pubsub component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.endpoint",
+      "type": "java.lang.String",
+      "description": "Endpoint to use with local Pub\/Sub emulator.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-pubsub.publisher-cache-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of producers to cache. This could be increased if you have producers for lots of different topics.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.publisher-cache-timeout",
+      "type": "java.lang.Integer",
+      "description": "How many milliseconds should each producer stay alive in the cache.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.publisher-termination-timeout",
+      "type": "java.lang.Integer",
+      "description": "How many milliseconds should a producer be allowed to terminate.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.service-account-key",
+      "type": "java.lang.String",
+      "description": "The Service account key that can be used as credentials for the PubSub publisher\/subscriber. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-sheets-starter/src/main/docs/google-sheets.json b/components-starter/camel-google-sheets-starter/src/main/docs/google-sheets.json
new file mode 100644
index 0000000..302b34b
--- /dev/null
+++ b/components-starter/camel-google-sheets-starter/src/main/docs/google-sheets.json
@@ -0,0 +1,223 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-sheets",
+      "type": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream",
+      "type": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-sheets.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-sheets-stream.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.application-name",
+      "type": "java.lang.String",
+      "description": "Google sheets application name. Example would be camel-google-sheets\/1.0",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-sheets-stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets-stream.client-factory",
+      "type": "org.apache.camel.component.google.sheets.GoogleSheetsClientFactory",
+      "description": "To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory. The option is a org.apache.camel.component.google.sheets.GoogleSheetsClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.configuration",
+      "type": "org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-sheets-stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.include-grid-data",
+      "type": "java.lang.Boolean",
+      "description": "True if grid data should be returned.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets-stream.major-dimension",
+      "type": "java.lang.String",
+      "description": "Specifies the major dimension that results should use..",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": "ROWS"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.max-results",
+      "type": "java.lang.Integer",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.range",
+      "type": "java.lang.String",
+      "description": "Specifies the range of rows and columns in a sheet to get data from.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.scopes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.split-results",
+      "type": "java.lang.Boolean",
+      "description": "True if value range result should be split into rows or columns to process each of them individually. When true each row or column is represented with a separate exchange in batch processing. Otherwise value range object is used as exchange junk size.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets-stream.value-render-option",
+      "type": "java.lang.String",
+      "description": "Determines how values should be rendered in the output.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": "FORMATTED_VALUE"
+    },
+    {
+      "name": "camel.component.google-sheets.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.application-name",
+      "type": "java.lang.String",
+      "description": "Google Sheets application name. Example would be camel-google-sheets\/1.0",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-sheets.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets.client-factory",
+      "type": "org.apache.camel.component.google.sheets.GoogleSheetsClientFactory",
+      "description": "To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory. The option is a org.apache.camel.component.google.sheets.GoogleSheetsClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.configuration",
+      "type": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.sheets.GoogleSheetsConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-sheets.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-sheets component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets.refresh-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 refresh token. Using this, the Google Sheets component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.split-result",
+      "type": "java.lang.Boolean",
+      "description": "When consumer return an array or collection this will generate one exchange per element, and their routes will be executed once for each exchange. Set this value to false to use a single exchange for the entire list or array.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-google-storage-starter/src/main/docs/google-storage.json b/components-starter/camel-google-storage-starter/src/main/docs/google-storage.json
new file mode 100644
index 0000000..4f3e338
--- /dev/null
+++ b/components-starter/camel-google-storage-starter/src/main/docs/google-storage.json
@@ -0,0 +1,134 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-storage",
+      "type": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-storage.auto-create-bucket",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the bucket bucketName.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-storage.configuration",
+      "type": "org.apache.camel.component.google.storage.GoogleCloudStorageConfiguration",
+      "description": "The component configuration. The option is a org.apache.camel.component.google.storage.GoogleCloudStorageConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-storage.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.destination-bucket",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket where an object must be moved when moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-storage component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.include-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the Object exchange will be consumed and put into the body. If false the Object stream will be put raw into the body and the headers will be set with the object metadata.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.include-folders",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the folders\/directories will be consumed. If it is false, they will be ignored, and Exchanges will not be created for those",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-storage.move-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-storage.object-name",
+      "type": "java.lang.String",
+      "description": "The Object name inside the bucket",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.operation",
+      "type": "org.apache.camel.component.google.storage.GoogleCloudStorageOperations",
+      "description": "Set the operation for the producer",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.service-account-key",
+      "type": "java.lang.String",
+      "description": "The Service account key that can be used as credentials for the Storage client. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.storage-class",
+      "type": "com.google.cloud.storage.StorageClass",
+      "description": "The Cloud Storage class to use when creating the new buckets. The option is a com.google.cloud.storage.StorageClass type.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.storage-client",
+      "type": "com.google.cloud.storage.Storage",
+      "description": "The storage client. The option is a com.google.cloud.storage.Storage type.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.storage-location",
+      "type": "java.lang.String",
+      "description": "The Cloud Storage location to use when creating the new buckets",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": "US-EAST1"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-gora-starter/src/main/docs/gora.json b/components-starter/camel-gora-starter/src/main/docs/gora.json
new file mode 100644
index 0000000..803f13e
--- /dev/null
+++ b/components-starter/camel-gora-starter/src/main/docs/gora.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.gora",
+      "type": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.gora.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.gora.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.gora.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.gora.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.gora.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the gora component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.gora.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-grape-starter/src/main/docs/grape.json b/components-starter/camel-grape-starter/src/main/docs/grape.json
new file mode 100644
index 0000000..c530dad
--- /dev/null
+++ b/components-starter/camel-grape-starter/src/main/docs/grape.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.grape",
+      "type": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grape.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.grape.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.grape.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.grape.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the grape component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grape.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.grape.patches-repository",
+      "type": "org.apache.camel.component.grape.PatchesRepository",
+      "description": "Implementation of org.apache.camel.component.grape.PatchesRepository, by default: FilePatchesRepository. The option is a org.apache.camel.component.grape.PatchesRepository type.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-graphql-starter/src/main/docs/graphql.json b/components-starter/camel-graphql-starter/src/main/docs/graphql.json
new file mode 100644
index 0000000..90c4da4
--- /dev/null
+++ b/components-starter/camel-graphql-starter/src/main/docs/graphql.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.graphql",
+      "type": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.graphql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.graphql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.graphql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.graphql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the graphql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.graphql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-grok-starter/src/main/docs/grok.json b/components-starter/camel-grok-starter/src/main/docs/grok.json
new file mode 100644
index 0000000..99a749c
--- /dev/null
+++ b/components-starter/camel-grok-starter/src/main/docs/grok.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.grok",
+      "type": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.grok.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.grok.allow-multiple-matches-per-line",
+      "type": "java.lang.Boolean",
+      "description": "If false, every line of input is matched for pattern only once. Otherwise the line can be scanned multiple times when non-terminal pattern is used.",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.grok.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.grok.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the grok data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.grok.flattened",
+      "type": "java.lang.Boolean",
+      "description": "Turns on flattened mode. In flattened mode the exception is thrown when there are multiple pattern matches with same key.",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.grok.named-only",
+      "type": "java.lang.Boolean",
+      "description": "Whether to capture named expressions only or not (i.e. %{IP:ip} but not ${IP})",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.grok.pattern",
+      "type": "java.lang.String",
+      "description": "The grok pattern to match lines of input",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-groovy-starter/src/main/docs/groovy.json b/components-starter/camel-groovy-starter/src/main/docs/groovy.json
new file mode 100644
index 0000000..e5ac836
--- /dev/null
+++ b/components-starter/camel-groovy-starter/src/main/docs/groovy.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.groovy",
+      "type": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.groovy.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.groovy.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.groovy.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the groovy language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.groovy.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-grpc-starter/src/main/docs/grpc.json b/components-starter/camel-grpc-starter/src/main/docs/grpc.json
new file mode 100644
index 0000000..5083347
--- /dev/null
+++ b/components-starter/camel-grpc-starter/src/main/docs/grpc.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.grpc",
+      "type": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grpc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.grpc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.grpc.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.grpc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.grpc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the grpc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grpc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-gson-starter/src/main/docs/gson.json b/components-starter/camel-gson-starter/src/main/docs/gson.json
new file mode 100644
index 0000000..29d54fd
--- /dev/null
+++ b/components-starter/camel-gson-starter/src/main/docs/gson.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-gson",
+      "type": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-gson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-gson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-gson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-gson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-gson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-gson.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-gson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-guava-eventbus-starter/src/main/docs/guava-eventbus.json b/components-starter/camel-guava-eventbus-starter/src/main/docs/guava-eventbus.json
new file mode 100644
index 0000000..6a406e1
--- /dev/null
+++ b/components-starter/camel-guava-eventbus-starter/src/main/docs/guava-eventbus.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.guava-eventbus",
+      "type": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.guava-eventbus.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.guava-eventbus.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.guava-eventbus.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.guava-eventbus.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.guava-eventbus.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the guava-eventbus component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.guava-eventbus.event-bus",
+      "type": "com.google.common.eventbus.EventBus",
+      "description": "To use the given Guava EventBus instance. The option is a com.google.common.eventbus.EventBus type.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.guava-eventbus.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.guava-eventbus.listener-interface",
+      "type": "java.lang.Class<java.lang.Object>",
+      "description": "The interface with method(s) marked with the Subscribe annotation. Dynamic proxy will be created over the interface so it could be registered as the EventBus listener. Particularly useful when creating multi-event listeners and for handling DeadEvent properly. This option cannot be used together with eventClass option.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-hazelcast-starter/src/main/docs/hazelcast.json b/components-starter/camel-hazelcast-starter/src/main/docs/hazelcast.json
new file mode 100644
index 0000000..0dfb05e
--- /dev/null
+++ b/components-starter/camel-hazelcast-starter/src/main/docs/hazelcast.json
@@ -0,0 +1,602 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hazelcast-atomicvalue",
+      "type": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-instance",
+      "type": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-list",
+      "type": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-list.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-map",
+      "type": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-map.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap",
+      "type": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-queue",
+      "type": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap",
+      "type": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer",
+      "type": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-seda",
+      "type": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-set",
+      "type": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-set.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-topic",
+      "type": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hazelcast-atomicvalue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-atomicvalue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-instance.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-instance.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-instance.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-instance component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-list.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-list.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-list.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-list.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-list component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-list.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-list.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-list.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-map.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-map.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-map.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-map.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-map component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-map.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-map.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-map.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-multimap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-queue.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-replicatedmap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-ringbuffer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-seda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-seda.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-seda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-seda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-set.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-set.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-set.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-set.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-set component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-set.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-set.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-set.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-topic.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-topic.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-topic.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-topic component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-hbase-starter/src/main/docs/hbase.json b/components-starter/camel-hbase-starter/src/main/docs/hbase.json
new file mode 100644
index 0000000..d25838c
--- /dev/null
+++ b/components-starter/camel-hbase-starter/src/main/docs/hbase.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hbase",
+      "type": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hbase.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hbase.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hbase.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hbase.configuration",
+      "type": "org.apache.hadoop.conf.Configuration",
+      "description": "To use the shared configuration. The option is a org.apache.hadoop.conf.Configuration type.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hbase.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hbase.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hbase component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hbase.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hbase.pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of references to keep for each table in the HTable pool. The default value is 10.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": 10
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-hdfs-starter/src/main/docs/hdfs.json b/components-starter/camel-hdfs-starter/src/main/docs/hdfs.json
new file mode 100644
index 0000000..79dd98f
--- /dev/null
+++ b/components-starter/camel-hdfs-starter/src/main/docs/hdfs.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hdfs",
+      "type": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hdfs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hdfs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hdfs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hdfs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hdfs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.j-a-a-s-configuration",
+      "type": "javax.security.auth.login.Configuration",
+      "description": "To use the given configuration for security with JAAS. The option is a javax.security.auth.login.Configuration type.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.kerberos-config-file",
+      "type": "java.lang.String",
+      "description": "To use kerberos authentication, set the value of the 'java.security.krb5.conf' environment variable to an existing file. If the environment variable is already set, warn if different than the specified parameter",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-hl7-starter/src/main/docs/hl7.json b/components-starter/camel-hl7-starter/src/main/docs/hl7.json
new file mode 100644
index 0000000..ed6f4ec
--- /dev/null
+++ b/components-starter/camel-hl7-starter/src/main/docs/hl7.json
@@ -0,0 +1,65 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.hl7",
+      "type": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.hl7.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.hl7terser",
+      "type": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.hl7terser.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.hl7.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.hl7.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hl7 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.hl7.validate",
+      "type": "java.lang.Boolean",
+      "description": "Whether to validate the HL7 message Is by default true.",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.hl7terser.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.hl7terser.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hl7terser language. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.hl7terser.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-http-common-starter/src/main/docs/http-common.json b/components-starter/camel-http-common-starter/src/main/docs/http-common.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-http-common-starter/src/main/docs/http-common.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-http-starter/src/main/docs/http.json b/components-starter/camel-http-starter/src/main/docs/http.json
new file mode 100644
index 0000000..87f3f59
--- /dev/null
+++ b/components-starter/camel-http-starter/src/main/docs/http.json
@@ -0,0 +1,271 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.http",
+      "type": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.http.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.auth-caching-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables authentication scheme caching",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.automatic-retries-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic request recovery and re-execution",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.http.client-connection-manager",
+      "type": "org.apache.http.conn.HttpClientConnectionManager",
+      "description": "To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component. The option is a org.apache.http.conn.HttpClientConnectionManager type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.http.connection-request-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.http.connection-state-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables connection state tracking",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.connection-time-to-live",
+      "type": "java.lang.Long",
+      "description": "The time for connection to live, the time unit is millisecond, the default value is always keep alive.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.connections-per-route",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of connections per route.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.component.http.content-compression-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic content decompression",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.cookie-management-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables state (cookie) management",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.cookie-store",
+      "type": "org.apache.http.client.CookieStore",
+      "description": "To use a custom org.apache.http.client.CookieStore. By default the org.apache.http.impl.client.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn't be stored as we are just bridging (eg acting as a proxy). The option is a org.apache.http.client.CookieStore type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.copy-headers",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN headers).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.http.default-user-agent-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables the default user agent set by this builder if none has been provided by the user",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-client-configurer",
+      "type": "org.apache.camel.component.http.HttpClientConfigurer",
+      "description": "To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used. The option is a org.apache.camel.component.http.HttpClientConfigurer type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-context",
+      "type": "org.apache.http.protocol.HttpContext",
+      "description": "To use a custom org.apache.http.protocol.HttpContext when executing requests. The option is a org.apache.http.protocol.HttpContext type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.max-total-connections",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of connections.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": 200
+    },
+    {
+      "name": "camel.component.http.proxy-auth-domain",
+      "type": "java.lang.String",
+      "description": "Proxy authentication domain to use",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-host",
+      "type": "java.lang.String",
+      "description": "Proxy authentication host",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-method",
+      "type": "java.lang.String",
+      "description": "Proxy authentication method to use",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-nt-host",
+      "type": "java.lang.String",
+      "description": "Proxy authentication domain (workstation name) to use with NTML",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-password",
+      "type": "java.lang.String",
+      "description": "Proxy authentication password",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-port",
+      "type": "java.lang.Integer",
+      "description": "Proxy authentication port",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-username",
+      "type": "java.lang.String",
+      "description": "Proxy authentication username",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.redirect-handling-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic redirect handling",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.response-payload-streaming-threshold",
+      "type": "java.lang.Integer",
+      "description": "This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.http.skip-request-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.skip-response-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "Defines the socket timeout in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.http.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.x509-hostname-verifier",
+      "type": "javax.net.ssl.HostnameVerifier",
+      "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-huaweicloud-dms-starter/src/main/docs/huaweicloud-dms.json b/components-starter/camel-huaweicloud-dms-starter/src/main/docs/huaweicloud-dms.json
new file mode 100644
index 0000000..1b2d965
--- /dev/null
+++ b/components-starter/camel-huaweicloud-dms-starter/src/main/docs/huaweicloud-dms.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-dms",
+      "type": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-dms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-dms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-dms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-dms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-dms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-dms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-huaweicloud-functiongraph-starter/src/main/docs/huaweicloud-functiongraph.json b/components-starter/camel-huaweicloud-functiongraph-starter/src/main/docs/huaweicloud-functiongraph.json
new file mode 100644
index 0000000..b150746
--- /dev/null
+++ b/components-starter/camel-huaweicloud-functiongraph-starter/src/main/docs/huaweicloud-functiongraph.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-functiongraph",
+      "type": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-functiongraph.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-functiongraph component. This is enabled by default.",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-huaweicloud-iam-starter/src/main/docs/huaweicloud-iam.json b/components-starter/camel-huaweicloud-iam-starter/src/main/docs/huaweicloud-iam.json
new file mode 100644
index 0000000..1988951
--- /dev/null
+++ b/components-starter/camel-huaweicloud-iam-starter/src/main/docs/huaweicloud-iam.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-iam",
+      "type": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-iam.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-iam.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-iam.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-iam.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-iam component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-iam.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-huaweicloud-imagerecognition-starter/src/main/docs/huaweicloud-imagerecognition.json b/components-starter/camel-huaweicloud-imagerecognition-starter/src/main/docs/huaweicloud-imagerecognition.json
new file mode 100644
index 0000000..0295e43
--- /dev/null
+++ b/components-starter/camel-huaweicloud-imagerecognition-starter/src/main/docs/huaweicloud-imagerecognition.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-imagerecognition",
+      "type": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-imagerecognition.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-imagerecognition component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-huaweicloud-obs-starter/src/main/docs/huaweicloud-obs.json b/components-starter/camel-huaweicloud-obs-starter/src/main/docs/huaweicloud-obs.json
new file mode 100644
index 0000000..1e63abc
--- /dev/null
+++ b/components-starter/camel-huaweicloud-obs-starter/src/main/docs/huaweicloud-obs.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-obs",
+      "type": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-obs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-obs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-obs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hwcloud-obs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-obs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-obs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-obs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-huaweicloud-smn-starter/src/main/docs/huaweicloud-smn.json b/components-starter/camel-huaweicloud-smn-starter/src/main/docs/huaweicloud-smn.json
new file mode 100644
index 0000000..2c73909
--- /dev/null
+++ b/components-starter/camel-huaweicloud-smn-starter/src/main/docs/huaweicloud-smn.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-smn",
+      "type": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-smn.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-smn.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-smn.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-smn.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-smn component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-smn.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-hystrix-starter/src/main/docs/hystrix.json b/components-starter/camel-hystrix-starter/src/main/docs/hystrix.json
new file mode 100644
index 0000000..315c6e1
--- /dev/null
+++ b/components-starter/camel-hystrix-starter/src/main/docs/hystrix.json
@@ -0,0 +1,33 @@
+{
+  "groups": [
+    {
+      "name": "camel.hystrix.mapping",
+      "type": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.hystrix.mapping.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables the automatic mapping of the hystrics metric servlet into the Spring web context.",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.mapping.path",
+      "type": "java.lang.String",
+      "description": "Endpoint for hystrix metrics servlet.",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "defaultValue": "\/hystrix.stream"
+    },
+    {
+      "name": "camel.hystrix.mapping.servlet-name",
+      "type": "java.lang.String",
+      "description": "Name of the Hystrix metrics servlet.",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "defaultValue": "HystrixEventStreamServlet"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ical-starter/src/main/docs/ical.json b/components-starter/camel-ical-starter/src/main/docs/ical.json
new file mode 100644
index 0000000..01093d9
--- /dev/null
+++ b/components-starter/camel-ical-starter/src/main/docs/ical.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.ical",
+      "type": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.ical.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.ical.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.ical.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ical data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.ical.validating",
+      "type": "java.lang.Boolean",
+      "description": "Whether to validate.",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-iec60870-starter/src/main/docs/iec60870.json b/components-starter/camel-iec60870-starter/src/main/docs/iec60870.json
new file mode 100644
index 0000000..45fcc26
--- /dev/null
+++ b/components-starter/camel-iec60870-starter/src/main/docs/iec60870.json
@@ -0,0 +1,105 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.iec60870-client",
+      "type": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-client.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.iec60870-server",
+      "type": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-server.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.iec60870-client.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.iec60870-client.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.iec60870-client.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.iec60870-client.default-connection-options",
+      "type": "org.apache.camel.component.iec60870.client.ClientOptions",
+      "description": "Default connection options. The option is a org.apache.camel.component.iec60870.client.ClientOptions type.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-client.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the iec60870-client component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-client.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.iec60870-server.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.iec60870-server.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.iec60870-server.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.iec60870-server.default-connection-options",
+      "type": "org.apache.camel.component.iec60870.server.ServerOptions",
+      "description": "Default connection options. The option is a org.apache.camel.component.iec60870.server.ServerOptions type.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-server.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the iec60870-server component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-server.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ignite-starter/src/main/docs/ignite.json b/components-starter/camel-ignite-starter/src/main/docs/ignite.json
new file mode 100644
index 0000000..ec96335
--- /dev/null
+++ b/components-starter/camel-ignite-starter/src/main/docs/ignite.json
@@ -0,0 +1,399 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ignite-cache",
+      "type": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-compute",
+      "type": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-events",
+      "type": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-idgen",
+      "type": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-messaging",
+      "type": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-queue",
+      "type": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-set",
+      "type": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ignite-cache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-cache.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-cache.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-cache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-cache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-compute.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-compute.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-compute.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-compute component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-events.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-events.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-events.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-events.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-events component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-idgen.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-idgen.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-idgen component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-messaging.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-messaging.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-messaging.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-messaging.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-messaging component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-queue.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-set.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-set.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-set.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-set component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-infinispan-embedded-starter/src/main/docs/infinispan-embedded.json b/components-starter/camel-infinispan-embedded-starter/src/main/docs/infinispan-embedded.json
new file mode 100644
index 0000000..4c7f191
--- /dev/null
+++ b/components-starter/camel-infinispan-embedded-starter/src/main/docs/infinispan-embedded.json
@@ -0,0 +1,154 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.infinispan-embedded",
+      "type": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.infinispan-embedded.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.infinispan-embedded.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan-embedded.cache-container",
+      "type": "org.infinispan.manager.EmbeddedCacheManager",
+      "description": "Specifies the cache Container to connect. The option is a org.infinispan.manager.EmbeddedCacheManager type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.cache-container-configuration",
+      "type": "org.infinispan.configuration.cache.Configuration",
+      "description": "The CacheContainer configuration. Used if the cacheContainer is not defined. The option is a org.infinispan.configuration.cache.Configuration type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.clustered-listener",
+      "type": "java.lang.Boolean",
+      "description": "If true, the listener will be installed for the entire cluster",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan-embedded.configuration",
+      "type": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.configuration-uri",
+      "type": "java.lang.String",
+      "description": "An implementation specific URI for the CacheManager",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.custom-listener",
+      "type": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener",
+      "description": "Returns the custom listener in use, if provided. The option is a org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.default-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific default value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the infinispan-embedded component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.event-types",
+      "type": "java.lang.String",
+      "description": "Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CACHE_ENTRY_ACTIVATED, CACHE_ENTRY_PASSIVATED, CACHE_ENTRY_VISITED, CACHE_ENTRY_LOADED, CACHE_ENTRY_EVICTED, CACHE_ENTRY_CREATED, CACHE_ENTRY_REMOVED, CACHE_ENTRY_MODIFIED, TRANSACTION_COMPLETED, TRANSACTION_REGISTERED, CACHE_ENTRY_INVALIDATED, CACHE_ENTRY_EXPIRED, DATA_REHASHED, TOPOLOGY_CHANGED, PARTITION_STATUS_CHANGED, PERSISTENCE_AVAILABILITY_CHANGED",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.flags",
+      "type": "java.lang.String",
+      "description": "A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.key",
+      "type": "java.lang.Object",
+      "description": "Set a specific key for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan-embedded.old-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific old value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.operation",
+      "type": "org.apache.camel.component.infinispan.InfinispanOperation",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.query-builder",
+      "type": "org.apache.camel.component.infinispan.InfinispanQueryBuilder",
+      "description": "Specifies the query builder. The option is a org.apache.camel.component.infinispan.InfinispanQueryBuilder type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.remapping-function",
+      "type": "java.util.function.BiFunction",
+      "description": "Set a specific remappingFunction to use in a compute operation. The option is a java.util.function.BiFunction type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.result-header",
+      "type": "java.lang.String",
+      "description": "Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.sync",
+      "type": "java.lang.Boolean",
+      "description": "If true, the consumer will receive notifications synchronously",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.infinispan-embedded.value",
+      "type": "java.lang.Object",
+      "description": "Set a specific value for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-infinispan-starter/src/main/docs/infinispan.json b/components-starter/camel-infinispan-starter/src/main/docs/infinispan.json
new file mode 100644
index 0000000..b47b44e
--- /dev/null
+++ b/components-starter/camel-infinispan-starter/src/main/docs/infinispan.json
@@ -0,0 +1,189 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.infinispan",
+      "type": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.infinispan.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.infinispan.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan.cache-container",
+      "type": "org.infinispan.client.hotrod.RemoteCacheManager",
+      "description": "Specifies the cache Container to connect. The option is a org.infinispan.client.hotrod.RemoteCacheManager type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.cache-container-configuration",
+      "type": "org.infinispan.client.hotrod.configuration.Configuration",
+      "description": "The CacheContainer configuration. Used if the cacheContainer is not defined. The option is a org.infinispan.client.hotrod.configuration.Configuration type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.configuration",
+      "type": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Implementation specific properties for the CacheManager",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.configuration-uri",
+      "type": "java.lang.String",
+      "description": "An implementation specific URI for the CacheManager",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.custom-listener",
+      "type": "org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener",
+      "description": "Returns the custom listener in use, if provided. The option is a org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.infinispan.default-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific default value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the infinispan component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.event-types",
+      "type": "java.lang.String",
+      "description": "Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CLIENT_CACHE_ENTRY_CREATED, CLIENT_CACHE_ENTRY_MODIFIED, CLIENT_CACHE_ENTRY_REMOVED, CLIENT_CACHE_ENTRY_EXPIRED, CLIENT_CACHE_FAILOVER",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.flags",
+      "type": "java.lang.String",
+      "description": "A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.hosts",
+      "type": "java.lang.String",
+      "description": "Specifies the host of the cache on Infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.key",
+      "type": "java.lang.Object",
+      "description": "Set a specific key for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan.old-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific old value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.operation",
+      "type": "org.apache.camel.component.infinispan.InfinispanOperation",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.password",
+      "type": "java.lang.String",
+      "description": "Define the password to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.query-builder",
+      "type": "org.apache.camel.component.infinispan.InfinispanQueryBuilder",
+      "description": "Specifies the query builder. The option is a org.apache.camel.component.infinispan.InfinispanQueryBuilder type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.remapping-function",
+      "type": "java.util.function.BiFunction",
+      "description": "Set a specific remappingFunction to use in a compute operation. The option is a java.util.function.BiFunction type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.result-header",
+      "type": "java.lang.String",
+      "description": "Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.sasl-mechanism",
+      "type": "java.lang.String",
+      "description": "Define the SASL Mechanism to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.secure",
+      "type": "java.lang.Boolean",
+      "description": "Define if we are connecting to a secured Infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan.security-realm",
+      "type": "java.lang.String",
+      "description": "Define the security realm to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.security-server-name",
+      "type": "java.lang.String",
+      "description": "Define the security server name to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.username",
+      "type": "java.lang.String",
+      "description": "Define the username to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.value",
+      "type": "java.lang.Object",
+      "description": "Set a specific value for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-influxdb-starter/src/main/docs/influxdb.json b/components-starter/camel-influxdb-starter/src/main/docs/influxdb.json
new file mode 100644
index 0000000..ee30549
--- /dev/null
+++ b/components-starter/camel-influxdb-starter/src/main/docs/influxdb.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.influxdb",
+      "type": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.influxdb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.influxdb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.influxdb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.influxdb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the influxdb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.influxdb.influx-d-b",
+      "type": "org.influxdb.InfluxDB",
+      "description": "The shared Influx DB to use for all endpoints. The option is a org.influxdb.InfluxDB type.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.influxdb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-iota-starter/src/main/docs/iota.json b/components-starter/camel-iota-starter/src/main/docs/iota.json
new file mode 100644
index 0000000..d0729a2
--- /dev/null
+++ b/components-starter/camel-iota-starter/src/main/docs/iota.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.iota",
+      "type": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iota.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.iota.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.iota.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.iota.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the iota component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iota.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ipfs-starter/src/main/docs/ipfs.json b/components-starter/camel-ipfs-starter/src/main/docs/ipfs.json
new file mode 100644
index 0000000..fadd802
--- /dev/null
+++ b/components-starter/camel-ipfs-starter/src/main/docs/ipfs.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ipfs",
+      "type": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ipfs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ipfs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ipfs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ipfs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ipfs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ipfs.ipfs-host",
+      "type": "java.lang.String",
+      "description": "The ipfs host",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": "127.0.0.1"
+    },
+    {
+      "name": "camel.component.ipfs.ipfs-port",
+      "type": "java.lang.Integer",
+      "description": "The ipfs port",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": 5001
+    },
+    {
+      "name": "camel.component.ipfs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-irc-starter/src/main/docs/irc.json b/components-starter/camel-irc-starter/src/main/docs/irc.json
new file mode 100644
index 0000000..b4c7788
--- /dev/null
+++ b/components-starter/camel-irc-starter/src/main/docs/irc.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.irc",
+      "type": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.irc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.irc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.irc.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.irc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.irc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the irc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.irc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.irc.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ironmq-starter/src/main/docs/ironmq.json b/components-starter/camel-ironmq-starter/src/main/docs/ironmq.json
new file mode 100644
index 0000000..51b6c51
--- /dev/null
+++ b/components-starter/camel-ironmq-starter/src/main/docs/ironmq.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ironmq",
+      "type": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ironmq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ironmq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ironmq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ironmq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ironmq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ironmq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ironmq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jackson-avro-starter/src/main/docs/jackson-avro.json b/components-starter/camel-jackson-avro-starter/src/main/docs/jackson-avro.json
new file mode 100644
index 0000000..6f7c18d
--- /dev/null
+++ b/components-starter/camel-jackson-avro-starter/src/main/docs/jackson-avro.json
@@ -0,0 +1,144 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.avro-jackson",
+      "type": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.avro-jackson.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.auto-discover-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "If set to true then Jackson will lookup for an objectMapper into the registry",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.auto-discover-schema-resolver",
+      "type": "java.lang.Boolean",
+      "description": "When not disabled, the SchemaResolver will be looked up into the registry",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the avro-jackson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.schema-resolver",
+      "type": "java.lang.String",
+      "description": "Optional schema resolver used to lookup schemas for the data in transit.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.timezone",
+      "type": "java.lang.String",
+      "description": "If set then Jackson will use the Timezone when marshalling\/unmarshalling.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jackson-protobuf-starter/src/main/docs/jackson-protobuf.json b/components-starter/camel-jackson-protobuf-starter/src/main/docs/jackson-protobuf.json
new file mode 100644
index 0000000..88674c0
--- /dev/null
+++ b/components-starter/camel-jackson-protobuf-starter/src/main/docs/jackson-protobuf.json
@@ -0,0 +1,144 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.protobuf-jackson",
+      "type": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.protobuf-jackson.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.auto-discover-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "If set to true then Jackson will lookup for an objectMapper into the registry",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.auto-discover-schema-resolver",
+      "type": "java.lang.Boolean",
+      "description": "When not disabled, the SchemaResolver will be looked up into the registry",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the protobuf-jackson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.schema-resolver",
+      "type": "java.lang.String",
+      "description": "Optional schema resolver used to lookup schemas for the data in transit.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.timezone",
+      "type": "java.lang.String",
+      "description": "If set then Jackson will use the Timezone when marshalling\/unmarshalling.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jackson-starter/src/main/docs/jackson.json b/components-starter/camel-jackson-starter/src/main/docs/jackson.json
new file mode 100644
index 0000000..bd1bf3e
--- /dev/null
+++ b/components-starter/camel-jackson-starter/src/main/docs/jackson.json
@@ -0,0 +1,151 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-jackson",
+      "type": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-jackson.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.auto-discover-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "If set to true then Jackson will lookup for an objectMapper into the registry",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.auto-discover-schema-resolver",
+      "type": "java.lang.Boolean",
+      "description": "When not disabled, the SchemaResolver will be looked up into the registry",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-jackson.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-jackson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-jackson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.schema-resolver",
+      "type": "java.lang.String",
+      "description": "Optional schema resolver used to lookup schemas for the data in transit.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.timezone",
+      "type": "java.lang.String",
+      "description": "If set then Jackson will use the Timezone when marshalling\/unmarshalling. This option will have no effect on the others Json DataFormat, like gson, fastjson and xstream.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-jackson.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jacksonxml-starter/src/main/docs/jacksonxml.json b/components-starter/camel-jacksonxml-starter/src/main/docs/jacksonxml.json
new file mode 100644
index 0000000..ab96aa4
--- /dev/null
+++ b/components-starter/camel-jacksonxml-starter/src/main/docs/jacksonxml.json
@@ -0,0 +1,125 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.jacksonxml",
+      "type": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.jacksonxml.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.enable-jaxb-annotation-module",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable the JAXB annotations module when using jackson. When enabled then JAXB annotations can be used by Jackson.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jacksonxml data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.xml-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing XmlMapper with the given id.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jasypt-starter/src/main/docs/jasypt.json b/components-starter/camel-jasypt-starter/src/main/docs/jasypt.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-jasypt-starter/src/main/docs/jasypt.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jaxb-starter/src/main/docs/jaxb.json b/components-starter/camel-jaxb-starter/src/main/docs/jaxb.json
new file mode 100644
index 0000000..e790aea
--- /dev/null
+++ b/components-starter/camel-jaxb-starter/src/main/docs/jaxb.json
@@ -0,0 +1,152 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.jaxb",
+      "type": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.jaxb.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.jaxb.context-path",
+      "type": "java.lang.String",
+      "description": "Package name where your JAXB classes are located.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.context-path-is-class-name",
+      "type": "java.lang.Boolean",
+      "description": "This can be set to true to mark that the contextPath is referring to a classname and not a package name.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.jaxb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jaxb data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.encoding",
+      "type": "java.lang.String",
+      "description": "To overrule and use a specific encoding",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.filter-non-xml-chars",
+      "type": "java.lang.Boolean",
+      "description": "To ignore non xml characheters and replace them with an empty space.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.fragment",
+      "type": "java.lang.Boolean",
+      "description": "To turn on marshalling XML fragment trees. By default JAXB looks for XmlRootElement annotation on given class to operate on whole XML tree. This is useful but not always - sometimes generated code does not have XmlRootElement annotation, sometimes you need unmarshall only part of tree. In that case you can use partial unmarshalling. To enable this behaviours you need set property partClass. Camel will pass this class to JAXB's unmarshaler.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.ignore-j-a-x-b-element",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore JAXBElement elements - only needed to be set to false in very special use-cases.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.jaxb-provider-properties",
+      "type": "java.lang.String",
+      "description": "Refers to a custom java.util.Map to lookup in the registry containing custom JAXB provider properties to be used with the JAXB marshaller.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.must-be-j-a-x-b-element",
+      "type": "java.lang.Boolean",
+      "description": "Whether marhsalling must be java objects with JAXB annotations. And if not then it fails. This option can be set to false to relax that, such as when the data is already in XML format.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.namespace-prefix-ref",
+      "type": "java.lang.String",
+      "description": "When marshalling using JAXB or SOAP then the JAXB implementation will automatic assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.no-namespace-schema-location",
+      "type": "java.lang.String",
+      "description": "To define the location of the namespaceless schema",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.object-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow using ObjectFactory classes to create the POJO classes during marshalling. This only applies to POJO classes that has not been annotated with JAXB and providing jaxb.index descriptor files.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.part-class",
+      "type": "java.lang.String",
+      "description": "Name of class used for fragment parsing. See more details at the fragment option.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.part-namespace",
+      "type": "java.lang.String",
+      "description": "XML namespace to use for fragment parsing. See more details at the fragment option.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.schema",
+      "type": "java.lang.String",
+      "description": "To validate against an existing schema. Your can use the prefix classpath:, file: or http: to specify how the resource should by resolved. You can separate multiple schema files by using the ',' character.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.schema-location",
+      "type": "java.lang.String",
+      "description": "To define the location of the schema",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.schema-severity-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the schema severity level to use when validating against a schema. This level determines the minimum severity error that triggers JAXB to stop continue parsing. The default value of 0 (warning) means that any error (warning, error or fatal error) will trigger JAXB to stop. There are the following three levels: 0=warning, 1=error, 2=fatal error.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.dataformat.jaxb.xml-stream-writer-wrapper",
+      "type": "java.lang.String",
+      "description": "To use a custom xml stream writer.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jbpm-starter/src/main/docs/jbpm.json b/components-starter/camel-jbpm-starter/src/main/docs/jbpm.json
new file mode 100644
index 0000000..cb8600c
--- /dev/null
+++ b/components-starter/camel-jbpm-starter/src/main/docs/jbpm.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jbpm",
+      "type": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jbpm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jbpm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jbpm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jbpm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jbpm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jbpm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jbpm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jcache-starter/src/main/docs/jcache.json b/components-starter/camel-jcache-starter/src/main/docs/jcache.json
new file mode 100644
index 0000000..c41ef20
--- /dev/null
+++ b/components-starter/camel-jcache-starter/src/main/docs/jcache.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jcache",
+      "type": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jcache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jcache.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jcache.cache-configuration",
+      "type": "javax.cache.configuration.Configuration",
+      "description": "A Configuration for the Cache. The option is a javax.cache.configuration.Configuration type.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.cache-configuration-properties",
+      "type": "java.util.Map",
+      "description": "Properties to configure jcache",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.cache-configuration-properties-ref",
+      "type": "java.lang.String",
+      "description": "References to an existing Properties or Map to lookup in the registry to use for configuring jcache.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.caching-provider",
+      "type": "java.lang.String",
+      "description": "The fully qualified class name of the javax.cache.spi.CachingProvider",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.configuration-uri",
+      "type": "java.lang.String",
+      "description": "An implementation specific URI for the CacheManager",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jcache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jcache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jclouds-starter/src/main/docs/jclouds.json b/components-starter/camel-jclouds-starter/src/main/docs/jclouds.json
new file mode 100644
index 0000000..78e053e
--- /dev/null
+++ b/components-starter/camel-jclouds-starter/src/main/docs/jclouds.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jclouds",
+      "type": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jclouds.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jclouds.blob-stores",
+      "type": "java.util.List<org.jclouds.blobstore.BlobStore>",
+      "description": "To use the given BlobStore which must be configured when using blobstore.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jclouds.compute-services",
+      "type": "java.util.List<org.jclouds.compute.ComputeService>",
+      "description": "To use the given ComputeService which must be configured when use compute.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jclouds.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jclouds component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jcr-starter/src/main/docs/jcr.json b/components-starter/camel-jcr-starter/src/main/docs/jcr.json
new file mode 100644
index 0000000..9c05880
--- /dev/null
+++ b/components-starter/camel-jcr-starter/src/main/docs/jcr.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jcr",
+      "type": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcr.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jcr.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jcr.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jcr.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jcr.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jcr component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcr.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jdbc-starter/src/main/docs/jdbc.json b/components-starter/camel-jdbc-starter/src/main/docs/jdbc.json
new file mode 100644
index 0000000..d058c4c
--- /dev/null
+++ b/components-starter/camel-jdbc-starter/src/main/docs/jdbc.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jdbc",
+      "type": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jdbc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jdbc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jdbc.connection-strategy",
+      "type": "org.apache.camel.component.jdbc.ConnectionStrategy",
+      "description": "To use a custom strategy for working with connections. Do not use a custom strategy when using the spring-jdbc component because a special Spring ConnectionStrategy is used by default to support Spring Transactions. The option is a org.apache.camel.component.jdbc.ConnectionStrategy type.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jdbc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jdbc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jdbc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jdbc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jetty-common-starter/src/main/docs/jetty-common.json b/components-starter/camel-jetty-common-starter/src/main/docs/jetty-common.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-jetty-common-starter/src/main/docs/jetty-common.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jetty-starter/src/main/docs/jetty.json b/components-starter/camel-jetty-starter/src/main/docs/jetty.json
new file mode 100644
index 0000000..7eb421c
--- /dev/null
+++ b/components-starter/camel-jetty-starter/src/main/docs/jetty.json
@@ -0,0 +1,230 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jetty",
+      "type": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jetty.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jetty.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.continuation-timeout",
+      "type": "java.lang.Long",
+      "description": "Allows to set a timeout in millis when using Jetty as consumer (server). By default Jetty uses 30000. You can use a value of = 0 to never expire. If a timeout occurs then the request will be expired and Jetty will return back a http error 503 to the client. This option is only in use when using Jetty with the Asynchronous Routing Engine.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.jetty.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jetty.enable-jmx",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true, Jetty JMX support will be enabled for this endpoint.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jetty component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.error-handler",
+      "type": "org.eclipse.jetty.server.handler.ErrorHandler",
+      "description": "This option is used to set the ErrorHandler that Jetty server uses. The option is a org.eclipse.jetty.server.handler.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "Not to be used - use JettyHttpBinding instead. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "Jetty component does not use HttpConfiguration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.jetty-http-binding",
+      "type": "org.apache.camel.component.jetty.JettyHttpBinding",
+      "description": "To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer. The option is a org.apache.camel.component.jetty.JettyHttpBinding type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.keystore",
+      "type": "java.lang.String",
+      "description": "Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.max-threads",
+      "type": "java.lang.Integer",
+      "description": "To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.mb-container",
+      "type": "org.eclipse.jetty.jmx.MBeanContainer",
+      "description": "To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans. The option is a org.eclipse.jetty.jmx.MBeanContainer type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.min-threads",
+      "type": "java.lang.Integer",
+      "description": "To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.proxy-host",
+      "type": "java.lang.String",
+      "description": "To use a http proxy to configure the hostname.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To use a http proxy to configure the port number.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.request-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the request buffer size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.request-header-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the request header size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.response-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the response buffer size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.response-header-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the response header size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.send-server-version",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jetty.socket-connector-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.socket-connectors",
+      "type": "java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector>",
+      "description": "A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-password",
+      "type": "java.lang.String",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-socket-connector-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "A map which contains general SSL connector properties.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-socket-connectors",
+      "type": "java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector>",
+      "description": "A map which contains per port number specific SSL connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.thread-pool",
+      "type": "org.eclipse.jetty.util.thread.ThreadPool",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.use-continuation",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to use Jetty continuations for the Jetty Server.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jetty.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.use-x-forwarded-for-header",
+      "type": "java.lang.Boolean",
+      "description": "To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jfr-starter/src/main/docs/jfr.json b/components-starter/camel-jfr-starter/src/main/docs/jfr.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-jfr-starter/src/main/docs/jfr.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jgroups-raft-starter/src/main/docs/jgroups-raft.json b/components-starter/camel-jgroups-raft-starter/src/main/docs/jgroups-raft.json
new file mode 100644
index 0000000..9f77ef6
--- /dev/null
+++ b/components-starter/camel-jgroups-raft-starter/src/main/docs/jgroups-raft.json
@@ -0,0 +1,111 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.jgroups-raft",
+      "type": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft",
+      "type": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.jgroups-raft.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the jgroups raft cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.jgroups-raft-cluster-name",
+      "type": "java.lang.String",
+      "description": "JGroups Cluster name",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.jgroups-raft-config",
+      "type": "java.lang.String",
+      "description": "JGrups-raft configuration File name",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.raft-id",
+      "type": "java.lang.String",
+      "description": "JGroups-raft ID",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jgroups-raft.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups-raft.channel-properties",
+      "type": "java.lang.String",
+      "description": "Specifies configuration properties of the RaftHandle JChannel used by the endpoint (ignored if raftHandle ref is provided).",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": "raft.xml"
+    },
+    {
+      "name": "camel.component.jgroups-raft.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jgroups-raft.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jgroups-raft component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups-raft.raft-handle",
+      "type": "org.jgroups.raft.RaftHandle",
+      "description": "RaftHandle to use. The option is a org.jgroups.raft.RaftHandle type.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.raft-id",
+      "type": "java.lang.String",
+      "description": "Unique raftId to use.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.state-machine",
+      "type": "org.jgroups.protocols.raft.StateMachine",
+      "description": "StateMachine to use. The option is a org.jgroups.protocols.raft.StateMachine type.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jgroups-starter/src/main/docs/jgroups.json b/components-starter/camel-jgroups-starter/src/main/docs/jgroups.json
new file mode 100644
index 0000000..1a331b4
--- /dev/null
+++ b/components-starter/camel-jgroups-starter/src/main/docs/jgroups.json
@@ -0,0 +1,99 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.jgroups",
+      "type": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups",
+      "type": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.jgroups.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the jgroups lock cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.jgroups.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups.jgroups-cluster-name",
+      "type": "java.lang.String",
+      "description": "JGroups Cluster name",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups.jgroups-config",
+      "type": "java.lang.String",
+      "description": "JGrups configuration File name",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jgroups.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups.channel",
+      "type": "org.jgroups.JChannel",
+      "description": "Channel to use. The option is a org.jgroups.JChannel type.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.channel-properties",
+      "type": "java.lang.String",
+      "description": "Specifies configuration properties of the JChannel used by the endpoint.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jgroups.enable-view-messages",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, the consumer endpoint will receive org.jgroups.View messages as well (not only org.jgroups.Message instances). By default only regular messages are consumed by the endpoint.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jgroups component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jing-starter/src/main/docs/jing.json b/components-starter/camel-jing-starter/src/main/docs/jing.json
new file mode 100644
index 0000000..2ced3f5
--- /dev/null
+++ b/components-starter/camel-jing-starter/src/main/docs/jing.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jing",
+      "type": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jing.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jing.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jing.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jing.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jing component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jing.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jira-starter/src/main/docs/jira.json b/components-starter/camel-jira-starter/src/main/docs/jira.json
new file mode 100644
index 0000000..351dfb0
--- /dev/null
+++ b/components-starter/camel-jira-starter/src/main/docs/jira.json
@@ -0,0 +1,105 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jira",
+      "type": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jira.access-token",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The access token generated by the Jira server.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jira.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jira.configuration",
+      "type": "org.apache.camel.component.jira.JiraConfiguration",
+      "description": "To use a shared base jira configuration. The option is a org.apache.camel.component.jira.JiraConfiguration type.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.consumer-key",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The consumer key from Jira settings.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jira.delay",
+      "type": "java.lang.Integer",
+      "description": "Time in milliseconds to elapse for the next poll.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": 6000
+    },
+    {
+      "name": "camel.component.jira.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jira component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.jira-url",
+      "type": "java.lang.String",
+      "description": "The Jira server url, example: http:\/\/my_jira.com:8081",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jira.password",
+      "type": "java.lang.String",
+      "description": "(Basic authentication only) The password to authenticate to the Jira server. Use only if username basic authentication is used.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.private-key",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The private key generated by the client to encrypt the conversation to the server.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.username",
+      "type": "java.lang.String",
+      "description": "(Basic authentication only) The username to authenticate to the Jira server. Use only if OAuth is not enabled on the Jira server. Do not set the username and OAuth token parameter, if they are both set, the username basic authentication takes precedence.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.verification-code",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The verification code from Jira generated in the first step of the authorization proccess.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jms-starter/src/main/docs/jms.json b/components-starter/camel-jms-starter/src/main/docs/jms.json
new file mode 100644
index 0000000..7b2fd72
--- /dev/null
+++ b/components-starter/camel-jms-starter/src/main/docs/jms.json
@@ -0,0 +1,679 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jms",
+      "type": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jms.accept-messages-while-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on the JMS broker. To avoid this its recommended to enable this option.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.acknowledgement-mode-name",
+      "type": "java.lang.String",
+      "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": "AUTO_ACKNOWLEDGE"
+    },
+    {
+      "name": "camel.component.jms.allow-additional-headers",
+      "type": "java.lang.String",
+      "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.allow-auto-wired-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.allow-auto-wired-destination-resolver",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.allow-reply-manager-quick-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.always-copy-message",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set)",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.artemis-consumer-priority",
+      "type": "java.lang.Integer",
+      "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.artemis-streaming-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.async-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been enabled, then asyncConsumer=true does not run asynchronously, as transaction must be executed synchronously (Camel 3.0 may support async transactions).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.async-start-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.async-stop-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.cache-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": "CACHE_AUTO"
+    },
+    {
+      "name": "camel.component.jms.client-id",
+      "type": "java.lang.String",
+      "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.configuration",
+      "type": "org.apache.camel.component.jms.JmsConfiguration",
+      "description": "To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.consumer-type",
+      "type": "org.apache.camel.component.jms.ConsumerType",
+      "description": "The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.correlation-property",
+      "type": "java.lang.String",
+      "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jms.default-task-executor-type",
+      "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+      "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsync for reply consumers. The use of ThreadPool is recommended to reduce thread trash in elastic configurations with dynamically increasing and decreasing concurrent consumers.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.delivery-delay",
+      "type": "java.lang.Long",
+      "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.delivery-mode",
+      "type": "java.lang.Integer",
+      "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether persistent delivery is used by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.destination-resolver",
+      "type": "org.springframework.jms.support.destination.DestinationResolver",
+      "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.disable-reply-to",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you want to route message from one system to another.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.disable-time-to-live",
+      "type": "java.lang.Boolean",
+      "description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire on the receiver system. See below in section About time to live for more details.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.durable-subscription-name",
+      "type": "java.lang.String",
+      "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.eager-loading-of-properties",
+      "type": "java.lang.Boolean",
+      "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.eager-poison-body",
+      "type": "java.lang.String",
+      "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": "Poison JMS message due to ${exception.message}"
+    },
+    {
+      "name": "camel.component.jms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.error-handler-log-stack-trace",
+      "type": "java.lang.Boolean",
+      "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.error-handler-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.exception-listener",
+      "type": "javax.jms.ExceptionListener",
+      "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.explicit-qos-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.expose-listener-session",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the listener session should be exposed when consuming messages.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.force-send-original-message",
+      "type": "java.lang.Boolean",
+      "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.format-date-headers-to-iso8601",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.idle-consumer-limit",
+      "type": "java.lang.Integer",
+      "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.idle-task-execution-limit",
+      "type": "java.lang.Integer",
+      "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.include-all-j-m-s-x-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.include-sent-j-m-s-message-i-d",
+      "type": "java.lang.Boolean",
+      "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.jms-key-format-strategy",
+      "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.jms-message-type",
+      "type": "org.apache.camel.component.jms.JmsMessageType",
+      "description": "Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.lazy-create-transaction-manager",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.map-jms-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.max-messages-per-task",
+      "type": "java.lang.Integer",
+      "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.message-converter",
+      "type": "org.springframework.jms.support.converter.MessageConverter",
+      "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.message-created-strategy",
+      "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.message-id-enabled",
+      "type": "java.lang.Boolean",
+      "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.message-listener-container-factory",
+      "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+      "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.message-timestamp-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.password",
+      "type": "java.lang.String",
+      "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.preserve-message-qos",
+      "type": "java.lang.Boolean",
+      "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by contrast, will only use options set on the endpoint, and not values from the message header.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.priority",
+      "type": "java.lang.Integer",
+      "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 4
+    },
+    {
+      "name": "camel.component.jms.pub-sub-no-local",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to inhibit the delivery of messages published by its own connection.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.queue-browse-strategy",
+      "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+      "description": "To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.receive-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for receiving messages (in milliseconds). The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.jms.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.jms.reply-to",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w\/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE_NONE is not allowed, and you must use a higher value such as CACHE_CONSUMER or CACHE_SESSION.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.reply-to-delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use persistent delivery by default for replies.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.reply-to-destination-selector-name",
+      "type": "java.lang.String",
+      "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.reply-to-override",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-same-destination-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.reply-to-type",
+      "type": "org.apache.camel.component.jms.ReplyToType",
+      "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running in a clustered environment, and the fact that Shared reply queues has lower performance than its alternatives Temporary and Exclusive.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.request-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.jms.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.jms.selector",
+      "type": "java.lang.String",
+      "description": "Sets the JMS selector to use",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.stream-message-type-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no more data.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.subscription-durable",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.subscription-name",
+      "type": "java.lang.String",
+      "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.subscription-shared",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscriptionDurable as well. Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well. Requires a JMS 2.0 compatible message broker.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.task-executor",
+      "type": "org.springframework.core.task.TaskExecutor",
+      "description": "Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.time-to-live",
+      "type": "java.lang.Long",
+      "description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.transacted",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use transacted mode",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.transacted-in-out",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.transaction-name",
+      "type": "java.lang.String",
+      "description": "The name of the transaction to use.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.transaction-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout value of the transaction (in seconds), if using transacted mode.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an Exchange and not a regular payload. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.use-message-i-d-as-correlation-i-d",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.username",
+      "type": "java.lang.String",
+      "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.wait-for-provision-correlation-to-be-updated-counter",
+      "type": "java.lang.Integer",
+      "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.jms.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+      "type": "java.lang.Long",
+      "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 100
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jmx-starter/src/main/docs/jmx.json b/components-starter/camel-jmx-starter/src/main/docs/jmx.json
new file mode 100644
index 0000000..b518d28
--- /dev/null
+++ b/components-starter/camel-jmx-starter/src/main/docs/jmx.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jmx",
+      "type": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jmx.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jmx.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jmx.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jmx.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jmx.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jmx component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-johnzon-starter/src/main/docs/johnzon.json b/components-starter/camel-johnzon-starter/src/main/docs/johnzon.json
new file mode 100644
index 0000000..f44bbfe
--- /dev/null
+++ b/components-starter/camel-johnzon-starter/src/main/docs/johnzon.json
@@ -0,0 +1,48 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-johnzon",
+      "type": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-johnzon.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-johnzon data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing Mapper with the given id.",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jolt-starter/src/main/docs/jolt.json b/components-starter/camel-jolt-starter/src/main/docs/jolt.json
new file mode 100644
index 0000000..e22e2b9
--- /dev/null
+++ b/components-starter/camel-jolt-starter/src/main/docs/jolt.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jolt",
+      "type": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jolt.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jolt.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jolt.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jolt.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jolt.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jolt component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jolt.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jolt.transform",
+      "type": "com.bazaarvoice.jolt.Transform",
+      "description": "Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created. The option is a com.bazaarvoice.jolt.Transform type.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jooq-starter/src/main/docs/jooq.json b/components-starter/camel-jooq-starter/src/main/docs/jooq.json
new file mode 100644
index 0000000..f82236d
--- /dev/null
+++ b/components-starter/camel-jooq-starter/src/main/docs/jooq.json
@@ -0,0 +1,81 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jooq",
+      "type": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jooq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jooq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jooq.configuration",
+      "type": "org.apache.camel.component.jooq.JooqConfiguration",
+      "description": "Component configuration (database connection, database entity type, etc.). The option is a org.apache.camel.component.jooq.JooqConfiguration type.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.consume-delete",
+      "type": "java.lang.Boolean",
+      "description": "Delete entity after it is consumed",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jooq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jooq.database-configuration",
+      "type": "org.jooq.Configuration",
+      "description": "To use a specific database configuration. The option is a org.jooq.Configuration type.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jooq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jooq.operation",
+      "type": "org.apache.camel.component.jooq.JooqOperation",
+      "description": "Type of operation to execute on query",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.query",
+      "type": "java.lang.String",
+      "description": "To execute plain SQL query",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-joor-starter/src/main/docs/joor.json b/components-starter/camel-joor-starter/src/main/docs/joor.json
new file mode 100644
index 0000000..3b7e884
--- /dev/null
+++ b/components-starter/camel-joor-starter/src/main/docs/joor.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.joor",
+      "type": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.joor.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.joor.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.joor.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the joor language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.joor.pre-compile",
+      "type": "java.lang.Boolean",
+      "description": "Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the expression is reloaded and compiled on each evaluation.",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.joor.single-quotes",
+      "type": "java.lang.Boolean",
+      "description": "Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with strings inside strings.",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.joor.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jpa-starter/src/main/docs/jpa.json b/components-starter/camel-jpa-starter/src/main/docs/jpa.json
new file mode 100644
index 0000000..2b7af22
--- /dev/null
+++ b/components-starter/camel-jpa-starter/src/main/docs/jpa.json
@@ -0,0 +1,82 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jpa",
+      "type": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jpa.aliases",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Maps an alias to a JPA entity class. The alias can then be used in the endpoint URI (instead of the fully qualified class name).",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jpa.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jpa.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jpa.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jpa component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.entity-manager-factory",
+      "type": "javax.persistence.EntityManagerFactory",
+      "description": "To use the EntityManagerFactory. This is strongly recommended to configure. The option is a javax.persistence.EntityManagerFactory type.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.join-transaction",
+      "type": "java.lang.Boolean",
+      "description": "The camel-jpa component will join transaction by default. You can use this option to turn this off, for example if you use LOCAL_RESOURCE and join transaction doesn't work with your JPA provider. This option can also be set globally on the JpaComponent, instead of having to set it on all endpoints.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jpa.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jpa.shared-entity-manager",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use Spring's SharedEntityManager for the consumer\/producer. Note in most cases joinTransaction should be set to false as this is not an EXTENDED EntityManager.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jpa.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "To use the PlatformTransactionManager for managing transactions. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jsch-starter/src/main/docs/jsch.json b/components-starter/camel-jsch-starter/src/main/docs/jsch.json
new file mode 100644
index 0000000..c3b6813
--- /dev/null
+++ b/components-starter/camel-jsch-starter/src/main/docs/jsch.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.scp",
+      "type": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.scp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.scp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.scp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the scp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.scp.verbose-logging",
+      "type": "java.lang.Boolean",
+      "description": "JSCH is verbose logging out of the box. Therefore we turn the logging down to DEBUG logging by default. But setting this option to true turns on the verbose logging again.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jslt-starter/src/main/docs/jslt.json b/components-starter/camel-jslt-starter/src/main/docs/jslt.json
new file mode 100644
index 0000000..6c3cb6a
--- /dev/null
+++ b/components-starter/camel-jslt-starter/src/main/docs/jslt.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jslt",
+      "type": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jslt.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jslt.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jslt.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jslt.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jslt.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jslt component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jslt.functions",
+      "type": "java.util.Collection<com.schibsted.spt.data.jslt.Function>",
+      "description": "JSLT can be extended by plugging in functions written in Java.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jslt.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jslt.object-filter",
+      "type": "com.schibsted.spt.data.jslt.filters.JsonFilter",
+      "description": "JSLT can be extended by plugging in a custom jslt object filter. The option is a com.schibsted.spt.data.jslt.filters.JsonFilter type.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-json-patch-starter/src/main/docs/json-patch.json b/components-starter/camel-json-patch-starter/src/main/docs/json-patch.json
new file mode 100644
index 0000000..3a4b60b
--- /dev/null
+++ b/components-starter/camel-json-patch-starter/src/main/docs/json-patch.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.json-patch",
+      "type": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-patch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.json-patch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.json-patch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.json-patch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-patch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-patch.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-json-validator-starter/src/main/docs/json-validator.json b/components-starter/camel-json-validator-starter/src/main/docs/json-validator.json
new file mode 100644
index 0000000..7f13d78
--- /dev/null
+++ b/components-starter/camel-json-validator-starter/src/main/docs/json-validator.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.json-validator",
+      "type": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-validator.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.json-validator.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.json-validator.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.json-validator.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-validator component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-validator.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jsonapi-starter/src/main/docs/jsonapi.json b/components-starter/camel-jsonapi-starter/src/main/docs/jsonapi.json
new file mode 100644
index 0000000..729b89a
--- /dev/null
+++ b/components-starter/camel-jsonapi-starter/src/main/docs/jsonapi.json
@@ -0,0 +1,41 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.jsonapi",
+      "type": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.jsonapi.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.data-format-types",
+      "type": "java.lang.Class<java.lang.Object>[]",
+      "description": "The classes to take into account for the marshalling",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jsonApi data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.main-format-type",
+      "type": "java.lang.Class<java.lang.Object>",
+      "description": "The classes to take into account while unmarshalling",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jsonata-starter/src/main/docs/jsonata.json b/components-starter/camel-jsonata-starter/src/main/docs/jsonata.json
new file mode 100644
index 0000000..0669f0e
--- /dev/null
+++ b/components-starter/camel-jsonata-starter/src/main/docs/jsonata.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jsonata",
+      "type": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jsonata.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jsonata.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jsonata.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jsonata.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jsonata component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jsonata.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jsonb-starter/src/main/docs/jsonb.json b/components-starter/camel-jsonb-starter/src/main/docs/jsonb.json
new file mode 100644
index 0000000..2d747a9
--- /dev/null
+++ b/components-starter/camel-jsonb-starter/src/main/docs/jsonb.json
@@ -0,0 +1,48 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-jsonb",
+      "type": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-jsonb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-jsonb data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing Jsonb instance with the given id.",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jsonpath-starter/src/main/docs/jsonpath.json b/components-starter/camel-jsonpath-starter/src/main/docs/jsonpath.json
new file mode 100644
index 0000000..11c216d
--- /dev/null
+++ b/components-starter/camel-jsonpath-starter/src/main/docs/jsonpath.json
@@ -0,0 +1,76 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.jsonpath",
+      "type": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.jsonpath.allow-easy-predicate",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow using the easy predicate parser to pre-parse predicates.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.jsonpath.allow-simple",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow in inlined Simple exceptions in the JSONPath expression",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.jsonpath.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.jsonpath.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jsonpath language. This is enabled by default.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.header-name",
+      "type": "java.lang.String",
+      "description": "Name of header to use as input, instead of the message body",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.option",
+      "type": "java.lang.String",
+      "description": "To configure additional options on JSONPath. Multiple values can be separated by comma.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.suppress-exceptions",
+      "type": "java.lang.Boolean",
+      "description": "Whether to suppress exceptions such as PathNotFoundException.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.jsonpath.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.jsonpath.write-as-string",
+      "type": "java.lang.Boolean",
+      "description": "Whether to write the output of each row\/element as a JSON String value instead of a Map\/POJO value.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-jt400-starter/src/main/docs/jt400.json b/components-starter/camel-jt400-starter/src/main/docs/jt400.json
new file mode 100644
index 0000000..0529337
--- /dev/null
+++ b/components-starter/camel-jt400-starter/src/main/docs/jt400.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jt400",
+      "type": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jt400.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jt400.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jt400.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jt400.connection-pool",
+      "type": "com.ibm.as400.access.AS400ConnectionPool",
+      "description": "Default connection pool used by the component. Note that this pool is lazily initialized. This is because in a scenario where the user always provides a pool, it would be wasteful for Camel to initialize and keep an idle pool. The option is a com.ibm.as400.access.AS400ConnectionPool type.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jt400.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jt400.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jt400 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jt400.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-kafka-starter/src/main/docs/kafka.json b/components-starter/camel-kafka-starter/src/main/docs/kafka.json
new file mode 100644
index 0000000..851ef8f
--- /dev/null
+++ b/components-starter/camel-kafka-starter/src/main/docs/kafka.json
@@ -0,0 +1,720 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kafka",
+      "type": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kafka.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.allow-manual-commit",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow doing manual commits via KafkaManualCommit. If this option is enabled then an instance of KafkaManualCommit is stored on the Exchange message header, which allows end users to access this API and perform manual offset commits via the Kafka consumer.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.auto-commit-enable",
+      "type": "java.lang.Boolean",
+      "description": "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer. This committed offset will be used when the process fails as the position from which the new consumer will begin.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.auto-commit-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The frequency in ms that the consumer offsets are committed to zookeeper.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.kafka.auto-commit-on-stop",
+      "type": "java.lang.String",
+      "description": "Whether to perform an explicit auto commit when the consumer stops to ensure the broker has a commit from the last consumed message. This requires the option autoCommitEnable is turned on. The possible values are: sync, async, or none. And sync is the default value.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "sync"
+    },
+    {
+      "name": "camel.component.kafka.auto-offset-reset",
+      "type": "java.lang.String",
+      "description": "What to do when there is no initial offset in ZooKeeper or if an offset is out of range: earliest : automatically reset the offset to the earliest offset latest : automatically reset the offset to the latest offset fail: throw exception to the consumer",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.kafka.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.break-on-first-error",
+      "type": "java.lang.Boolean",
+      "description": "This options controls what happens when a consumer is processing an exchange and it fails. If the option is false then the consumer continues to the next message and processes it. If the option is true then the consumer breaks out, and will seek back to offset of the message that caused a failure, and then re-attempt to process this message. However this can lead to endless processing of the same message if its bound to fail every time, eg a poison message. Therefore its recommended to deal with that for example by using Camel's error handler.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.brokers",
+      "type": "java.lang.String",
+      "description": "URL of the Kafka brokers to use. The format is host1:port1,host2:port2, and the list can be a subset of brokers or a VIP pointing to a subset of brokers. This option is known as bootstrap.servers in the Kafka documentation.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.buffer-memory-size",
+      "type": "java.lang.Integer",
+      "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will either block or throw an exception based on the preference specified by block.on.buffer.full.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be used for compression (if compression is enabled) as well as for maintaining in-flight requests.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 33554432
+    },
+    {
+      "name": "camel.component.kafka.check-crcs",
+      "type": "java.lang.Boolean",
+      "description": "Automatically check the CRC32 of the records consumed. This ensures no on-the-wire or on-disk corruption to the messages occurred. This check adds some overhead, so it may be disabled in cases seeking extreme performance.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.client-id",
+      "type": "java.lang.String",
+      "description": "The client id is a user-specified string sent in each request to help trace calls. It should logically identify the application making the request.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum time, in milliseconds, that the code will wait for a synchronous commit to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.kafka.compression-codec",
+      "type": "java.lang.String",
+      "description": "This parameter allows you to specify the compression codec for all data generated by this producer. Valid values are none, gzip and snappy.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "none"
+    },
+    {
+      "name": "camel.component.kafka.configuration",
+      "type": "org.apache.camel.component.kafka.KafkaConfiguration",
+      "description": "Allows to pre-configure the Kafka component with common options that the endpoints will reuse. The option is a org.apache.camel.component.kafka.KafkaConfiguration type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.connection-max-idle-ms",
+      "type": "java.lang.Integer",
+      "description": "Close idle connections after the number of milliseconds specified by this config.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 540000
+    },
+    {
+      "name": "camel.component.kafka.consumer-request-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 40000
+    },
+    {
+      "name": "camel.component.kafka.consumers-count",
+      "type": "java.lang.Integer",
+      "description": "The number of consumers that connect to kafka server. Each consumer is run on a separate thread, that retrieves and process the incoming data.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.kafka.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kafka.delivery-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "An upper bound on the time to report success or failure after a call to send() returns. This limits the total time that a record will be delayed prior to sending, the time to await acknowledgement from the broker (if expected), and the time allowed for retriable send failures.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.kafka.enable-idempotence",
+      "type": "java.lang.Boolean",
+      "description": "If set to 'true' the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries may write duplicates of the retried message in the stream. If set to true this option will require max.in.flight.requests.per.connection to be set to 1 and retries cannot be zero and additionally acks must be set to 'all'.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kafka component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.fetch-max-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data the server should return for a fetch request This is not an absolute maximum, if the first message in the first non-empty partition of the fetch is larger than this value, the message will still be returned to ensure that the consumer can make progress. The maximum message size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config). Note that the consumer performs multiple fetches in parallel.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 52428800
+    },
+    {
+      "name": "camel.component.kafka.fetch-min-bytes",
+      "type": "java.lang.Integer",
+      "description": "The minimum amount of data the server should return for a fetch request. If insufficient data is available the request will wait for that much data to accumulate before answering the request.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.kafka.fetch-wait-max-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time the server will block before answering the fetch request if there isn't sufficient data to immediately satisfy fetch.min.bytes",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.kafka.group-id",
+      "type": "java.lang.String",
+      "description": "A string that uniquely identifies the group of consumer processes to which this consumer belongs. By setting the same group id multiple processes indicate that they are all part of the same consumer group. This option is required for consumers.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.group-instance-id",
+      "type": "java.lang.String",
+      "description": "A unique identifier of the consumer instance provided by the end user. Only non-empty strings are permitted. If set, the consumer is treated as a static member, which means that only one instance with this ID is allowed in the consumer group at any time. This can be used in combination with a larger session timeout to avoid group rebalances caused by transient unavailability (e.g. process restarts). If not set, the consumer will join the group as a dynamic member, which is the traditional behavior.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.header-deserializer",
+      "type": "org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer",
+      "description": "To use a custom KafkaHeaderDeserializer to deserialize kafka headers values. The option is a org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.header-serializer",
+      "type": "org.apache.camel.component.kafka.serde.KafkaHeaderSerializer",
+      "description": "To use a custom KafkaHeaderSerializer to serialize kafka headers values. The option is a org.apache.camel.component.kafka.serde.KafkaHeaderSerializer type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The expected time between heartbeats to the consumer coordinator when using Kafka's group management facilities. Heartbeats are used to ensure that the consumer's session stays active and to facilitate rebalancing when new consumers join or leave the group. The value must be set lower than session.timeout.ms, but typically should be set no higher than 1\/3 of that value. It can be adjusted even lower to control the expected time for normal rebalances.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 3000
+    },
+    {
+      "name": "camel.component.kafka.interceptor-classes",
+      "type": "java.lang.String",
+      "description": "Sets interceptors for producer or consumers. Producer interceptors have to be classes implementing org.apache.kafka.clients.producer.ProducerInterceptor Consumer interceptors have to be classes implementing org.apache.kafka.clients.consumer.ConsumerInterceptor Note that if you use Producer interceptor on a consumer it will throw a class cast exception in runtime",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kafka-client-factory",
+      "type": "org.apache.camel.component.kafka.KafkaClientFactory",
+      "description": "Factory to use for creating org.apache.kafka.clients.consumer.KafkaConsumer and org.apache.kafka.clients.producer.KafkaProducer instances. This allows to configure a custom factory to create instances with logic that extends the vanilla Kafka clients. The option is a org.apache.camel.component.kafka.KafkaClientFactory type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kafka-manual-commit-factory",
+      "type": "org.apache.camel.component.kafka.KafkaManualCommitFactory",
+      "description": "Factory to use for creating KafkaManualCommit instances. This allows to plugin a custom factory to create custom KafkaManualCommit instances in case special logic is needed when doing manual commits that deviates from the default implementation that comes out of the box. The option is a org.apache.camel.component.kafka.KafkaManualCommitFactory type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-before-relogin-min-time",
+      "type": "java.lang.Integer",
+      "description": "Login thread sleep time between refresh attempts.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.kafka.kerberos-init-cmd",
+      "type": "java.lang.String",
+      "description": "Kerberos kinit command path. Default is \/usr\/bin\/kinit",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "\/usr\/bin\/kinit"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-principal-to-local-rules",
+      "type": "java.lang.String",
+      "description": "A list of rules for mapping from principal names to short names (typically operating system usernames). The rules are evaluated in order and the first rule that matches a principal name is used to map it to a short name. Any later rules in the list are ignored. By default, principal names of the form {username}\/{hostname}{REALM} are mapped to {username}. For more details on the format please see the security authorization and acls documentation.. Multiple values can be separated by comma",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "DEFAULT"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-renew-jitter",
+      "type": "java.lang.Double",
+      "description": "Percentage of random jitter added to the renewal time.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-renew-window-factor",
+      "type": "java.lang.Double",
+      "description": "Login thread will sleep until the specified window factor of time from last refresh to ticket's expiry has been reached, at which time it will try to renew the ticket.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.key",
+      "type": "java.lang.String",
+      "description": "The record key (or null if no key is specified). If this option has been configured then it take precedence over header KafkaConstants#KEY",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.key-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for key that implements the Deserializer interface.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.kafka.key-serializer",
+      "type": "java.lang.String",
+      "description": "The serializer class for keys (defaults to the same as for messages if nothing is given).",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.kafka.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.linger-ms",
+      "type": "java.lang.Integer",
+      "description": "The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay that is, rather than immediately sending out a record the producer will wait for up to the given delay to allow other records to be sent so that the sends can be batched together. This can be thought of as analogous to Nagle's algorithm in TCP. This setting gives the upper bound on the delay for batching: once we get batch.size worth of records for a partition it will be sent immediately regardless of this setting, however if we have fewer than this many bytes accumulated for this partition we will 'linger' for the specified time waiting for more records to show up. This setting defaults to 0 (i.e. no delay). Setting linger.ms=5, for example, would have the effect of reducing the number of requests sent but would add up to 5ms of latency to records sent in the absense of load.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.kafka.max-block-ms",
+      "type": "java.lang.Integer",
+      "description": "The configuration controls how long sending to kafka will block. These methods can be blocked for multiple reasons. For e.g: buffer full, metadata unavailable.This configuration imposes maximum limit on the total time spent in fetching metadata, serialization of key and value, partitioning and allocation of buffer memory when doing a send(). In case of partitionsFor(), this configuration imposes a maximum time threshold on waiting for metadata",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.kafka.max-in-flight-request",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled).",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.kafka.max-partition-fetch-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data per-partition the server will return. The maximum total memory used for a request will be #partitions max.partition.fetch.bytes. This size must be at least as large as the maximum message size the server allows or else it is possible for the producer to send messages larger than the consumer can fetch. If that happens, the consumer can get stuck trying to fetch a large message on a certain partition.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.kafka.max-poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records. If poll() is not called before expiration of this timeout, then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.max-poll-records",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records returned in a single call to poll()",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.kafka.max-request-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of a request. This is also effectively a cap on the maximum record size. Note that the server has its own cap on record size which may be different from this. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.kafka.metadata-max-age-ms",
+      "type": "java.lang.Integer",
+      "description": "The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.kafka.metric-reporters",
+      "type": "java.lang.String",
+      "description": "A list of classes to use as metrics reporters. Implementing the MetricReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.metrics-sample-window-ms",
+      "type": "java.lang.Integer",
+      "description": "The number of samples maintained to compute metrics.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.kafka.no-of-metrics-sample",
+      "type": "java.lang.Integer",
+      "description": "The number of samples maintained to compute metrics.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.kafka.offset-repository",
+      "type": "org.apache.camel.spi.StateRepository<java.lang.String,java.lang.String>",
+      "description": "The offset repository to use in order to locally store the offset of each partition of the topic. Defining one will disable the autocommit. The option is a org.apache.camel.spi.StateRepository<java.lang.String, java.lang.String> type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.partition-assignor",
+      "type": "java.lang.String",
+      "description": "The class name of the partition assignment strategy that the client will use to distribute partition ownership amongst consumer instances when group management is used",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.consumer.RangeAssignor"
+    },
+    {
+      "name": "camel.component.kafka.partition-key",
+      "type": "java.lang.Integer",
+      "description": "The partition to which the record will be sent (or null if no partition was specified). If this option has been configured then it take precedence over header KafkaConstants#PARTITION_KEY",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.partitioner",
+      "type": "java.lang.String",
+      "description": "The partitioner class for partitioning messages amongst sub-topics. The default partitioner is based on the hash of the key.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner"
+    },
+    {
+      "name": "camel.component.kafka.poll-exception-strategy",
+      "type": "org.apache.camel.component.kafka.PollExceptionStrategy",
+      "description": "To use a custom strategy with the consumer to control how to handle exceptions thrown from the Kafka broker while pooling messages. The option is a org.apache.camel.component.kafka.PollExceptionStrategy type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.poll-on-error",
+      "type": "org.apache.camel.component.kafka.PollOnError",
+      "description": "What to do if kafka threw an exception while polling for new messages. Will by default use the value from the component configuration unless an explicit value has been configured on the endpoint level. DISCARD will discard the message and continue to poll next message. ERROR_HANDLER will use Camel's error handler to process the exception, and afterwards continue to poll next message. RECONNECT will re-connect the consumer and try poll the message again RETRY will let the consumer retry polling the same message again STOP will stop the consumer (have to be manually started\/restarted if the consumer should be able to consume messages again)",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.poll-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The timeout used when polling the KafkaConsumer. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.kafka.producer-batch-size",
+      "type": "java.lang.Integer",
+      "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size.Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent.A small batch size will make batching less common and may reduce throughput (a batch size of zero will disable batching entirely). A very large batch size may use memory a bit more wastefully as we will always allocate a buffer of the specified batch size in anticipation of additional records.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 16384
+    },
+    {
+      "name": "camel.component.kafka.queue-buffering-max-messages",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of unsent messages that can be queued up the producer when using async mode before either the producer must be blocked or data must be dropped.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.kafka.receive-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.kafka.reconnect-backoff-max-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.kafka.reconnect-backoff-ms",
+      "type": "java.lang.Integer",
+      "description": "The amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all requests sent by the consumer to the broker.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.kafka.record-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should store the RecordMetadata results from sending to Kafka. The results are stored in a List containing the RecordMetadata metadata's. The list is stored on a header with the key KafkaConstants#KAFKA_RECORDMETA",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.request-required-acks",
+      "type": "java.lang.String",
+      "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are common: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and the retries configuration will not take effect (as the client won't generally know of any failures). The offset given back for each record will always be set to -1. acks=1 This will mean the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers. In this case should the leader fail immediately after acknowledging the record but before the followers have replicated it then the record will be lost. acks=all This means the leader will wait for the full set of in-sync replicas to acknowledge the record. This guarantees that the record will not be lost as long as at least one in-sync replica remains alive. This is the strongest available guarantee.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "1"
+    },
+    {
+      "name": "camel.component.kafka.request-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The amount of time the broker will wait trying to meet the request.required.acks requirement before sending back an error to the client.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.kafka.resume-strategy",
+      "type": "org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy",
+      "description": "This option allows the user to set a custom resume strategy. The resume strategy is executed when partitions are assigned (i.e.: when connecting or reconnecting). It allows implementations to customize how to resume operations and serve as more flexible alternative to the seekTo and the offsetRepository mechanisms. See the KafkaConsumerResumeStrategy for implementation details. This option does not affect the auto commit setting. It is likely that implementations using this setting will also want to evaluate using the manual commit option along with this. The option is a org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.retries",
+      "type": "java.lang.Integer",
+      "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries will potentially change the ordering of records because if two records are sent to a single partition, and the first fails and is retried but the second succeeds, then the second record may appear first.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.kafka.retry-backoff-ms",
+      "type": "java.lang.Integer",
+      "description": "Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been elected. Since leader election takes a bit of time, this property specifies the amount of time that the producer waits before refreshing the metadata.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.kafka.sasl-jaas-config",
+      "type": "java.lang.String",
+      "description": "Expose the kafka sasl.jaas.config parameter Example: org.apache.kafka.common.security.plain.PlainLoginModule required username=USERNAME password=PASSWORD;",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.sasl-kerberos-service-name",
+      "type": "java.lang.String",
+      "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's config.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.sasl-mechanism",
+      "type": "java.lang.String",
+      "description": "The Simple Authentication and Security Layer (SASL) Mechanism used. For the valid values see http:\/\/www.iana.org\/assignments\/sasl-mechanisms\/sasl-mechanisms.xhtml",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "GSSAPI"
+    },
+    {
+      "name": "camel.component.kafka.schema-registry-u-r-l",
+      "type": "java.lang.String",
+      "description": "URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema.registry.url in the Confluent Platform documentation. This option is only available in the Confluent Platform (not standard Apache Kafka)",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.security-protocol",
+      "type": "java.lang.String",
+      "description": "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT and SSL are supported",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "PLAINTEXT"
+    },
+    {
+      "name": "camel.component.kafka.seek-to",
+      "type": "java.lang.String",
+      "description": "Set if KafkaConsumer will read from beginning or end on startup: beginning : read from beginning end : read from end This is replacing the earlier property seekToBeginning",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.send-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "Socket write buffer size",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 131072
+    },
+    {
+      "name": "camel.component.kafka.session-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The timeout used to detect failures when using Kafka's group management facilities.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.kafka.shutdown-timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in milliseconds to wait gracefully for the consumer or producer to shutdown and terminate its worker threads.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.kafka.specific-avro-reader",
+      "type": "java.lang.Boolean",
+      "description": "This enables the use of a specific Avro reader for use with the Confluent Platform schema registry and the io.confluent.kafka.serializers.KafkaAvroDeserializer. This option is only available in the Confluent Platform (not standard Apache Kafka)",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.ssl-cipher-suites",
+      "type": "java.lang.String",
+      "description": "A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol.By default all the available cipher suites are supported.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using a Camel SSLContextParameters object. If configured it's applied before the other SSL endpoint parameters. NOTE: Kafka only supports loading keystore from file locations, so prefix the location with file: in the KeyStoreParameters.resource option. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-enabled-protocols",
+      "type": "java.lang.String",
+      "description": "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-endpoint-algorithm",
+      "type": "java.lang.String",
+      "description": "The endpoint identification algorithm to validate server hostname using server certificate.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "https"
+    },
+    {
+      "name": "camel.component.kafka.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password of the private key in the key store file. This is optional for client.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keymanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "SunX509"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keystore-location",
+      "type": "java.lang.String",
+      "description": "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keystore-password",
+      "type": "java.lang.String",
+      "description": "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keystore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the key store file. This is optional for client. Default value is JKS",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.kafka.ssl-protocol",
+      "type": "java.lang.String",
+      "description": "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-provider",
+      "type": "java.lang.String",
+      "description": "The name of the security provider used for SSL connections. Default value is the default security provider of the JVM.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-trustmanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "PKIX"
+    },
+    {
+      "name": "camel.component.kafka.ssl-truststore-location",
+      "type": "java.lang.String",
+      "description": "The location of the trust store file.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-truststore-password",
+      "type": "java.lang.String",
+      "description": "The password for the trust store file.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-truststore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the trust store file. Default value is JKS.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.kafka.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.topic-is-pattern",
+      "type": "java.lang.Boolean",
+      "description": "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.value-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for value that implements the Deserializer interface.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.kafka.value-serializer",
+      "type": "java.lang.String",
+      "description": "The serializer class for messages.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.kafka.worker-pool",
+      "type": "java.util.concurrent.ExecutorService",
+      "description": "To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. If using this option then you must handle the lifecycle of the thread pool to shut the pool down when no longer needed. The option is a java.util.concurrent.ExecutorService type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.worker-pool-core-size",
+      "type": "java.lang.Integer",
+      "description": "Number of core threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.kafka.worker-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 20
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-kamelet-reify-starter/src/main/docs/kamelet-reify.json b/components-starter/camel-kamelet-reify-starter/src/main/docs/kamelet-reify.json
new file mode 100644
index 0000000..3ae3750
--- /dev/null
+++ b/components-starter/camel-kamelet-reify-starter/src/main/docs/kamelet-reify.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kamelet-reify",
+      "type": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet-reify.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kamelet-reify.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kamelet-reify.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kamelet-reify.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kamelet-reify.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kamelet-reify component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet-reify.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-kamelet-starter/src/main/docs/kamelet.json b/components-starter/camel-kamelet-starter/src/main/docs/kamelet.json
new file mode 100644
index 0000000..daf7df9
--- /dev/null
+++ b/components-starter/camel-kamelet-starter/src/main/docs/kamelet.json
@@ -0,0 +1,89 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kamelet",
+      "type": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kamelet.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kamelet.block",
+      "type": "java.lang.Boolean",
+      "description": "If sending a message to a kamelet endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kamelet.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kamelet.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kamelet.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kamelet component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kamelet.location",
+      "type": "java.lang.String",
+      "description": "The location(s) of the Kamelets on the file system. Multiple locations can be set separated by comma.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": "classpath:\/kamelets"
+    },
+    {
+      "name": "camel.component.kamelet.route-properties",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Set route local parameters.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.route-template-loader-listener",
+      "type": "org.apache.camel.spi.RouteTemplateLoaderListener",
+      "description": "To plugin a custom listener for when the Kamelet component is loading Kamelets from external resources. The option is a org.apache.camel.spi.RouteTemplateLoaderListener type.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.template-properties",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Set template local parameters.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout value to use if block is enabled.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": 30000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-kubernetes-starter/src/main/docs/kubernetes.json b/components-starter/camel-kubernetes-starter/src/main/docs/kubernetes.json
new file mode 100644
index 0000000..e938250
--- /dev/null
+++ b/components-starter/camel-kubernetes-starter/src/main/docs/kubernetes.json
@@ -0,0 +1,772 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.kubernetes",
+      "type": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps",
+      "type": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources",
+      "type": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments",
+      "type": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa",
+      "type": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-job",
+      "type": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-job.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces",
+      "type": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes",
+      "type": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes",
+      "type": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims",
+      "type": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-pods",
+      "type": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-pods.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers",
+      "type": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota",
+      "type": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets",
+      "type": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts",
+      "type": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-services",
+      "type": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-services.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openshift-build-configs",
+      "type": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-build-configs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openshift-builds",
+      "type": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-builds.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.kubernetes.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.cluster-labels",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set the labels used to identify the pods composing the cluster.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.config-map-name",
+      "type": "java.lang.String",
+      "description": "Set the name of the ConfigMap used to do optimistic locking (defaults to 'leaders').",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.connection-timeout-millis",
+      "type": "java.lang.Integer",
+      "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes API server.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the Kubernetes cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.kubernetes.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.jitter-factor",
+      "type": "java.lang.Double",
+      "description": "A jitter factor to apply in order to prevent all pods to call Kubernetes APIs in the same instant.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.kubernetes-namespace",
+      "type": "java.lang.String",
+      "description": "Set the name of the Kubernetes namespace containing the pods and the configmap (autodetected by default)",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.lease-duration-millis",
+      "type": "java.lang.Long",
+      "description": "The default duration of the lease for the current leader.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.master-url",
+      "type": "java.lang.String",
+      "description": "Set the URL of the Kubernetes master (read from Kubernetes client properties by default).",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.pod-name",
+      "type": "java.lang.String",
+      "description": "Set the name of the current pod (autodetected from container host name by default).",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.renew-deadline-millis",
+      "type": "java.lang.Long",
+      "description": "The deadline after which the leader must stop its services because it may have lost the leadership.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.retry-period-millis",
+      "type": "java.lang.Long",
+      "description": "The time between two subsequent attempts to check and acquire the leadership. It is randomized using the jitter factor.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-config-maps component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-custom-resources component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-deployments component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-hpa component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-job.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-job.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-job.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-job.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-job component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-job.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-namespaces component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-nodes component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-persistent-volumes-claims component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-persistent-volumes component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-pods.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-pods.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-pods.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-pods.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-pods component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-pods.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-replication-controllers component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-resources-quota component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-secrets component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-service-accounts component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-services.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-services.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-services.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-services.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-services component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-services.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openshift-build-configs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openshift-build-configs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openshift-build-configs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openshift-build-configs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-build-configs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openshift-builds.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openshift-builds.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openshift-builds.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openshift-builds component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-builds.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-kudu-starter/src/main/docs/kudu.json b/components-starter/camel-kudu-starter/src/main/docs/kudu.json
new file mode 100644
index 0000000..640cf21
--- /dev/null
+++ b/components-starter/camel-kudu-starter/src/main/docs/kudu.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kudu",
+      "type": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kudu.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kudu.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kudu.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kudu.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kudu component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kudu.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-language-starter/src/main/docs/language.json b/components-starter/camel-language-starter/src/main/docs/language.json
new file mode 100644
index 0000000..d221c66
--- /dev/null
+++ b/components-starter/camel-language-starter/src/main/docs/language.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.language",
+      "type": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.language.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.language.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.language.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.language.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the language component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.language.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ldap-starter/src/main/docs/ldap.json b/components-starter/camel-ldap-starter/src/main/docs/ldap.json
new file mode 100644
index 0000000..85cc0d3
--- /dev/null
+++ b/components-starter/camel-ldap-starter/src/main/docs/ldap.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ldap",
+      "type": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ldap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ldap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ldap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ldap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ldif-starter/src/main/docs/ldif.json b/components-starter/camel-ldif-starter/src/main/docs/ldif.json
new file mode 100644
index 0000000..f0c848e
--- /dev/null
+++ b/components-starter/camel-ldif-starter/src/main/docs/ldif.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ldif",
+      "type": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldif.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ldif.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ldif.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ldif.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ldif component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldif.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-leveldb-legacy-starter/src/main/docs/leveldb-legacy.json b/components-starter/camel-leveldb-legacy-starter/src/main/docs/leveldb-legacy.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-leveldb-legacy-starter/src/main/docs/leveldb-legacy.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-leveldb-starter/src/main/docs/leveldb.json b/components-starter/camel-leveldb-starter/src/main/docs/leveldb.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-leveldb-starter/src/main/docs/leveldb.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-log-starter/src/main/docs/log.json b/components-starter/camel-log-starter/src/main/docs/log.json
new file mode 100644
index 0000000..e2d95e8
--- /dev/null
+++ b/components-starter/camel-log-starter/src/main/docs/log.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.log",
+      "type": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration"
+    },
+    {
+      "name": "camel.component.log.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.log.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.log.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.log.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the log component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration"
+    },
+    {
+      "name": "camel.component.log.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration"
+    },
+    {
+      "name": "camel.component.log.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-lra-starter/src/main/docs/lra.json b/components-starter/camel-lra-starter/src/main/docs/lra.json
new file mode 100644
index 0000000..5d50b5d
--- /dev/null
+++ b/components-starter/camel-lra-starter/src/main/docs/lra.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.lra",
+      "type": "org.apache.camel.service.lra.springboot.LraServiceConfiguration",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.lra.coordinator-context-path",
+      "type": "java.lang.String",
+      "description": "The context path of the LRA coordinator service",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    },
+    {
+      "name": "camel.lra.coordinator-url",
+      "type": "java.lang.String",
+      "description": "The base URL of the LRA coordinator service (e.g. http:\/\/lra-host:8080)",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    },
+    {
+      "name": "camel.lra.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable component auto-configuration, default is true.",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.lra.local-participant-context-path",
+      "type": "java.lang.String",
+      "description": "The context path of the local participant callback services",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    },
+    {
+      "name": "camel.lra.local-participant-url",
+      "type": "java.lang.String",
+      "description": "The local URL where the coordinator should send callbacks to (e.g. http:\/\/my-host-name:8080)",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-lucene-starter/src/main/docs/lucene.json b/components-starter/camel-lucene-starter/src/main/docs/lucene.json
new file mode 100644
index 0000000..82adf3a
--- /dev/null
+++ b/components-starter/camel-lucene-starter/src/main/docs/lucene.json
@@ -0,0 +1,73 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.lucene",
+      "type": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.lucene.analyzer",
+      "type": "org.apache.lucene.analysis.Analyzer",
+      "description": "An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index terms from text. The value for analyzer can be any class that extends the abstract class org.apache.lucene.analysis.Analyzer. Lucene also offers a rich set of analyzers out of the box. The option is a org.apache.lucene.analysis.Analyzer type.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.lucene.config",
+      "type": "org.apache.camel.component.lucene.LuceneConfiguration",
+      "description": "To use a shared lucene configuration. The option is a org.apache.camel.component.lucene.LuceneConfiguration type.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.lucene.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lucene component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.index-dir",
+      "type": "java.io.File",
+      "description": "A file system directory in which index files are created upon analysis of the document by the specified analyzer",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.lucene.max-hits",
+      "type": "java.lang.Integer",
+      "description": "An integer value that limits the result set of the search operation",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.src-dir",
+      "type": "java.io.File",
+      "description": "An optional directory containing files to be used to be analyzed and added to the index at producer startup.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-lumberjack-starter/src/main/docs/lumberjack.json b/components-starter/camel-lumberjack-starter/src/main/docs/lumberjack.json
new file mode 100644
index 0000000..a719056
--- /dev/null
+++ b/components-starter/camel-lumberjack-starter/src/main/docs/lumberjack.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.lumberjack",
+      "type": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lumberjack.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.lumberjack.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.lumberjack.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.lumberjack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.lumberjack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lumberjack component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lumberjack.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Sets the default SSL configuration to use for all the endpoints. You can also configure it directly at the endpoint level. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lumberjack.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-lzf-starter/src/main/docs/lzf.json b/components-starter/camel-lzf-starter/src/main/docs/lzf.json
new file mode 100644
index 0000000..fef17fd
--- /dev/null
+++ b/components-starter/camel-lzf-starter/src/main/docs/lzf.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.lzf",
+      "type": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.lzf.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.lzf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.lzf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lzf data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.lzf.using-parallel-compression",
+      "type": "java.lang.Boolean",
+      "description": "Enable encoding (compress) using multiple processing cores.",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mail-starter/src/main/docs/mail.json b/components-starter/camel-mail-starter/src/main/docs/mail.json
new file mode 100644
index 0000000..d5f0944
--- /dev/null
+++ b/components-starter/camel-mail-starter/src/main/docs/mail.json
@@ -0,0 +1,367 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mail",
+      "type": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart",
+      "type": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mail.additional-java-mail-properties",
+      "type": "java.util.Properties",
+      "description": "Sets additional java mail properties, that will append\/override any default properties that is set based on all the other options. This is useful if you need to add some special options but want to keep the others as is. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.alternative-body-header",
+      "type": "java.lang.String",
+      "description": "Specifies the key to an IN message header that contains an alternative email body. For example, if you send emails in text\/html format and want to provide an alternative mail body for non-HTML email clients, set the alternative mail body with this key as a header.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "CamelMailAlternativeBody"
+    },
+    {
+      "name": "camel.component.mail.attachments-content-transfer-encoding-resolver",
+      "type": "org.apache.camel.component.mail.AttachmentsContentTransferEncodingResolver",
+      "description": "To use a custom AttachmentsContentTransferEncodingResolver to resolve what content-type-encoding to use for attachments. The option is a org.apache.camel.component.mail.AttachmentsContentTransferEncodingResolver type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.authenticator",
+      "type": "org.apache.camel.component.mail.MailAuthenticator",
+      "description": "The authenticator for login. If set then the password and username are ignored. Can be used for tokens which can expire and therefore must be read dynamically. The option is a org.apache.camel.component.mail.MailAuthenticator type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.bcc",
+      "type": "java.lang.String",
+      "description": "Sets the BCC email address. Separate multiple email addresses with comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.cc",
+      "type": "java.lang.String",
+      "description": "Sets the CC email address. Separate multiple email addresses with comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.close-folder",
+      "type": "java.lang.Boolean",
+      "description": "Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.configuration",
+      "type": "org.apache.camel.component.mail.MailConfiguration",
+      "description": "Sets the Mail configuration. The option is a org.apache.camel.component.mail.MailConfiguration type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "The connection timeout in milliseconds.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.mail.content-type",
+      "type": "java.lang.String",
+      "description": "The mail message content type. Use text\/html for HTML mails.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "text\/plain"
+    },
+    {
+      "name": "camel.component.mail.content-type-resolver",
+      "type": "org.apache.camel.component.mail.ContentTypeResolver",
+      "description": "Resolver to determine Content-Type for file attachments. The option is a org.apache.camel.component.mail.ContentTypeResolver type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.copy-to",
+      "type": "java.lang.String",
+      "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mail.debug-mode",
+      "type": "java.lang.Boolean",
+      "description": "Enable debug mode on the underlying mail framework. The SUN Mail framework logs the debug messages to System.out by default.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.decode-filename",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.delete",
+      "type": "java.lang.Boolean",
+      "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mail component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.fetch-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the maximum number of messages to consume during a poll. This can be used to avoid overloading a mail server, if a mailbox folder contains a lot of messages. Default value of -1 means no fetch size and all messages will be consumed. Setting the value to 0 is a special corner case, where Camel will not consume any messages at all.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.mail.folder-name",
+      "type": "java.lang.String",
+      "description": "The folder to poll.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "INBOX"
+    },
+    {
+      "name": "camel.component.mail.from",
+      "type": "java.lang.String",
+      "description": "The from email address",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "camel@localhost"
+    },
+    {
+      "name": "camel.component.mail.handle-failed-message",
+      "type": "java.lang.Boolean",
+      "description": "If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.ignore-unsupported-charset",
+      "type": "java.lang.Boolean",
+      "description": "Option to let Camel ignore unsupported charset in the local JVM when sending mails. If the charset is unsupported then charset=XXX (where XXX represents the unsupported charset) is removed from the content-type and it relies on the platform default instead.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.ignore-uri-scheme",
+      "type": "java.lang.Boolean",
+      "description": "Option to let Camel ignore unsupported charset in the local JVM when sending mails. If the charset is unsupported then charset=XXX (where XXX represents the unsupported charset) is removed from the content-type and it relies on the platform default instead.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.java-mail-properties",
+      "type": "java.util.Properties",
+      "description": "Sets the java mail options. Will clear any default properties and only use the properties provided for this method. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.java-mail-sender",
+      "type": "org.apache.camel.component.mail.JavaMailSender",
+      "description": "To use a custom org.apache.camel.component.mail.JavaMailSender for sending emails. The option is a org.apache.camel.component.mail.JavaMailSender type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.map-mail-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should map the received mail message to Camel body\/headers\/attachments. If set to true, the body of the mail message is mapped to the body of the Camel IN message, the mail headers are mapped to IN headers, and the attachments to Camel IN attachment message. If this option is set to false then the IN message contains a raw javax.mail.Message. You can retrieve this raw message by calling exchange.getIn().getBody(javax.mail.Message.class).",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.mime-decode-headers",
+      "type": "java.lang.Boolean",
+      "description": "This option enables transparent MIME decoding and unfolding for mail headers.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.move-to",
+      "type": "java.lang.String",
+      "description": "After processing a mail message, it can be moved to a mail folder with the given name. You can override this configuration value, with a header with the key moveTo, allowing you to move messages to folder names configured at runtime.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.password",
+      "type": "java.lang.String",
+      "description": "The password for login. See also setAuthenticator(MailAuthenticator).",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.peek",
+      "type": "java.lang.Boolean",
+      "description": "Will mark the javax.mail.Message as peeked before processing the mail message. This applies to IMAPMessage messages types only. By using peek the mail will not be eager marked as SEEN on the mail server, which allows us to rollback the mail message if there is an error processing in Camel.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.reply-to",
+      "type": "java.lang.String",
+      "description": "The Reply-To recipients (the receivers of the response mail). Separate multiple email addresses with a comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.session",
+      "type": "javax.mail.Session",
+      "description": "Specifies the mail session that camel should use for all mail interactions. Useful in scenarios where mail sessions are created and managed by some other resource, such as a JavaEE container. When using a custom mail session, then the hostname and port from the mail session will be used (if configured on the session). The option is a javax.mail.Session type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.skip-failed-message",
+      "type": "java.lang.Boolean",
+      "description": "If the mail consumer cannot retrieve a given mail message, then this option allows to skip the message and move on to retrieve the next mail message. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.subject",
+      "type": "java.lang.String",
+      "description": "The Subject of the message being sent. Note: Setting the subject in the header takes precedence over this option.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.to",
+      "type": "java.lang.String",
+      "description": "Sets the To email address. Separate multiple email addresses with comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.unseen",
+      "type": "java.lang.Boolean",
+      "description": "Whether to limit by unseen mails only.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.use-inline-attachments",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use disposition inline or attachment.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.username",
+      "type": "java.lang.String",
+      "description": "The username for login. See also setAuthenticator(MailAuthenticator).",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.binary-content",
+      "type": "java.lang.Boolean",
+      "description": "Defines whether the content of binary parts in the MIME multipart is binary (true) or Base-64 encoded (false) Default is false.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mime-multipart data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.headers-inline",
+      "type": "java.lang.Boolean",
+      "description": "Defines whether the MIME-Multipart headers are part of the message body (true) or are set as Camel headers (false). Default is false.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.include-headers",
+      "type": "java.lang.String",
+      "description": "A regex that defines which Camel headers are also included as MIME headers into the MIME multipart. This will only work if headersInline is set to true. Default is to include no headers",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.multipart-sub-type",
+      "type": "java.lang.String",
+      "description": "Specify the subtype of the MIME Multipart. Default is mixed.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": "mixed"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.multipart-without-attachment",
+      "type": "java.lang.Boolean",
+      "description": "Defines whether a message without attachment is also marshaled into a MIME Multipart (with only one body part). Default is false.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-master-starter/src/main/docs/master.json b/components-starter/camel-master-starter/src/main/docs/master.json
new file mode 100644
index 0000000..f003f03
--- /dev/null
+++ b/components-starter/camel-master-starter/src/main/docs/master.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.master",
+      "type": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.master.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.master.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.master.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.master.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.master.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the master component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.master.service",
+      "type": "org.apache.camel.cluster.CamelClusterService",
+      "description": "Inject the service to use. The option is a org.apache.camel.cluster.CamelClusterService type.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.master.service-selector",
+      "type": "org.apache.camel.cluster.CamelClusterService$Selector",
+      "description": "Inject the service selector used to lookup the CamelClusterService to use. The option is a org.apache.camel.cluster.CamelClusterService.Selector type.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-metrics-starter/src/main/docs/metrics.json b/components-starter/camel-metrics-starter/src/main/docs/metrics.json
new file mode 100644
index 0000000..b42f8d5
--- /dev/null
+++ b/components-starter/camel-metrics-starter/src/main/docs/metrics.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.metrics",
+      "type": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.metrics.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.metrics.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.metrics.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.metrics.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the metrics component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.metrics.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.metrics.metric-registry",
+      "type": "com.codahale.metrics.MetricRegistry",
+      "description": "To use a custom configured MetricRegistry. The option is a com.codahale.metrics.MetricRegistry type.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-micrometer-starter/src/main/docs/micrometer.json b/components-starter/camel-micrometer-starter/src/main/docs/micrometer.json
new file mode 100644
index 0000000..c550e60
--- /dev/null
+++ b/components-starter/camel-micrometer-starter/src/main/docs/micrometer.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.micrometer",
+      "type": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.micrometer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.micrometer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.micrometer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.micrometer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the micrometer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.micrometer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.micrometer.metrics-registry",
+      "type": "io.micrometer.core.instrument.MeterRegistry",
+      "description": "To use a custom configured MetricRegistry. The option is a io.micrometer.core.instrument.MeterRegistry type.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-milo-starter/src/main/docs/milo.json b/components-starter/camel-milo-starter/src/main/docs/milo.json
new file mode 100644
index 0000000..4a33d84
--- /dev/null
+++ b/components-starter/camel-milo-starter/src/main/docs/milo.json
@@ -0,0 +1,333 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.milo-client",
+      "type": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.milo-server",
+      "type": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.milo-client.allowed-security-policies",
+      "type": "java.lang.String",
+      "description": "A set of allowed security policy URIs. Default is to accept all and use the highest.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.application-name",
+      "type": "java.lang.String",
+      "description": "The application name",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": "Apache Camel adapter for Eclipse Milo"
+    },
+    {
+      "name": "camel.component.milo-client.application-uri",
+      "type": "java.lang.String",
+      "description": "The application URI",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo\/Client"
+    },
+    {
+      "name": "camel.component.milo-client.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.milo-client.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-client.channel-lifetime",
+      "type": "java.lang.Long",
+      "description": "Channel lifetime in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.client-id",
+      "type": "java.lang.String",
+      "description": "A virtual client id to force the creation of a new connection instance",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.configuration",
+      "type": "org.apache.camel.component.milo.client.MiloClientConfiguration",
+      "description": "All default options for client configurations. The option is a org.apache.camel.component.milo.client.MiloClientConfiguration type.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.milo-client.discovery-endpoint-suffix",
+      "type": "java.lang.String",
+      "description": "A suffix for endpoint URI when discovering",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.discovery-endpoint-uri",
+      "type": "java.lang.String",
+      "description": "An alternative discovery URI",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the milo-client component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-alias",
+      "type": "java.lang.String",
+      "description": "The name of the key in the keystore file",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-password",
+      "type": "java.lang.String",
+      "description": "The key password",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-store-password",
+      "type": "java.lang.String",
+      "description": "The keystore password",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-store-type",
+      "type": "java.lang.String",
+      "description": "The key store type",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-store-url",
+      "type": "java.lang.String",
+      "description": "The URL where the key should be loaded from",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-client.max-pending-publish-requests",
+      "type": "java.lang.Long",
+      "description": "The maximum number of pending publish requests",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.max-response-message-size",
+      "type": "java.lang.Long",
+      "description": "The maximum number of bytes a response message may have",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.milo-client-connection-manager",
+      "type": "org.apache.camel.component.milo.client.MiloClientConnectionManager",
+      "description": "Instance for managing client connections. The option is a org.apache.camel.component.milo.client.MiloClientConnectionManager type.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.override-host",
+      "type": "java.lang.Boolean",
+      "description": "Override the server reported endpoint host with the host from the endpoint URI.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-client.product-uri",
+      "type": "java.lang.String",
+      "description": "The product URI",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo"
+    },
+    {
+      "name": "camel.component.milo-client.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Request timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.requested-publishing-interval",
+      "type": "java.lang.Double",
+      "description": "The requested publishing interval in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.session-name",
+      "type": "java.lang.String",
+      "description": "Session name",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.application-name",
+      "type": "java.lang.String",
+      "description": "The application name",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.application-uri",
+      "type": "java.lang.String",
+      "description": "The application URI",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.milo-server.bind-addresses",
+      "type": "java.lang.String",
+      "description": "Set the addresses of the local addresses the server should bind to",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-server.build-info",
+      "type": "org.eclipse.milo.opcua.stack.core.types.structured.BuildInfo",
+      "description": "Server build info. The option is a org.eclipse.milo.opcua.stack.core.types.structured.BuildInfo type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.certificate",
+      "type": "java.security.cert.X509Certificate",
+      "description": "Server certificate. The option is a java.security.cert.X509Certificate type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.certificate-manager",
+      "type": "org.eclipse.milo.opcua.stack.core.security.CertificateManager",
+      "description": "Server certificate manager. The option is a org.eclipse.milo.opcua.stack.core.security.CertificateManager type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.certificate-validator",
+      "type": "org.eclipse.milo.opcua.stack.core.security.CertificateValidator",
+      "description": "Validator for client certificates. The option is a org.eclipse.milo.opcua.stack.core.security.CertificateValidator type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.milo-server.default-certificate-validator",
+      "type": "java.lang.String",
+      "description": "Validator for client certificates using default file based approach",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.enable-anonymous-authentication",
+      "type": "java.lang.Boolean",
+      "description": "Enable anonymous authentication, disabled by default",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-server.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the milo-server component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-server.namespace-uri",
+      "type": "java.lang.String",
+      "description": "The URI of the namespace, defaults to urn:org:apache:camel",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": "urn:org:apache:camel"
+    },
+    {
+      "name": "camel.component.milo-server.path",
+      "type": "java.lang.String",
+      "description": "The path to be appended to the end of the endpoint url. (doesn't need to start with '\/')",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.port",
+      "type": "java.lang.Integer",
+      "description": "The TCP port the server binds to",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.product-uri",
+      "type": "java.lang.String",
+      "description": "The product URI",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.security-policies",
+      "type": "java.util.Set<org.eclipse.milo.opcua.stack.core.security.SecurityPolicy>",
+      "description": "Security policies",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.security-policies-by-id",
+      "type": "java.lang.String",
+      "description": "Security policies by URI or name. Multiple policies can be separated by comma.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.user-authentication-credentials",
+      "type": "java.lang.String",
+      "description": "Set user password combinations in the form of user1:pwd1,user2:pwd2 Usernames and passwords will be URL decoded",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.username-security-policy-uri",
+      "type": "org.eclipse.milo.opcua.stack.core.security.SecurityPolicy",
+      "description": "Set the UserTokenPolicy used when",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mina-starter/src/main/docs/mina.json b/components-starter/camel-mina-starter/src/main/docs/mina.json
new file mode 100644
index 0000000..37f9e58
--- /dev/null
+++ b/components-starter/camel-mina-starter/src/main/docs/mina.json
@@ -0,0 +1,218 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mina",
+      "type": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mina.allow-default-codec",
+      "type": "java.lang.Boolean",
+      "description": "The mina component installs a default codec if both, codec is null and textline is false. Setting allowDefaultCodec to false prevents the mina component from installing a default codec as the first element in the filter chain. This is useful in scenarios where another filter must be the first in the filter chain, like the SSL filter.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.auto-start-tls",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto start SSL handshake.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.cached-address",
+      "type": "java.lang.Boolean",
+      "description": "Whether to create the InetAddress once and reuse. Setting this to false allows to pickup DNS changes in the network.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.client-mode",
+      "type": "java.lang.Boolean",
+      "description": "If the clientMode is true, mina consumer will connect the address as a TCP client.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.codec",
+      "type": "org.apache.mina.filter.codec.ProtocolCodecFactory",
+      "description": "To use a custom minda codec implementation. The option is a org.apache.mina.filter.codec.ProtocolCodecFactory type.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.configuration",
+      "type": "org.apache.camel.component.mina.MinaConfiguration",
+      "description": "To use the shared mina configuration. The option is a org.apache.camel.component.mina.MinaConfiguration type.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mina.decoder-max-line-length",
+      "type": "java.lang.Integer",
+      "description": "To set the textline protocol decoder max line length. By default the default value of Mina itself is used which are 1024.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.mina.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether to disconnect(close) from Mina session right after use. Can be used for both consumer and producer.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.disconnect-on-no-reply",
+      "type": "java.lang.Boolean",
+      "description": "If sync is enabled then this option dictates MinaConsumer if it should disconnect where there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mina component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.encoder-max-line-length",
+      "type": "java.lang.Integer",
+      "description": "To set the textline protocol encoder max line length. By default the default value of Mina itself is used which are Integer.MAX_VALUE.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.mina.encoding",
+      "type": "java.lang.String",
+      "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, Camel will use the JVM default Charset",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.filters",
+      "type": "java.util.List<org.apache.mina.core.filterchain.IoFilter>",
+      "description": "You can set a list of Mina IoFilters to use.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.lazy-session-creation",
+      "type": "java.lang.Boolean",
+      "description": "Sessions can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.maximum-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Number of worker threads in the worker pool for TCP and UDP",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 16
+    },
+    {
+      "name": "camel.component.mina.mina-logger",
+      "type": "java.lang.Boolean",
+      "description": "You can enable the Apache MINA logging filter. Apache MINA uses slf4j logging at INFO level to log all input and output.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.no-reply-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If sync is enabled this option dictates MinaConsumer which logging level to use when logging a there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.ordered-thread-pool-executor",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure SSL security. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.sync",
+      "type": "java.lang.Boolean",
+      "description": "Setting to set endpoint as one-way or request-response.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.textline",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specified or the value is false, then Object Serialization is assumed over TCP.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.textline-delimiter",
+      "type": "org.apache.camel.component.mina.MinaTextLineDelimiter",
+      "description": "Only used for TCP and if textline=true. Sets the text line delimiter to use. If none provided, Camel will use DEFAULT. This delimiter is used to mark the end of text.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.timeout",
+      "type": "java.lang.Long",
+      "description": "You can configure the timeout that specifies how long to wait for a response from a remote server. The timeout unit is in milliseconds, so 60000 is 60 seconds.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.mina.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.write-timeout",
+      "type": "java.lang.Long",
+      "description": "Maximum amount of time it should take to send data to the MINA session. Default is 10000 milliseconds.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 10000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-minio-starter/src/main/docs/minio.json b/components-starter/camel-minio-starter/src/main/docs/minio.json
new file mode 100644
index 0000000..3dded73
--- /dev/null
+++ b/components-starter/camel-minio-starter/src/main/docs/minio.json
@@ -0,0 +1,331 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.minio",
+      "type": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.minio.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Access Key or Minio Access Key. If not set camel will connect to service for anonymous access.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.auto-close-body",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true and includeBody is true, then the MinioObject.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the MinioObject stream. Setting autocloseBody to true, will close the MinioObject stream automatically.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.auto-create-bucket",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the bucket if bucket name not exist.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.bypass-governance-mode",
+      "type": "java.lang.Boolean",
+      "description": "Set this flag if you want to bypassGovernanceMode when deleting a particular object.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.configuration",
+      "type": "org.apache.camel.component.minio.MinioConfiguration",
+      "description": "The component configuration. The option is a org.apache.camel.component.minio.MinioConfiguration type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.custom-http-client",
+      "type": "okhttp3.OkHttpClient",
+      "description": "Set custom HTTP client for authenticated access. The option is a okhttp3.OkHttpClient type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.minio.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete objects from Minio after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the MinioConstants#BUCKET_NAME and MinioConstants#OBJECT_NAME headers, or only the MinioConstants#OBJECT_NAME header.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.delete-after-write",
+      "type": "java.lang.Boolean",
+      "description": "Delete file object after the Minio file has been uploaded.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter which is used in the ListObjectsRequest to only consume objects we are interested in.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.destination-bucket-name",
+      "type": "java.lang.String",
+      "description": "Source bucket name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.destination-object-name",
+      "type": "java.lang.String",
+      "description": "Source object name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the minio component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.endpoint",
+      "type": "java.lang.String",
+      "description": "Endpoint can be an URL, domain name, IPv4 address or IPv6 address.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.include-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the exchange body will be set to a stream to the contents of the file. If false, the headers will be set with the Minio object metadata, but the body will be null. This option is strongly related to autocloseBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the MinioObject stream. Setting autocloseBody to true, will close the MinioObject stream automatically.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.include-folders",
+      "type": "java.lang.Boolean",
+      "description": "The flag which is used in the ListObjectsRequest to set include folders.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.include-user-metadata",
+      "type": "java.lang.Boolean",
+      "description": "The flag which is used in the ListObjectsRequest to get objects with user meta data.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.include-versions",
+      "type": "java.lang.Boolean",
+      "description": "The flag which is used in the ListObjectsRequest to get objects with versioning.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.key-name",
+      "type": "java.lang.String",
+      "description": "Setting the key name for an element in the bucket through endpoint parameter.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.length",
+      "type": "java.lang.Long",
+      "description": "Number of bytes of object data from offset.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.match-e-tag",
+      "type": "java.lang.String",
+      "description": "Set match ETag parameter for get object(s).",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.max-connections",
+      "type": "java.lang.Integer",
+      "description": "Set the maxConnections parameter in the minio client configuration",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.minio.max-messages-per-poll",
+      "type": "java.lang.Integer",
+      "description": "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number of messages as a limit to poll at each polling. The default value is 10. Use 0 or a negative number to set it as unlimited.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.minio.minio-client",
+      "type": "io.minio.MinioClient",
+      "description": "Reference to a Minio Client object in the registry. The option is a io.minio.MinioClient type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.modified-since",
+      "type": "java.time.ZonedDateTime",
+      "description": "Set modified since parameter for get object(s). The option is a java.time.ZonedDateTime type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.move-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Move objects from bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.not-match-e-tag",
+      "type": "java.lang.String",
+      "description": "Set not match ETag parameter for get object(s).",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.object-lock",
+      "type": "java.lang.Boolean",
+      "description": "Set when creating new bucket.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.object-name",
+      "type": "java.lang.String",
+      "description": "To get the object from the bucket with the given object name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.offset",
+      "type": "java.lang.Long",
+      "description": "Start byte position of object data.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.operation",
+      "type": "org.apache.camel.component.minio.MinioOperations",
+      "description": "The operation to do in case the user don't want to do only an upload.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this queue to set in the method.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.prefix",
+      "type": "java.lang.String",
+      "description": "Object name starts with prefix.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "TCP\/IP port number. 80 and 443 are used as defaults for HTTP and HTTPS.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.recursive",
+      "type": "java.lang.Boolean",
+      "description": "List recursively than directory structure emulation.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.region",
+      "type": "java.lang.String",
+      "description": "The region in which Minio client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1). You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key Id or Minio Secret Key. If not set camel will connect to service for anonymous access.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.secure",
+      "type": "java.lang.Boolean",
+      "description": "Flag to indicate to use secure connection to minio service or not.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.server-side-encryption",
+      "type": "io.minio.ServerSideEncryption",
+      "description": "Server-side encryption. The option is a io.minio.ServerSideEncryption type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.server-side-encryption-customer-key",
+      "type": "io.minio.ServerSideEncryptionCustomerKey",
+      "description": "Server-side encryption for source object while copy\/move objects. The option is a io.minio.ServerSideEncryptionCustomerKey type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.start-after",
+      "type": "java.lang.String",
+      "description": "list objects in bucket after this object name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.storage-class",
+      "type": "java.lang.String",
+      "description": "The storage class to set in the request.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.un-modified-since",
+      "type": "java.time.ZonedDateTime",
+      "description": "Set un modified since parameter for get object(s). The option is a java.time.ZonedDateTime type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.use-version1",
+      "type": "java.lang.Boolean",
+      "description": "when true, version 1 of REST API is used.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.version-id",
+      "type": "java.lang.String",
+      "description": "Set specific version_ID of a object when deleting the object.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mllp-starter/src/main/docs/mllp.json b/components-starter/camel-mllp-starter/src/main/docs/mllp.json
new file mode 100644
index 0000000..9a87d87
--- /dev/null
+++ b/components-starter/camel-mllp-starter/src/main/docs/mllp.json
@@ -0,0 +1,70 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mllp",
+      "type": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mllp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mllp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mllp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mllp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mllp.default-charset",
+      "type": "java.nio.charset.Charset",
+      "description": "Set the default character set to use for byte to\/from String conversions. The option is a java.nio.charset.Charset type.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mllp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mllp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mllp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mllp.log-phi",
+      "type": "java.lang.Boolean",
+      "description": "Set the component to log PHI data.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mllp.log-phi-max-bytes",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum number of bytes of PHI that will be logged in a log entry.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": 5120
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mock-starter/src/main/docs/mock.json b/components-starter/camel-mock-starter/src/main/docs/mock.json
new file mode 100644
index 0000000..eff1e5b
--- /dev/null
+++ b/components-starter/camel-mock-starter/src/main/docs/mock.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mock",
+      "type": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mock.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mock.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mock.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mock.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mock component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mock.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mock.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mock.log",
+      "type": "java.lang.Boolean",
+      "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mongodb-gridfs-starter/src/main/docs/mongodb-gridfs.json b/components-starter/camel-mongodb-gridfs-starter/src/main/docs/mongodb-gridfs.json
new file mode 100644
index 0000000..30fa46c
--- /dev/null
+++ b/components-starter/camel-mongodb-gridfs-starter/src/main/docs/mongodb-gridfs.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mongodb-gridfs",
+      "type": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mongodb-gridfs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mongodb-gridfs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mongodb-starter/src/main/docs/mongodb.json b/components-starter/camel-mongodb-starter/src/main/docs/mongodb.json
new file mode 100644
index 0000000..9ba58a2
--- /dev/null
+++ b/components-starter/camel-mongodb-starter/src/main/docs/mongodb.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mongodb",
+      "type": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mongodb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mongodb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mongodb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mongodb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mongodb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mongodb.mongo-connection",
+      "type": "com.mongodb.client.MongoClient",
+      "description": "Shared client used for connection. All endpoints generated from the component will share this connection client. The option is a com.mongodb.client.MongoClient type.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-msv-starter/src/main/docs/msv.json b/components-starter/camel-msv-starter/src/main/docs/msv.json
new file mode 100644
index 0000000..595e9aa
--- /dev/null
+++ b/components-starter/camel-msv-starter/src/main/docs/msv.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.msv",
+      "type": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    },
+    {
+      "name": "camel.component.msv.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.msv.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.msv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.msv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the msv component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    },
+    {
+      "name": "camel.component.msv.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.msv.resource-resolver-factory",
+      "type": "org.apache.camel.component.validator.ValidatorResourceResolverFactory",
+      "description": "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The option is a org.apache.camel.component.validator.ValidatorResourceResolverFactory type.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    },
+    {
+      "name": "camel.component.msv.schema-factory",
+      "type": "javax.xml.validation.SchemaFactory",
+      "description": "To use the javax.xml.validation.SchemaFactory. The option is a javax.xml.validation.SchemaFactory type.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mustache-starter/src/main/docs/mustache.json b/components-starter/camel-mustache-starter/src/main/docs/mustache.json
new file mode 100644
index 0000000..ffc8b9c
--- /dev/null
+++ b/components-starter/camel-mustache-starter/src/main/docs/mustache.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mustache",
+      "type": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mustache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mustache.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mustache.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mustache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mustache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mustache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mustache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mustache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mustache.mustache-factory",
+      "type": "com.github.mustachejava.MustacheFactory",
+      "description": "To use a custom MustacheFactory. The option is a com.github.mustachejava.MustacheFactory type.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mvel-starter/src/main/docs/mvel.json b/components-starter/camel-mvel-starter/src/main/docs/mvel.json
new file mode 100644
index 0000000..9178ce4
--- /dev/null
+++ b/components-starter/camel-mvel-starter/src/main/docs/mvel.json
@@ -0,0 +1,86 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mvel",
+      "type": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mvel.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.mvel",
+      "type": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.mvel.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mvel.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mvel.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mvel.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mvel.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mvel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mvel component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mvel.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.mvel.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.mvel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mvel language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.mvel.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-mybatis-starter/src/main/docs/mybatis.json b/components-starter/camel-mybatis-starter/src/main/docs/mybatis.json
new file mode 100644
index 0000000..133233b
--- /dev/null
+++ b/components-starter/camel-mybatis-starter/src/main/docs/mybatis.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mybatis",
+      "type": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis-bean",
+      "type": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis-bean.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.mybatis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mybatis-bean.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mybatis-bean.configuration-uri",
+      "type": "java.lang.String",
+      "description": "Location of MyBatis xml configuration file. The default value is: SqlMapConfig.xml loaded from the classpath",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "defaultValue": "SqlMapConfig.xml"
+    },
+    {
+      "name": "camel.component.mybatis-bean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mybatis-bean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mybatis-bean component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis-bean.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mybatis-bean.sql-session-factory",
+      "type": "org.apache.ibatis.session.SqlSessionFactory",
+      "description": "To use the SqlSessionFactory. The option is a org.apache.ibatis.session.SqlSessionFactory type.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mybatis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mybatis.configuration-uri",
+      "type": "java.lang.String",
+      "description": "Location of MyBatis xml configuration file. The default value is: SqlMapConfig.xml loaded from the classpath",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": "SqlMapConfig.xml"
+    },
+    {
+      "name": "camel.component.mybatis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mybatis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mybatis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mybatis.sql-session-factory",
+      "type": "org.apache.ibatis.session.SqlSessionFactory",
+      "description": "To use the SqlSessionFactory. The option is a org.apache.ibatis.session.SqlSessionFactory type.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-nagios-starter/src/main/docs/nagios.json b/components-starter/camel-nagios-starter/src/main/docs/nagios.json
new file mode 100644
index 0000000..1891bc4
--- /dev/null
+++ b/components-starter/camel-nagios-starter/src/main/docs/nagios.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nagios",
+      "type": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nagios.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nagios.configuration",
+      "type": "org.apache.camel.component.nagios.NagiosConfiguration",
+      "description": "To use a shared NagiosConfiguration. The option is a org.apache.camel.component.nagios.NagiosConfiguration type.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Connection timeout in millis.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.nagios.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nagios.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nagios component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.encryption",
+      "type": "com.googlecode.jsendnsca.encryption.Encryption",
+      "description": "To specify an encryption method.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nagios.password",
+      "type": "java.lang.String",
+      "description": "Password to be authenticated when sending checks to Nagios.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.timeout",
+      "type": "java.lang.Integer",
+      "description": "Sending timeout in millis.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": 5000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-nats-starter/src/main/docs/nats.json b/components-starter/camel-nats-starter/src/main/docs/nats.json
new file mode 100644
index 0000000..a254ed7
--- /dev/null
+++ b/components-starter/camel-nats-starter/src/main/docs/nats.json
@@ -0,0 +1,76 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nats",
+      "type": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nats.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nats.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nats.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nats.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nats component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nats.servers",
+      "type": "java.lang.String",
+      "description": "URLs to one or more NAT servers. Use comma to separate URLs when specifying multiple servers.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nats.verbose",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not running in verbose mode",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-netty-http-starter/src/main/docs/netty-http.json b/components-starter/camel-netty-http-starter/src/main/docs/netty-http.json
new file mode 100644
index 0000000..c3eaa5d
--- /dev/null
+++ b/components-starter/camel-netty-http-starter/src/main/docs/netty-http.json
@@ -0,0 +1,430 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.netty-http",
+      "type": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.netty-http.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP when transferExchange is true. When set to true, serializable objects in headers and properties will be added to the exchange. Otherwise Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.backlog",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. Setting this option to a value such as 200, 500 or 1000, tells the TCP stack how long the accept queue can be If this option is not configured, then the backlog depends on OS setting.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.boss-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User can use this option to override the default bossCount from Netty",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.netty-http.boss-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.channel-group",
+      "type": "io.netty.channel.group.ChannelGroup",
+      "description": "To use a explicit ChannelGroup. The option is a io.netty.channel.group.ChannelGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.client-initializer-factory",
+      "type": "org.apache.camel.component.netty.ClientInitializerFactory",
+      "description": "To use a custom ClientInitializerFactory. The option is a org.apache.camel.component.netty.ClientInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.configuration",
+      "type": "org.apache.camel.component.netty.NettyConfiguration",
+      "description": "To use the NettyConfiguration as configuration when creating endpoints. The option is a org.apache.camel.component.netty.NettyConfiguration type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "Time to wait for a socket connection to be available. Value is in milliseconds.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.netty-http.correlation-manager",
+      "type": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager",
+      "description": "To use a custom correlation manager to manage how request and reply messages are mapped when using request\/reply with the netty producer. This should only be used if you have a way to map requests together with replies such as if there is correlation ids in both the request and reply messages. This can be used if you want to multiplex concurrent messages on the same channel (aka connection) in netty. When doing this you must have a way to correlate the request and reply messages so you can store the right reply on the inflight Camel Exchange before its continued routed. We recommend extending the TimeoutCorrelationManagerSupport when you build custom correlation managers. This provides support for timeout and other complexities you otherwise would need to implement as well. See also the producerPoolEnabled option for more details. The option is a org.apache.camel.component.netty.NettyCamelStateCorrelationManager type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.netty-http.decoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.disconnect-on-no-reply",
+      "type": "java.lang.Boolean",
+      "description": "If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the netty-http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.enabled-protocols",
+      "type": "java.lang.String",
+      "description": "Which protocols to enable when using SSL",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": "TLSv1,TLSv1.1,TLSv1.2"
+    },
+    {
+      "name": "camel.component.netty-http.encoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.executor-service",
+      "type": "io.netty.util.concurrent.EventExecutorGroup",
+      "description": "To use the given EventExecutorGroup. The option is a io.netty.util.concurrent.EventExecutorGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter headers. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.hostname-verification",
+      "type": "java.lang.Boolean",
+      "description": "To enable\/disable hostname verification on SSLEngine",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.keep-alive",
+      "type": "java.lang.Boolean",
+      "description": "Setting to ensure socket is not closed due to inactivity",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.key-store-file",
+      "type": "java.io.File",
+      "description": "Client side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.key-store-format",
+      "type": "java.lang.String",
+      "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.key-store-resource",
+      "type": "java.lang.String",
+      "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.lazy-channel-creation",
+      "type": "java.lang.Boolean",
+      "description": "Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.maximum-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets a maximum thread pool size for the netty consumer ordered thread pool. The default size is 2 x cpu_core plus 1. Setting this value to eg 10 will then use 10 threads unless 2 x cpu_core plus 1 is a higher value, which then will override and be used. For example if there are 8 cores, then the consumer thread pool will be 17. This thread pool is used to route messages received from Netty by Camel. We use a separate thread pool to ensure ordering of messages and also in case some messages will block, then nettys worker threads (event loop) wont be affected.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.native-transport",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host operating system and is only supported on some platforms. You need to add the netty JAR for the host operating system you are using. See more details at: http:\/\/netty.io\/wiki\/native-transports.html",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.need-client-auth",
+      "type": "java.lang.Boolean",
+      "description": "Configures whether the server needs client authentication when using SSL.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.netty-http-binding",
+      "type": "org.apache.camel.component.netty.http.NettyHttpBinding",
+      "description": "To use a custom org.apache.camel.component.netty.http.NettyHttpBinding for binding to\/from Netty and Camel Message API. The option is a org.apache.camel.component.netty.http.NettyHttpBinding type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.netty-server-bootstrap-factory",
+      "type": "org.apache.camel.component.netty.NettyServerBootstrapFactory",
+      "description": "To use a custom NettyServerBootstrapFactory. The option is a org.apache.camel.component.netty.NettyServerBootstrapFactory type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.no-reply-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.options",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure additional netty options using option. as prefix. For example option.child.keepAlive=false to set the netty option child.keepAlive=false. See the Netty documentation for possible options that can be used.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.passphrase",
+      "type": "java.lang.String",
+      "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether producer pool is enabled or not. Important: If you turn this off then a single shared connection is used for the producer, also if you are doing request\/reply. That means there is a potential issue with interleaved responses if replies comes back out-of-order. Therefore you need to have a correlation id in both the request and reply messages so you can properly correlate the replies to the Camel callback that is responsible for continue processing the message in Camel. To do this you need to implement NettyCamelStateCorrelationManager as correlation manager and configure it via the correlationManager option. See also the correlationManager option for more details.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-max-active",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time. Use a negative value for no limit.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-max-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of idle instances in the pool.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-min-evictable-idle",
+      "type": "java.lang.Long",
+      "description": "Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-min-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.receive-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty-http.receive-buffer-size-predictor",
+      "type": "java.lang.Integer",
+      "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is in milli seconds, so eg 30000 is 30 seconds. The requestTimeout is using Netty's ReadTimeoutHandler to trigger the timeout.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.reuse-address",
+      "type": "java.lang.Boolean",
+      "description": "Setting to facilitate socket multiplexing",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.reuse-channel",
+      "type": "java.lang.Boolean",
+      "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecycle of processing the Exchange. This is useful if you need to call a server multiple times in a Camel route and want to use the same network connection. When using this, the channel is not returned to the connection pool until the Exchange is done; or disconnected if the disconnect option is set to true. The reused Channel is stored on the Exchange as an exchange property with the key NettyConstants#NETTY_CHANNEL which allows you to obtain the channel during routing and use it as well.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.security-configuration",
+      "type": "org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration",
+      "description": "Refers to a org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration for configuring secure web resources. The option is a org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.security-provider",
+      "type": "java.lang.String",
+      "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.send-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty-http.server-closed-channel-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an java.nio.channels.ClosedChannelException then its logged using this logging level. This is used to avoid logging the closed channel exceptions, as clients can disconnect abruptly and then cause a flood of closed exceptions in the Netty server.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.server-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an exception then its logged using this logging level.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.server-initializer-factory",
+      "type": "org.apache.camel.component.netty.ServerInitializerFactory",
+      "description": "To use a custom ServerInitializerFactory. The option is a org.apache.camel.component.netty.ServerInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.ssl",
+      "type": "java.lang.Boolean",
+      "description": "Setting to specify whether SSL encryption is applied to this endpoint",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.ssl-client-cert-headers",
+      "type": "java.lang.Boolean",
+      "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message with headers having information about the client certificate such as subject name, issuer name, serial number, and the valid date range.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.ssl-handler",
+      "type": "io.netty.handler.ssl.SslHandler",
+      "description": "Reference to a class that could be used to return an SSL Handler. The option is a io.netty.handler.ssl.SslHandler type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.sync",
+      "type": "java.lang.Boolean",
+      "description": "Setting to set endpoint as one-way or request-response",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.tcp-no-delay",
+      "type": "java.lang.Boolean",
+      "description": "Setting to improve TCP protocol performance",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.trust-store-file",
+      "type": "java.io.File",
+      "description": "Server side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.trust-store-resource",
+      "type": "java.lang.String",
+      "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.using-executor-service",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.worker-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this option to override the default workerCount from Netty.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.worker-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multiple consumers or producers. By default each consumer or producer has their own worker pool with 2 x cpu count core threads. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-netty-starter/src/main/docs/netty.json b/components-starter/camel-netty-starter/src/main/docs/netty.json
new file mode 100644
index 0000000..1b4cbfa
--- /dev/null
+++ b/components-starter/camel-netty-starter/src/main/docs/netty.json
@@ -0,0 +1,507 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.netty",
+      "type": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.netty.allow-default-codec",
+      "type": "java.lang.Boolean",
+      "description": "The netty component installs a default codec if both, encoder\/decoder is null and textline is false. Setting allowDefaultCodec to false prevents the netty component from installing a default codec as the first element in the filter chain.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP when transferExchange is true. When set to true, serializable objects in headers and properties will be added to the exchange. Otherwise Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.auto-append-delimiter",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to auto append missing end delimiter when sending using the textline codec.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.backlog",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. Setting this option to a value such as 200, 500 or 1000, tells the TCP stack how long the accept queue can be If this option is not configured, then the backlog depends on OS setting.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.boss-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User can use this option to override the default bossCount from Netty",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.netty.boss-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.broadcast",
+      "type": "java.lang.Boolean",
+      "description": "Setting to choose Multicast over UDP",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.channel-group",
+      "type": "io.netty.channel.group.ChannelGroup",
+      "description": "To use a explicit ChannelGroup. The option is a io.netty.channel.group.ChannelGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.client-initializer-factory",
+      "type": "org.apache.camel.component.netty.ClientInitializerFactory",
+      "description": "To use a custom ClientInitializerFactory. The option is a org.apache.camel.component.netty.ClientInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.client-mode",
+      "type": "java.lang.Boolean",
+      "description": "If the clientMode is true, netty consumer will connect the address as a TCP client.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.configuration",
+      "type": "org.apache.camel.component.netty.NettyConfiguration",
+      "description": "To use the NettyConfiguration as configuration when creating endpoints. The option is a org.apache.camel.component.netty.NettyConfiguration type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "Time to wait for a socket connection to be available. Value is in milliseconds.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.netty.correlation-manager",
+      "type": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager",
+      "description": "To use a custom correlation manager to manage how request and reply messages are mapped when using request\/reply with the netty producer. This should only be used if you have a way to map requests together with replies such as if there is correlation ids in both the request and reply messages. This can be used if you want to multiplex concurrent messages on the same channel (aka connection) in netty. When doing this you must have a way to correlate the request and reply messages so you can store the right reply on the inflight Camel Exchange before its continued routed. We recommend extending the TimeoutCorrelationManagerSupport when you build custom correlation managers. This provides support for timeout and other complexities you otherwise would need to implement as well. See also the producerPoolEnabled option for more details. The option is a org.apache.camel.component.netty.NettyCamelStateCorrelationManager type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.netty.decoder-max-line-length",
+      "type": "java.lang.Integer",
+      "description": "The max line length to use for the textline codec.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.netty.decoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.delimiter",
+      "type": "org.apache.camel.component.netty.TextLineDelimiter",
+      "description": "The delimiter to use for the textline codec. Possible values are LINE and NULL.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.disconnect-on-no-reply",
+      "type": "java.lang.Boolean",
+      "description": "If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the netty component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.enabled-protocols",
+      "type": "java.lang.String",
+      "description": "Which protocols to enable when using SSL",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": "TLSv1,TLSv1.1,TLSv1.2"
+    },
+    {
+      "name": "camel.component.netty.encoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.encoding",
+      "type": "java.lang.String",
+      "description": "The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.executor-service",
+      "type": "io.netty.util.concurrent.EventExecutorGroup",
+      "description": "To use the given EventExecutorGroup. The option is a io.netty.util.concurrent.EventExecutorGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.hostname-verification",
+      "type": "java.lang.Boolean",
+      "description": "To enable\/disable hostname verification on SSLEngine",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.keep-alive",
+      "type": "java.lang.Boolean",
+      "description": "Setting to ensure socket is not closed due to inactivity",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.key-store-file",
+      "type": "java.io.File",
+      "description": "Client side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.key-store-format",
+      "type": "java.lang.String",
+      "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.key-store-resource",
+      "type": "java.lang.String",
+      "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.lazy-channel-creation",
+      "type": "java.lang.Boolean",
+      "description": "Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.maximum-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets a maximum thread pool size for the netty consumer ordered thread pool. The default size is 2 x cpu_core plus 1. Setting this value to eg 10 will then use 10 threads unless 2 x cpu_core plus 1 is a higher value, which then will override and be used. For example if there are 8 cores, then the consumer thread pool will be 17. This thread pool is used to route messages received from Netty by Camel. We use a separate thread pool to ensure ordering of messages and also in case some messages will block, then nettys worker threads (event loop) wont be affected.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.native-transport",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host operating system and is only supported on some platforms. You need to add the netty JAR for the host operating system you are using. See more details at: http:\/\/netty.io\/wiki\/native-transports.html",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.need-client-auth",
+      "type": "java.lang.Boolean",
+      "description": "Configures whether the server needs client authentication when using SSL.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.netty-server-bootstrap-factory",
+      "type": "org.apache.camel.component.netty.NettyServerBootstrapFactory",
+      "description": "To use a custom NettyServerBootstrapFactory. The option is a org.apache.camel.component.netty.NettyServerBootstrapFactory type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.network-interface",
+      "type": "java.lang.String",
+      "description": "When using UDP then this option can be used to specify a network interface by its name, such as eth0 to join a multicast group.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.no-reply-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.options",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure additional netty options using option. as prefix. For example option.child.keepAlive=false to set the netty option child.keepAlive=false. See the Netty documentation for possible options that can be used.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.passphrase",
+      "type": "java.lang.String",
+      "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.producer-pool-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether producer pool is enabled or not. Important: If you turn this off then a single shared connection is used for the producer, also if you are doing request\/reply. That means there is a potential issue with interleaved responses if replies comes back out-of-order. Therefore you need to have a correlation id in both the request and reply messages so you can properly correlate the replies to the Camel callback that is responsible for continue processing the message in Camel. To do this you need to implement NettyCamelStateCorrelationManager as correlation manager and configure it via the correlationManager option. See also the correlationManager option for more details.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.producer-pool-max-active",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time. Use a negative value for no limit.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.netty.producer-pool-max-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of idle instances in the pool.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.netty.producer-pool-min-evictable-idle",
+      "type": "java.lang.Long",
+      "description": "Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.netty.producer-pool-min-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.receive-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty.receive-buffer-size-predictor",
+      "type": "java.lang.Integer",
+      "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.reconnect",
+      "type": "java.lang.Boolean",
+      "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.reconnect-interval",
+      "type": "java.lang.Integer",
+      "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.netty.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is in milli seconds, so eg 30000 is 30 seconds. The requestTimeout is using Netty's ReadTimeoutHandler to trigger the timeout.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.reuse-address",
+      "type": "java.lang.Boolean",
+      "description": "Setting to facilitate socket multiplexing",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.reuse-channel",
+      "type": "java.lang.Boolean",
+      "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecycle of processing the Exchange. This is useful if you need to call a server multiple times in a Camel route and want to use the same network connection. When using this, the channel is not returned to the connection pool until the Exchange is done; or disconnected if the disconnect option is set to true. The reused Channel is stored on the Exchange as an exchange property with the key NettyConstants#NETTY_CHANNEL which allows you to obtain the channel during routing and use it as well.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.security-provider",
+      "type": "java.lang.String",
+      "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.send-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty.server-closed-channel-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an java.nio.channels.ClosedChannelException then its logged using this logging level. This is used to avoid logging the closed channel exceptions, as clients can disconnect abruptly and then cause a flood of closed exceptions in the Netty server.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.server-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an exception then its logged using this logging level.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.server-initializer-factory",
+      "type": "org.apache.camel.component.netty.ServerInitializerFactory",
+      "description": "To use a custom ServerInitializerFactory. The option is a org.apache.camel.component.netty.ServerInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.ssl",
+      "type": "java.lang.Boolean",
+      "description": "Setting to specify whether SSL encryption is applied to this endpoint",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.ssl-client-cert-headers",
+      "type": "java.lang.Boolean",
+      "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message with headers having information about the client certificate such as subject name, issuer name, serial number, and the valid date range.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.ssl-handler",
+      "type": "io.netty.handler.ssl.SslHandler",
+      "description": "Reference to a class that could be used to return an SSL Handler. The option is a io.netty.handler.ssl.SslHandler type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.sync",
+      "type": "java.lang.Boolean",
+      "description": "Setting to set endpoint as one-way or request-response",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.tcp-no-delay",
+      "type": "java.lang.Boolean",
+      "description": "Setting to improve TCP protocol performance",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.textline",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specified or the value is false, then Object Serialization is assumed over TCP - however only Strings are allowed to be serialized by default.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.trust-store-file",
+      "type": "java.io.File",
+      "description": "Server side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.trust-store-resource",
+      "type": "java.lang.String",
+      "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.udp-byte-array-codec",
+      "type": "java.lang.Boolean",
+      "description": "For UDP only. If enabled the using byte array codec instead of Java serialization protocol.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.udp-connectionless-sending",
+      "type": "java.lang.Boolean",
+      "description": "This option supports connection less udp sending which is a real fire and forget. A connected udp send receive the PortUnreachableException if no one is listen on the receiving port.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.use-byte-buf",
+      "type": "java.lang.Boolean",
+      "description": "If the useByteBuf is true, netty producer will turn the message body into ByteBuf before sending it out.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.using-executor-service",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.worker-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this option to override the default workerCount from Netty.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.worker-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multiple consumers or producers. By default each consumer or producer has their own worker pool with 2 x cpu count core threads. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-nitrite-starter/src/main/docs/nitrite.json b/components-starter/camel-nitrite-starter/src/main/docs/nitrite.json
new file mode 100644
index 0000000..c0a7bdf
--- /dev/null
+++ b/components-starter/camel-nitrite-starter/src/main/docs/nitrite.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nitrite",
+      "type": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nitrite.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nitrite.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nitrite.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nitrite.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nitrite.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nitrite component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nitrite.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-nsq-starter/src/main/docs/nsq.json b/components-starter/camel-nsq-starter/src/main/docs/nsq.json
new file mode 100644
index 0000000..6426f06
--- /dev/null
+++ b/components-starter/camel-nsq-starter/src/main/docs/nsq.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nsq",
+      "type": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nsq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nsq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nsq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nsq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nsq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nsq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nsq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nsq.servers",
+      "type": "java.lang.String",
+      "description": "The hostnames of one or more nsqlookupd servers (consumer) or nsqd servers (producer).",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nsq.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-oaipmh-starter/src/main/docs/oaipmh.json b/components-starter/camel-oaipmh-starter/src/main/docs/oaipmh.json
new file mode 100644
index 0000000..5044887
--- /dev/null
+++ b/components-starter/camel-oaipmh-starter/src/main/docs/oaipmh.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.oaipmh",
+      "type": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration"
+    },
+    {
+      "name": "camel.component.oaipmh.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.oaipmh.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.oaipmh.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.oaipmh.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.oaipmh.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the oaipmh component. This is enabled by default.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration"
+    },
+    {
+      "name": "camel.component.oaipmh.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ognl-starter/src/main/docs/ognl.json b/components-starter/camel-ognl-starter/src/main/docs/ognl.json
new file mode 100644
index 0000000..a0c0be4
--- /dev/null
+++ b/components-starter/camel-ognl-starter/src/main/docs/ognl.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.ognl",
+      "type": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ognl.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.ognl.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.ognl.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ognl language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ognl.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-olingo2-starter/src/main/docs/olingo2.json b/components-starter/camel-olingo2-starter/src/main/docs/olingo2.json
new file mode 100644
index 0000000..a7ff0dd
--- /dev/null
+++ b/components-starter/camel-olingo2-starter/src/main/docs/olingo2.json
@@ -0,0 +1,146 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.olingo2",
+      "type": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.olingo2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo2.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo2.configuration",
+      "type": "org.apache.camel.component.olingo2.Olingo2Configuration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.olingo2.Olingo2Configuration type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP connection creation timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo2.content-type",
+      "type": "java.lang.String",
+      "description": "Content-Type header value can be used to specify JSON or XML message format, defaults to application\/json;charset=utf-8",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": "application\/json;charset=utf-8"
+    },
+    {
+      "name": "camel.component.olingo2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.olingo2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the olingo2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.entity-provider-read-properties",
+      "type": "org.apache.olingo.odata2.api.ep.EntityProviderReadProperties",
+      "description": "Custom entity provider read properties applied to all read operations. The option is a org.apache.olingo.odata2.api.ep.EntityProviderReadProperties type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.entity-provider-write-properties",
+      "type": "org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties",
+      "description": "Custom entity provider write properties applied to create, update, patch, batch and merge operations. For instance users can skip the Json object wrapper or enable content only mode when sending request data. A service URI set in the properties will always be overwritten by the serviceUri configuration parameter. Please consider to using the serviceUri configuration parameter instead of setting the respective write property here. The option is a org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.filter-already-seen",
+      "type": "java.lang.Boolean",
+      "description": "Set this to true to filter out results that have already been communicated by this component.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo2.http-async-client-builder",
+      "type": "org.apache.http.impl.nio.client.HttpAsyncClientBuilder",
+      "description": "Custom HTTP async client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.nio.client.HttpAsyncClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.http-client-builder",
+      "type": "org.apache.http.impl.client.HttpClientBuilder",
+      "description": "Custom HTTP client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.client.HttpClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.http-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Custom HTTP headers to inject into every request, this could include OAuth tokens, etc.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo2.proxy",
+      "type": "org.apache.http.HttpHost",
+      "description": "HTTP proxy server configuration. The option is a org.apache.http.HttpHost type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.service-uri",
+      "type": "java.lang.String",
+      "description": "Target OData service base URI, e.g. http:\/\/services.odata.org\/OData\/OData.svc",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP request timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo2.split-result",
+      "type": "java.lang.Boolean",
+      "description": "For endpoints that return an array or collection, a consumer endpoint will map every element to distinct messages, unless splitResult is set to false.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo2.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-olingo4-starter/src/main/docs/olingo4.json b/components-starter/camel-olingo4-starter/src/main/docs/olingo4.json
new file mode 100644
index 0000000..18e246c
--- /dev/null
+++ b/components-starter/camel-olingo4-starter/src/main/docs/olingo4.json
@@ -0,0 +1,134 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.olingo4",
+      "type": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.olingo4.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo4.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo4.configuration",
+      "type": "org.apache.camel.component.olingo4.Olingo4Configuration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.olingo4.Olingo4Configuration type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP connection creation timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo4.content-type",
+      "type": "java.lang.String",
+      "description": "Content-Type header value can be used to specify JSON or XML message format, defaults to application\/json;charset=utf-8",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": "application\/json;charset=utf-8"
+    },
+    {
+      "name": "camel.component.olingo4.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.olingo4.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the olingo4 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.filter-already-seen",
+      "type": "java.lang.Boolean",
+      "description": "Set this to true to filter out results that have already been communicated by this component.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo4.http-async-client-builder",
+      "type": "org.apache.http.impl.nio.client.HttpAsyncClientBuilder",
+      "description": "Custom HTTP async client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.nio.client.HttpAsyncClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.http-client-builder",
+      "type": "org.apache.http.impl.client.HttpClientBuilder",
+      "description": "Custom HTTP client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.client.HttpClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.http-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Custom HTTP headers to inject into every request, this could include OAuth tokens, etc.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo4.proxy",
+      "type": "org.apache.http.HttpHost",
+      "description": "HTTP proxy server configuration. The option is a org.apache.http.HttpHost type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.service-uri",
+      "type": "java.lang.String",
+      "description": "Target OData service base URI, e.g. http:\/\/services.odata.org\/OData\/OData.svc",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP request timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo4.split-result",
+      "type": "java.lang.Boolean",
+      "description": "For endpoints that return an array or collection, a consumer endpoint will map every element to distinct messages, unless splitResult is set to false.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo4.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-openapi-java-starter/src/main/docs/openapi-java.json b/components-starter/camel-openapi-java-starter/src/main/docs/openapi-java.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-openapi-java-starter/src/main/docs/openapi-java.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-openstack-starter/src/main/docs/openstack.json b/components-starter/camel-openstack-starter/src/main/docs/openstack.json
new file mode 100644
index 0000000..2a3d9e6
--- /dev/null
+++ b/components-starter/camel-openstack-starter/src/main/docs/openstack.json
@@ -0,0 +1,223 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.openstack-cinder",
+      "type": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-cinder.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-glance",
+      "type": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-glance.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-keystone",
+      "type": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-keystone.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-neutron",
+      "type": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-neutron.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-nova",
+      "type": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-nova.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-swift",
+      "type": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-swift.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.openstack-cinder.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-cinder.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-cinder.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-cinder component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-cinder.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-glance.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-glance.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-glance.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-glance component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-glance.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-keystone.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-keystone.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-keystone.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-keystone component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-keystone.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-neutron.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-neutron.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-neutron.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-neutron component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-neutron.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-nova.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-nova.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-nova.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-nova component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-nova.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-swift.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-swift.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-swift.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-swift component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-swift.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json b/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json
new file mode 100644
index 0000000..f199607
--- /dev/null
+++ b/components-starter/camel-opentelemetry-starter/src/main/docs/opentelemetry.json
@@ -0,0 +1,24 @@
+{
+  "groups": [
+    {
+      "name": "camel.opentelemetry",
+      "type": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.opentelemetry.encoding",
+      "type": "java.lang.Boolean",
+      "description": "Activate or deactivate dash encoding in headers (required by JMS) for messaging",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    },
+    {
+      "name": "camel.opentelemetry.exclude-patterns",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Sets exclude pattern(s) that will disable tracing for Camel messages that matches the pattern.",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-opentracing-starter/src/main/docs/opentracing.json b/components-starter/camel-opentracing-starter/src/main/docs/opentracing.json
new file mode 100644
index 0000000..8dfe5a3
--- /dev/null
+++ b/components-starter/camel-opentracing-starter/src/main/docs/opentracing.json
@@ -0,0 +1,24 @@
+{
+  "groups": [
+    {
+      "name": "camel.opentracing",
+      "type": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties",
+      "sourceType": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.opentracing.encoding",
+      "type": "java.lang.Boolean",
+      "description": "Activate or deactivate dash encoding in headers (required by JMS) for messaging",
+      "sourceType": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties"
+    },
+    {
+      "name": "camel.opentracing.exclude-patterns",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Sets exclude pattern(s) that will disable tracing for Camel messages that matches the pattern.",
+      "sourceType": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-optaplanner-starter/src/main/docs/optaplanner.json b/components-starter/camel-optaplanner-starter/src/main/docs/optaplanner.json
new file mode 100644
index 0000000..9fa103a
--- /dev/null
+++ b/components-starter/camel-optaplanner-starter/src/main/docs/optaplanner.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.optaplanner",
+      "type": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.optaplanner.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.optaplanner.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.optaplanner.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.optaplanner.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.optaplanner.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the optaplanner component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.optaplanner.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json b/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json
new file mode 100644
index 0000000..82cedf0
--- /dev/null
+++ b/components-starter/camel-paho-mqtt5-starter/src/main/docs/paho-mqtt5.json
@@ -0,0 +1,238 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.paho-mqtt5",
+      "type": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.paho-mqtt5.automatic-reconnect",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client will automatically attempt to reconnect to the server if the connection is lost. If set to false, the client will not attempt to automatically reconnect to the server in the event that the connection is lost. If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.broker-url",
+      "type": "java.lang.String",
+      "description": "The URL of the MQTT broker.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": "tcp:\/\/localhost:1883"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.clean-start",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client and server should remember state across restarts and reconnects. If set to false both the client and server will maintain state across restarts of the client, the server and the connection. As state is maintained: Message delivery will be reliable meeting the specified QOS even if the client, server or connection are restarted. The server will treat a subscription as durable. If set to true the client and server will not maintain state across restarts of the client, the server or the connection. This means Message delivery to the specified QOS cannot be maintained if the client, server or connection are restarted The server will treat a subscription as non-durable",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.client",
+      "type": "org.eclipse.paho.mqttv5.client.MqttClient",
+      "description": "To use a shared Paho client. The option is a org.eclipse.paho.mqttv5.client.MqttClient type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.client-id",
+      "type": "java.lang.String",
+      "description": "MQTT client identifier. The identifier must be unique.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.configuration",
+      "type": "org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration",
+      "description": "To use the shared Paho configuration. The option is a org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Sets the connection timeout value. This value, measured in seconds, defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 30
+    },
+    {
+      "name": "camel.component.paho-mqtt5.custom-web-socket-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets the Custom WebSocket Headers for the WebSocket Connection.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the paho-mqtt5 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.executor-service-timeout",
+      "type": "java.lang.Integer",
+      "description": "Set the time in seconds that the executor service should wait when terminating before forcefully terminating. It is not recommended to change this value unless you are absolutely sure that you need to.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.paho-mqtt5.file-persistence-directory",
+      "type": "java.lang.String",
+      "description": "Base directory used by file persistence. Will by default use user directory.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.https-hostname-verification-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether SSL HostnameVerifier is enabled or not. The default value is true.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.keep-alive-interval",
+      "type": "java.lang.Integer",
+      "description": "Sets the keep alive interval. This value, measured in seconds, defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP\/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small ping message, which the server will acknowledge. A value of 0 disables keepalive processing in the client. The default value is 60 seconds",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.paho-mqtt5.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.max-reconnect-delay",
+      "type": "java.lang.Integer",
+      "description": "Get the maximum time (in millis) to wait between reconnects",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 128000
+    },
+    {
+      "name": "camel.component.paho-mqtt5.password",
+      "type": "java.lang.String",
+      "description": "Password to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.persistence",
+      "type": "org.apache.camel.component.paho.mqtt5.PahoMqtt5Persistence",
+      "description": "Client persistence to be used - memory or file.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.qos",
+      "type": "java.lang.Integer",
+      "description": "Client quality of service level (0-2).",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.paho-mqtt5.receive-maximum",
+      "type": "java.lang.Integer",
+      "description": "Sets the Receive Maximum. This value represents the limit of QoS 1 and QoS 2 publications that the client is willing to process concurrently. There is no mechanism to limit the number of QoS 0 publications that the Server might try to send. The default value is 65535",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 65535
+    },
+    {
+      "name": "camel.component.paho-mqtt5.retained",
+      "type": "java.lang.Boolean",
+      "description": "Retain option",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.server-u-r-is",
+      "type": "java.lang.String",
+      "description": "Set a list of one or more serverURIs the client may connect to. Multiple servers can be separated by comma. Each serverURI specifies the address of a server that the client may connect to. Two types of connection are supported tcp:\/\/ for a TCP connection and ssl:\/\/ for a TCP connection secured by SSL\/TLS. For example: tcp:\/\/localhost:1883 ssl:\/\/localhost:8883 If the port is not specified, it will default to 1883 for tcp:\/\/ URIs, and 8883 for ssl:\/\/ URIs. If serverURIs is set then it overrides the serverURI parameter passed in on the constructor of the MQTT client. When an attempt to connect is initiated the client will start with the first serverURI in the list and work through the list until a connection is established with a server. If a connection cannot be made to any of the servers then the connect attempt fails. Specifying a list of servers that a client may connect to has several uses: High Availability and reliable message delivery Some MQTT servers support a high availability feature where two or more equal MQTT servers share state. An MQTT client can connect to any of the equal servers and be assured that messages are reliably delivered and durable subscriptions are maintained no matter which server the client connects to. The cleansession flag must be set to false if durable subscriptions and\/or reliable message delivery is required. Hunt List A set of servers may be specified that are not equal (as in the high availability option). As no state is shared across the servers reliable message delivery and durable subscriptions are not valid. The cleansession flag must be set to true if the hunt list mode is used",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.session-expiry-interval",
+      "type": "java.lang.Long",
+      "description": "Sets the Session Expiry Interval. This value, measured in seconds, defines the maximum time that the broker will maintain the session for once the client disconnects. Clients should only connect with a long Session Expiry interval if they intend to connect to the server at some later point in time. By default this value is -1 and so will not be sent, in this case, the session will not expire. If a 0 is sent, the session will end immediately once the Network Connection is closed. When the client has determined that it has no longer any use for the session, it should disconnect with a Session Expiry Interval set to 0.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.paho-mqtt5.socket-factory",
+      "type": "javax.net.SocketFactory",
+      "description": "Sets the SocketFactory to use. This allows an application to apply its own policies around the creation of network sockets. If using an SSL connection, an SSLSocketFactory can be used to supply application-specific security settings. The option is a javax.net.SocketFactory type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.ssl-client-props",
+      "type": "java.util.Properties",
+      "description": "Sets the SSL properties for the connection. Note that these properties are only valid if an implementation of the Java Secure Socket Extensions (JSSE) is available. These properties are not used if a custom SocketFactory has been set. The following properties can be used: com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE provider. For example IBMJSSE2 or SunJSSE com.ibm.ssl.keyStore The name of the file that contains the KeyStore object that you want the KeyManager to use. For example \/mydir\/etc\/key.p12 com.ibm.ssl.keyStorePassword The password for the KeyStore object that you want the KeyManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.keyStoreType Type of key store, for example PKCS12, JKS, or JCEKS. com.ibm.ssl.keyStoreProvider Key store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.trustStore The name of the file that contains the KeyStore object that you want the TrustManager to use. com.ibm.ssl.trustStorePassword The password for the TrustStore object that you want the TrustManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.trustStoreType The type of KeyStore object that you want the default TrustManager to use. Same possible values as keyStoreType. com.ibm.ssl.trustStoreProvider Trust store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A list of which ciphers are enabled. Values are dependent on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager Sets the algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Example values: IbmX509 or IBMJ9X509. com.ibm.ssl.trustManager Sets the algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Example values: PKIX or IBMJ9X509. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.ssl-hostname-verifier",
+      "type": "javax.net.ssl.HostnameVerifier",
+      "description": "Sets the HostnameVerifier for the SSL connection. Note that it will be used after handshake on a connection and you should do actions by yourself when hostname is verified error. There is no default HostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.user-name",
+      "type": "java.lang.String",
+      "description": "Username to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-mqtt-properties",
+      "type": "org.eclipse.paho.mqttv5.common.packet.MqttProperties",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The MQTT properties set for the message. The option is a org.eclipse.paho.mqttv5.common.packet.MqttProperties type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-payload",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The byte payload for the message.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-qos",
+      "type": "java.lang.Integer",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The quality of service to publish the message at (0, 1 or 2).",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-retained",
+      "type": "java.lang.Boolean",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-topic",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-paho-starter/src/main/docs/paho.json b/components-starter/camel-paho-starter/src/main/docs/paho.json
new file mode 100644
index 0000000..c38d0e0
--- /dev/null
+++ b/components-starter/camel-paho-starter/src/main/docs/paho.json
@@ -0,0 +1,230 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.paho",
+      "type": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.paho.automatic-reconnect",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client will automatically attempt to reconnect to the server if the connection is lost. If set to false, the client will not attempt to automatically reconnect to the server in the event that the connection is lost. If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.broker-url",
+      "type": "java.lang.String",
+      "description": "The URL of the MQTT broker.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": "tcp:\/\/localhost:1883"
+    },
+    {
+      "name": "camel.component.paho.clean-session",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client and server should remember state across restarts and reconnects. If set to false both the client and server will maintain state across restarts of the client, the server and the connection. As state is maintained: Message delivery will be reliable meeting the specified QOS even if the client, server or connection are restarted. The server will treat a subscription as durable. If set to true the client and server will not maintain state across restarts of the client, the server or the connection. This means Message delivery to the specified QOS cannot be maintained if the client, server or connection are restarted The server will treat a subscription as non-durable",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.client",
+      "type": "org.eclipse.paho.client.mqttv3.MqttClient",
+      "description": "To use a shared Paho client. The option is a org.eclipse.paho.client.mqttv3.MqttClient type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.client-id",
+      "type": "java.lang.String",
+      "description": "MQTT client identifier. The identifier must be unique.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.configuration",
+      "type": "org.apache.camel.component.paho.PahoConfiguration",
+      "description": "To use the shared Paho configuration. The option is a org.apache.camel.component.paho.PahoConfiguration type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Sets the connection timeout value. This value, measured in seconds, defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 30
+    },
+    {
+      "name": "camel.component.paho.custom-web-socket-headers",
+      "type": "java.util.Properties",
+      "description": "Sets the Custom WebSocket Headers for the WebSocket Connection. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.paho.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the paho component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.executor-service-timeout",
+      "type": "java.lang.Integer",
+      "description": "Set the time in seconds that the executor service should wait when terminating before forcefully terminating. It is not recommended to change this value unless you are absolutely sure that you need to.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.paho.file-persistence-directory",
+      "type": "java.lang.String",
+      "description": "Base directory used by file persistence. Will by default use user directory.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.https-hostname-verification-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether SSL HostnameVerifier is enabled or not. The default value is true.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.keep-alive-interval",
+      "type": "java.lang.Integer",
+      "description": "Sets the keep alive interval. This value, measured in seconds, defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP\/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small ping message, which the server will acknowledge. A value of 0 disables keepalive processing in the client. The default value is 60 seconds",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.paho.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.max-inflight",
+      "type": "java.lang.Integer",
+      "description": "Sets the max inflight. please increase this value in a high traffic environment. The default value is 10",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.paho.max-reconnect-delay",
+      "type": "java.lang.Integer",
+      "description": "Get the maximum time (in millis) to wait between reconnects",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 128000
+    },
+    {
+      "name": "camel.component.paho.mqtt-version",
+      "type": "java.lang.Integer",
+      "description": "Sets the MQTT version. The default action is to connect with version 3.1.1, and to fall back to 3.1 if that fails. Version 3.1.1 or 3.1 can be selected specifically, with no fall back, by using the MQTT_VERSION_3_1_1 or MQTT_VERSION_3_1 options respectively.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.password",
+      "type": "java.lang.String",
+      "description": "Password to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.persistence",
+      "type": "org.apache.camel.component.paho.PahoPersistence",
+      "description": "Client persistence to be used - memory or file.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.qos",
+      "type": "java.lang.Integer",
+      "description": "Client quality of service level (0-2).",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.paho.retained",
+      "type": "java.lang.Boolean",
+      "description": "Retain option",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.server-u-r-is",
+      "type": "java.lang.String",
+      "description": "Set a list of one or more serverURIs the client may connect to. Multiple servers can be separated by comma. Each serverURI specifies the address of a server that the client may connect to. Two types of connection are supported tcp:\/\/ for a TCP connection and ssl:\/\/ for a TCP connection secured by SSL\/TLS. For example: tcp:\/\/localhost:1883 ssl:\/\/localhost:8883 If the port is not specified, it will default to 1883 for tcp:\/\/ URIs, and 8883 for ssl:\/\/ URIs. If serverURIs is set then it overrides the serverURI parameter passed in on the constructor of the MQTT client. When an attempt to connect is initiated the client will start with the first serverURI in the list and work through the list until a connection is established with a server. If a connection cannot be made to any of the servers then the connect attempt fails. Specifying a list of servers that a client may connect to has several uses: High Availability and reliable message delivery Some MQTT servers support a high availability feature where two or more equal MQTT servers share state. An MQTT client can connect to any of the equal servers and be assured that messages are reliably delivered and durable subscriptions are maintained no matter which server the client connects to. The cleansession flag must be set to false if durable subscriptions and\/or reliable message delivery is required. Hunt List A set of servers may be specified that are not equal (as in the high availability option). As no state is shared across the servers reliable message delivery and durable subscriptions are not valid. The cleansession flag must be set to true if the hunt list mode is used",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.socket-factory",
+      "type": "javax.net.SocketFactory",
+      "description": "Sets the SocketFactory to use. This allows an application to apply its own policies around the creation of network sockets. If using an SSL connection, an SSLSocketFactory can be used to supply application-specific security settings. The option is a javax.net.SocketFactory type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.ssl-client-props",
+      "type": "java.util.Properties",
+      "description": "Sets the SSL properties for the connection. Note that these properties are only valid if an implementation of the Java Secure Socket Extensions (JSSE) is available. These properties are not used if a custom SocketFactory has been set. The following properties can be used: com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE provider. For example IBMJSSE2 or SunJSSE com.ibm.ssl.keyStore The name of the file that contains the KeyStore object that you want the KeyManager to use. For example \/mydir\/etc\/key.p12 com.ibm.ssl.keyStorePassword The password for the KeyStore object that you want the KeyManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.keyStoreType Type of key store, for example PKCS12, JKS, or JCEKS. com.ibm.ssl.keyStoreProvider Key store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.trustStore The name of the file that contains the KeyStore object that you want the TrustManager to use. com.ibm.ssl.trustStorePassword The password for the TrustStore object that you want the TrustManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.trustStoreType The type of KeyStore object that you want the default TrustManager to use. Same possible values as keyStoreType. com.ibm.ssl.trustStoreProvider Trust store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A list of which ciphers are enabled. Values are dependent on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager Sets the algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Example values: IbmX509 or IBMJ9X509. com.ibm.ssl.trustManager Sets the algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Example values: PKIX or IBMJ9X509. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.ssl-hostname-verifier",
+      "type": "javax.net.ssl.HostnameVerifier",
+      "description": "Sets the HostnameVerifier for the SSL connection. Note that it will be used after handshake on a connection and you should do actions by yourself when hostname is verified error. There is no default HostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.user-name",
+      "type": "java.lang.String",
+      "description": "Username to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.will-payload",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.will-qos",
+      "type": "java.lang.Integer",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.will-retained",
+      "type": "java.lang.Boolean",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.will-topic",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-pdf-starter/src/main/docs/pdf.json b/components-starter/camel-pdf-starter/src/main/docs/pdf.json
new file mode 100644
index 0000000..503682a
--- /dev/null
+++ b/components-starter/camel-pdf-starter/src/main/docs/pdf.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pdf",
+      "type": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pdf.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pdf.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pdf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pdf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pdf component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pdf.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-pg-replication-slot-starter/src/main/docs/pg-replication-slot.json b/components-starter/camel-pg-replication-slot-starter/src/main/docs/pg-replication-slot.json
new file mode 100644
index 0000000..261eb51
--- /dev/null
+++ b/components-starter/camel-pg-replication-slot-starter/src/main/docs/pg-replication-slot.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pg-replication-slot",
+      "type": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pg-replication-slot.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pg-replication-slot.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pg-replication-slot.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pg-replication-slot.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pg-replication-slot.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pg-replication-slot component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-pgevent-starter/src/main/docs/pgevent.json b/components-starter/camel-pgevent-starter/src/main/docs/pgevent.json
new file mode 100644
index 0000000..64e6961
--- /dev/null
+++ b/components-starter/camel-pgevent-starter/src/main/docs/pgevent.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pgevent",
+      "type": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pgevent.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pgevent.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pgevent.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pgevent.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pgevent.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pgevent component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pgevent.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-platform-http-starter/src/main/docs/platform-http.json b/components-starter/camel-platform-http-starter/src/main/docs/platform-http.json
new file mode 100644
index 0000000..6bb6a07
--- /dev/null
+++ b/components-starter/camel-platform-http-starter/src/main/docs/platform-http.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.platform-http",
+      "type": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.platform-http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.platform-http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.platform-http.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.platform-http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.platform-http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the platform-http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.platform-http.engine",
+      "type": "org.apache.camel.component.platform.http.spi.PlatformHttpEngine",
+      "description": "An HTTP Server engine implementation to serve the requests. The option is a org.apache.camel.component.platform.http.spi.PlatformHttpEngine type.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-printer-starter/src/main/docs/printer.json b/components-starter/camel-printer-starter/src/main/docs/printer.json
new file mode 100644
index 0000000..96cdd16
--- /dev/null
+++ b/components-starter/camel-printer-starter/src/main/docs/printer.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.lpr",
+      "type": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lpr.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.lpr.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.lpr.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.lpr.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lpr component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lpr.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-protobuf-starter/src/main/docs/protobuf.json b/components-starter/camel-protobuf-starter/src/main/docs/protobuf.json
new file mode 100644
index 0000000..487b5ea
--- /dev/null
+++ b/components-starter/camel-protobuf-starter/src/main/docs/protobuf.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.protobuf",
+      "type": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.protobuf.content-type-format",
+      "type": "java.lang.String",
+      "description": "Defines a content type format in which protobuf message will be serialized\/deserialized from(to) the Java been. The format can either be native or json for either native protobuf or json fields representation. The default value is native.",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "defaultValue": "native"
+    },
+    {
+      "name": "camel.dataformat.protobuf.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.protobuf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the protobuf data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf.instance-class",
+      "type": "java.lang.String",
+      "description": "Name of class to use when unmarshalling",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-pubnub-starter/src/main/docs/pubnub.json b/components-starter/camel-pubnub-starter/src/main/docs/pubnub.json
new file mode 100644
index 0000000..1cc2d8c
--- /dev/null
+++ b/components-starter/camel-pubnub-starter/src/main/docs/pubnub.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pubnub",
+      "type": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pubnub.auth-key",
+      "type": "java.lang.String",
+      "description": "If Access Manager is utilized, client will use this authKey in all restricted requests.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pubnub.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pubnub.cipher-key",
+      "type": "java.lang.String",
+      "description": "If cipher is passed, all communications to\/from PubNub will be encrypted.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.configuration",
+      "type": "org.apache.camel.component.pubnub.PubNubConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.pubnub.PubNubConfiguration type.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pubnub.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pubnub component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pubnub.operation",
+      "type": "java.lang.String",
+      "description": "The operation to perform. PUBLISH: Default. Send a message to all subscribers of a channel. FIRE: allows the client to send a message to BLOCKS Event Handlers. These messages will go directly to any Event Handlers registered on the channel. HERENOW: Obtain information about the current state of a channel including a list of unique user-ids currently subscribed to the channel and the total occupancy count. WHERENOW: Obtain information about the current list of channels to which a uuid is subscribed to. GETSTATE: Used to get key\/value pairs specific to a subscriber uuid. State information is supplied as a JSON object of key\/value pairs SETSTATE: Used to set key\/value pairs specific to a subscriber uuid GETHISTORY: Fetches historical messages of a channel.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.publish-key",
+      "type": "java.lang.String",
+      "description": "The publish key obtained from your PubNub account. Required when publishing messages.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.secret-key",
+      "type": "java.lang.String",
+      "description": "The secret key used for message signing.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.secure",
+      "type": "java.lang.Boolean",
+      "description": "Use SSL for secure transmission.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pubnub.subscribe-key",
+      "type": "java.lang.String",
+      "description": "The subscribe key obtained from your PubNub account. Required when subscribing to channels or listening for presence events",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.uuid",
+      "type": "java.lang.String",
+      "description": "UUID to be used as a device identifier, a default UUID is generated if not passed.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.with-presence",
+      "type": "java.lang.Boolean",
+      "description": "Also subscribe to related presence information",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-pulsar-starter/src/main/docs/pulsar.json b/components-starter/camel-pulsar-starter/src/main/docs/pulsar.json
new file mode 100644
index 0000000..5e2a9aa
--- /dev/null
+++ b/components-starter/camel-pulsar-starter/src/main/docs/pulsar.json
@@ -0,0 +1,299 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pulsar",
+      "type": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pulsar.ack-group-time-millis",
+      "type": "java.lang.Long",
+      "description": "Group the consumer acknowledgments for the specified time in milliseconds - defaults to 100",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.pulsar.ack-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Timeout for unacknowledged messages in milliseconds - defaults to 10000",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.pulsar.allow-manual-acknowledgement",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow manual message acknowledgements. If this option is enabled, then messages are not acknowledged automatically after successful route completion. Instead, an instance of PulsarMessageReceipt is stored as a header on the org.apache.camel.Exchange. Messages can then be acknowledged using PulsarMessageReceipt at any time before the ackTimeout occurs.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.authentication-class",
+      "type": "java.lang.String",
+      "description": "The Authentication FQCN to be used while creating the client from URI",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.authentication-params",
+      "type": "java.lang.String",
+      "description": "The Authentication Parameters to be used while creating the client from URI",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.auto-configuration",
+      "type": "org.apache.camel.component.pulsar.utils.AutoConfiguration",
+      "description": "The pulsar auto configuration. The option is a org.apache.camel.component.pulsar.utils.AutoConfiguration type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pulsar.batcher-builder",
+      "type": "org.apache.pulsar.client.api.BatcherBuilder",
+      "description": "Control batching method used by the producer. The option is a org.apache.pulsar.client.api.BatcherBuilder type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.batching-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Control whether automatic batching of messages is enabled for the producer.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pulsar.batching-max-messages",
+      "type": "java.lang.Integer",
+      "description": "The maximum size to batch messages.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.pulsar.batching-max-publish-delay-micros",
+      "type": "java.lang.Long",
+      "description": "The maximum time period within which the messages sent will be batched if batchingEnabled is true.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.pulsar.block-if-queue-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether to block the producing thread if pending messages queue is full or to throw a ProducerQueueIsFullError",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.compression-type",
+      "type": "org.apache.pulsar.client.api.CompressionType",
+      "description": "Compression type to use",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.configuration",
+      "type": "org.apache.camel.component.pulsar.PulsarConfiguration",
+      "description": "Allows to pre-configure the Pulsar component with common options that the endpoints will reuse. The option is a org.apache.camel.component.pulsar.PulsarConfiguration type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.consumer-name",
+      "type": "java.lang.String",
+      "description": "Name of the consumer when subscription is EXCLUSIVE",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": "sole-consumer"
+    },
+    {
+      "name": "camel.component.pulsar.consumer-name-prefix",
+      "type": "java.lang.String",
+      "description": "Prefix to add to consumer names when a SHARED or FAILOVER subscription is used",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": "cons"
+    },
+    {
+      "name": "camel.component.pulsar.consumer-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Size of the consumer queue - defaults to 10",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.pulsar.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pulsar.dead-letter-topic",
+      "type": "java.lang.String",
+      "description": "Name of the topic where the messages which fail maxRedeliverCount times will be sent. Note: if not set, default topic name will be topicName-subscriptionName-DLQ",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pulsar component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.initial-sequence-id",
+      "type": "java.lang.Long",
+      "description": "The first message published will have a sequence Id of initialSequenceId 1.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.pulsar.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.max-pending-messages",
+      "type": "java.lang.Integer",
+      "description": "Size of the pending massages queue. When the queue is full, by default, any further sends will fail unless blockIfQueueFull=true",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.pulsar.max-pending-messages-across-partitions",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of pending messages for partitioned topics. The maxPendingMessages value will be reduced if (number of partitions maxPendingMessages) exceeds this value. Partitioned topics have a pending message queue for each partition.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 50000
+    },
+    {
+      "name": "camel.component.pulsar.max-redeliver-count",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of times that a message will be redelivered before being sent to the dead letter queue. If this value is not set, no Dead Letter Policy will be created",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.message-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use the messageListener interface, or to receive messages using a separate thread pool",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pulsar.message-router",
+      "type": "org.apache.pulsar.client.api.MessageRouter",
+      "description": "Custom Message Router to use. The option is a org.apache.pulsar.client.api.MessageRouter type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.message-routing-mode",
+      "type": "org.apache.pulsar.client.api.MessageRoutingMode",
+      "description": "Message Routing Mode to use",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.negative-ack-redelivery-delay-micros",
+      "type": "java.lang.Long",
+      "description": "Set the negative acknowledgement delay",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 60000000
+    },
+    {
+      "name": "camel.component.pulsar.number-of-consumer-threads",
+      "type": "java.lang.Integer",
+      "description": "Number of threads to receive and handle messages when using a separate thread pool",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.pulsar.number-of-consumers",
+      "type": "java.lang.Integer",
+      "description": "Number of consumers - defaults to 1",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.pulsar.producer-name",
+      "type": "java.lang.String",
+      "description": "Name of the producer. If unset, lets Pulsar select a unique identifier.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.pulsar-client",
+      "type": "org.apache.pulsar.client.api.PulsarClient",
+      "description": "The pulsar client. The option is a org.apache.pulsar.client.api.PulsarClient type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.pulsar-message-receipt-factory",
+      "type": "org.apache.camel.component.pulsar.PulsarMessageReceiptFactory",
+      "description": "Provide a factory to create an alternate implementation of PulsarMessageReceipt. The option is a org.apache.camel.component.pulsar.PulsarMessageReceiptFactory type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.read-compacted",
+      "type": "java.lang.Boolean",
+      "description": "Enable compacted topic reading.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.send-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "Send timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.pulsar.service-url",
+      "type": "java.lang.String",
+      "description": "The Pulsar Service URL to point while creating the client from URI",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-initial-position",
+      "type": "org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
+      "description": "Control the initial position in the topic of a newly created subscription. Default is latest message.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-name",
+      "type": "java.lang.String",
+      "description": "Name of the subscription to use",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": "subs"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-topics-mode",
+      "type": "org.apache.pulsar.client.api.RegexSubscriptionMode",
+      "description": "Determines to which topics this consumer should be subscribed to - Persistent, Non-Persistent, or both. Only used with pattern subscriptions.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-type",
+      "type": "org.apache.camel.component.pulsar.utils.consumers.SubscriptionType",
+      "description": "Type of the subscription EXCLUSIVESHAREDFAILOVERKEY_SHARED, defaults to EXCLUSIVE",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.topics-pattern",
+      "type": "java.lang.Boolean",
+      "description": "Whether the topic is a pattern (regular expression) that allows the consumer to subscribe to all matching topics in the namespace",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-quartz-starter/src/main/docs/quartz.json b/components-starter/camel-quartz-starter/src/main/docs/quartz.json
new file mode 100644
index 0000000..05b4afa
--- /dev/null
+++ b/components-starter/camel-quartz-starter/src/main/docs/quartz.json
@@ -0,0 +1,114 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.quartz",
+      "type": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.quartz.auto-start-scheduler",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the scheduler should be auto started. This options is default true",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quartz.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.quartz.enable-jmx",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable Quartz JMX which allows to manage the Quartz scheduler from JMX. This options is default true",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the quartz component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.interrupt-jobs-on-shutdown",
+      "type": "java.lang.Boolean",
+      "description": "Whether to interrupt jobs on shutdown which forces the scheduler to shutdown quicker and attempt to interrupt any running jobs. If this is enabled then any running jobs can fail due to being interrupted. When a job is interrupted then Camel will mark the exchange to stop continue routing and set java.util.concurrent.RejectedExecutionException as caused exception. Therefore use this with care, as its often better to allow Camel jobs to complete and shutdown gracefully.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quartz.prefix-instance-name",
+      "type": "java.lang.Boolean",
+      "description": "Whether to prefix the Quartz Scheduler instance name with the CamelContext name. This is enabled by default, to let each CamelContext use its own Quartz scheduler instance by default. You can set this option to false to reuse Quartz scheduler instances between multiple CamelContext's.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.prefix-job-name-with-endpoint-id",
+      "type": "java.lang.Boolean",
+      "description": "Whether to prefix the quartz job with the endpoint id. This option is default false.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quartz.properties",
+      "type": "java.util.Map",
+      "description": "Properties to configure the Quartz scheduler.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.properties-file",
+      "type": "java.lang.String",
+      "description": "File name of the properties to load from the classpath",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.properties-ref",
+      "type": "java.lang.String",
+      "description": "References to an existing Properties or Map to lookup in the registry to use for configuring quartz.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.scheduler",
+      "type": "org.quartz.Scheduler",
+      "description": "To use the custom configured Quartz scheduler, instead of creating a new Scheduler. The option is a org.quartz.Scheduler type.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.scheduler-factory",
+      "type": "org.quartz.SchedulerFactory",
+      "description": "To use the custom SchedulerFactory which is used to create the Scheduler. The option is a org.quartz.SchedulerFactory type.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.start-delayed-seconds",
+      "type": "java.lang.Integer",
+      "description": "Seconds to wait before starting the quartz scheduler.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-quickfix-starter/src/main/docs/quickfix.json b/components-starter/camel-quickfix-starter/src/main/docs/quickfix.json
new file mode 100644
index 0000000..bffc746
--- /dev/null
+++ b/components-starter/camel-quickfix-starter/src/main/docs/quickfix.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.quickfix",
+      "type": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.quickfix.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quickfix.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quickfix.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.quickfix.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the quickfix component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.lazy-create-engines",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, the engines will be created and started when needed (when first message is send)",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quickfix.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quickfix.log-factory",
+      "type": "quickfix.LogFactory",
+      "description": "To use the given LogFactory. The option is a quickfix.LogFactory type.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.message-factory",
+      "type": "quickfix.MessageFactory",
+      "description": "To use the given MessageFactory. The option is a quickfix.MessageFactory type.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.message-store-factory",
+      "type": "quickfix.MessageStoreFactory",
+      "description": "To use the given MessageStoreFactory. The option is a quickfix.MessageStoreFactory type.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-rabbitmq-starter/src/main/docs/rabbitmq.json b/components-starter/camel-rabbitmq-starter/src/main/docs/rabbitmq.json
new file mode 100644
index 0000000..086bd3b
--- /dev/null
+++ b/components-starter/camel-rabbitmq-starter/src/main/docs/rabbitmq.json
@@ -0,0 +1,403 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rabbitmq",
+      "type": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rabbitmq.additional-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Map of additional headers. These headers will be set only when the 'allowCustomHeaders' is set to true",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Map of additional properties. These are standard RabbitMQ properties as defined in com.rabbitmq.client.AMQP.BasicProperties The map keys should be from org.apache.camel.component.rabbitmq.RabbitMQConstants. Any other keys will be ignored. When the message already contains these headers they will be given precedence over these properties.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.addresses",
+      "type": "java.lang.String",
+      "description": "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",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.allow-null-headers",
+      "type": "java.lang.Boolean",
+      "description": "Allow pass null values to header",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.args",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Specify arguments for configuring the different RabbitMQ concepts, a different prefix is required for each: Exchange: arg.exchange. Queue: arg.queue. Binding: arg.binding. DLQ: arg.dlq.queue. DLQ Binding: arg.dlq.binding. For example to declare a queue with message ttl argument: http:\/\/localhost:5672\/exchange\/queueargs=arg.queue.x-message-ttl=60000",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.auto-ack",
+      "type": "java.lang.Boolean",
+      "description": "If messages should be auto acknowledged",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.auto-delete",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the exchange will be deleted when it is no longer in use",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.auto-detect-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.automatic-recovery-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables connection automatic recovery (uses connection implementation that performs automatic recovery when connection shutdown is not initiated by the application)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.channel-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Get maximum number of opened channel in pool",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.rabbitmq.channel-pool-max-wait",
+      "type": "java.lang.Long",
+      "description": "Set the maximum number of milliseconds to wait for a channel from the pool",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.rabbitmq.client-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Connection client properties (client info used in negotiating with the server)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.connection-factory",
+      "type": "com.rabbitmq.client.ConnectionFactory",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.connection-factory-exception-handler",
+      "type": "com.rabbitmq.client.ExceptionHandler",
+      "description": "Custom rabbitmq ExceptionHandler for ConnectionFactory. The option is a com.rabbitmq.client.ExceptionHandler type.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Connection timeout",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.rabbitmq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-exchange",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-exchange-type",
+      "type": "java.lang.String",
+      "description": "The type of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "direct"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-queue",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter queue",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-routing-key",
+      "type": "java.lang.String",
+      "description": "The routing key for the dead letter exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.declare",
+      "type": "java.lang.Boolean",
+      "description": "If the option is true, camel declare the exchange and queue name and bind them together. If the option is false, camel won't declare the exchange and queue name on the server.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.durable",
+      "type": "java.lang.Boolean",
+      "description": "If we are declaring a durable exchange (the exchange will survive a server restart)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rabbitmq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.exclusive",
+      "type": "java.lang.Boolean",
+      "description": "Exclusive queues may only be accessed by the current connection, and are deleted when that connection closes.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.exclusive-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Request exclusive access to the queue (meaning only this consumer can access the queue). This is useful when you want a long-lived shared queue to be temporarily accessible by just one consumer.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.guaranteed-deliveries",
+      "type": "java.lang.Boolean",
+      "description": "When true, an exception will be thrown when the message cannot be delivered (basic.return) and the message is marked as mandatory. PublisherAcknowledgement will also be activated in this case. See also publisher acknowledgements - When will messages be confirmed.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.hostname",
+      "type": "java.lang.String",
+      "description": "The hostname of the running RabbitMQ instance or cluster.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.immediate",
+      "type": "java.lang.Boolean",
+      "description": "This flag tells the server how to react if the message cannot be routed to a queue consumer immediately. If this flag is set, the server will return an undeliverable message with a Return method. If this flag is zero, the server will queue the message, but with no guarantee that it will ever be consumed. If the header is present rabbitmq.IMMEDIATE it will override this option.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.mandatory",
+      "type": "java.lang.Boolean",
+      "description": "This flag tells the server how to react if the message cannot be routed to a queue. If this flag is set, the server will return an unroutable message with a Return method. If this flag is zero, the server silently drops the message. If the header is present rabbitmq.MANDATORY it will override this option.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.network-recovery-interval",
+      "type": "java.lang.Integer",
+      "description": "Network recovery interval in milliseconds (interval used when recovering from network failure)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.rabbitmq.passive",
+      "type": "java.lang.Boolean",
+      "description": "Passive queues depend on the queue already to be available at RabbitMQ.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.password",
+      "type": "java.lang.String",
+      "description": "Password for authenticated access",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "guest"
+    },
+    {
+      "name": "camel.component.rabbitmq.port-number",
+      "type": "java.lang.Integer",
+      "description": "Port number for the host with the running rabbitmq instance or cluster.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 5672
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of messages that the server will deliver, 0 if unlimited. You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables the quality of service on the RabbitMQConsumer side. You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-global",
+      "type": "java.lang.Boolean",
+      "description": "If the settings should be applied to the entire channel rather than each consumer You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of content (measured in octets) that the server will deliver, 0 if unlimited. You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.publisher-acknowledgements",
+      "type": "java.lang.Boolean",
+      "description": "When true, the message will be published with publisher acknowledgements turned on",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.publisher-acknowledgements-timeout",
+      "type": "java.lang.Long",
+      "description": "The amount of time in milliseconds to wait for a basic.ack response from RabbitMQ server",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.recover-from-declare-exception",
+      "type": "java.lang.Boolean",
+      "description": "Decides whether an exception during declaration of exchanges or queues is recoverable or not. If the option is false, camel will throw an exception when starting the consumer, which will interrupt application startup (e.g. in the case when the exchange \/ queue is already declared in RabbitMQ and has incompatible configuration). If set to true, the consumer will try to reconnect periodically.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Set timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.rabbitmq.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Set requestTimeoutCheckerInterval for inOut exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.rabbitmq.requested-channel-max",
+      "type": "java.lang.Integer",
+      "description": "Connection requested channel max (max number of channels offered)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 2047
+    },
+    {
+      "name": "camel.component.rabbitmq.requested-frame-max",
+      "type": "java.lang.Integer",
+      "description": "Connection requested frame max (max size of frame offered)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.rabbitmq.requested-heartbeat",
+      "type": "java.lang.Integer",
+      "description": "Connection requested heartbeat (heart-beat in seconds offered)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.rabbitmq.skip-exchange-declare",
+      "type": "java.lang.Boolean",
+      "description": "This can be used if we need to declare the queue but not the exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.skip-queue-bind",
+      "type": "java.lang.Boolean",
+      "description": "If true the queue will not be bound to the exchange after declaring it",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.skip-queue-declare",
+      "type": "java.lang.Boolean",
+      "description": "If true the producer will not declare and bind a queue. This can be used for directing messages via an existing routing key.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.ssl-protocol",
+      "type": "java.lang.String",
+      "description": "Enables SSL on connection, accepted value are true, TLS and 'SSLv3",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.thread-pool-size",
+      "type": "java.lang.Integer",
+      "description": "The consumer uses a Thread Pool Executor with a fixed number of threads. This setting allows you to set that number of threads.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.rabbitmq.topology-recovery-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables connection topology recovery (should topology recovery be performed)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "When true and an inOut Exchange failed on the consumer side send the caused Exception back in the response",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.trust-manager",
+      "type": "javax.net.ssl.TrustManager",
+      "description": "Configure SSL trust manager, SSL should be enabled for this option to be effective. The option is a javax.net.ssl.TrustManager type.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.username",
+      "type": "java.lang.String",
+      "description": "Username in case of authenticated access",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "guest"
+    },
+    {
+      "name": "camel.component.rabbitmq.vhost",
+      "type": "java.lang.String",
+      "description": "The vhost for the channel",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "\/"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-reactive-streams-starter/src/main/docs/reactive-streams.json b/components-starter/camel-reactive-streams-starter/src/main/docs/reactive-streams.json
new file mode 100644
index 0000000..aa4b685
--- /dev/null
+++ b/components-starter/camel-reactive-streams-starter/src/main/docs/reactive-streams.json
@@ -0,0 +1,88 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.reactive-streams",
+      "type": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.reactive-streams.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.reactive-streams.backpressure-strategy",
+      "type": "org.apache.camel.component.reactive.streams.ReactiveStreamsBackpressureStrategy",
+      "description": "The backpressure strategy to use when pushing events to a slow subscriber.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.reactive-streams.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.reactive-streams.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the reactive-streams component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.reactive-streams.reactive-streams-engine-configuration",
+      "type": "org.apache.camel.component.reactive.streams.engine.ReactiveStreamsEngineConfiguration",
+      "description": "To use an existing reactive stream engine configuration. The option is a org.apache.camel.component.reactive.streams.engine.ReactiveStreamsEngineConfiguration type.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.service-type",
+      "type": "java.lang.String",
+      "description": "Set the type of the underlying reactive streams implementation to use. The implementation is looked up from the registry or using a ServiceLoader, the default implementation is DefaultCamelReactiveStreamsService",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.thread-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used by the reactive streams internal engine.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.reactive-streams.thread-pool-min-size",
+      "type": "java.lang.Integer",
+      "description": "The minimum number of threads used by the reactive streams internal engine.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.thread-pool-name",
+      "type": "java.lang.String",
+      "description": "The name of the thread pool used by the reactive streams internal engine.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": "CamelReactiveStreamsWorker"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-reactor-starter/src/main/docs/reactor.json b/components-starter/camel-reactor-starter/src/main/docs/reactor.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-reactor-starter/src/main/docs/reactor.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ref-starter/src/main/docs/ref.json b/components-starter/camel-ref-starter/src/main/docs/ref.json
new file mode 100644
index 0000000..8835428
--- /dev/null
+++ b/components-starter/camel-ref-starter/src/main/docs/ref.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ref",
+      "type": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ref.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ref.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ref.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ref.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ref.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ref component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ref.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-resilience4j-starter/src/main/docs/resilience4j.json b/components-starter/camel-resilience4j-starter/src/main/docs/resilience4j.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-resilience4j-starter/src/main/docs/resilience4j.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-rest-openapi-starter/src/main/docs/rest-openapi.json b/components-starter/camel-rest-openapi-starter/src/main/docs/rest-openapi.json
new file mode 100644
index 0000000..b4f4f15
--- /dev/null
+++ b/components-starter/camel-rest-openapi-starter/src/main/docs/rest-openapi.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rest-openapi",
+      "type": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rest-openapi.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest-openapi.base-path",
+      "type": "java.lang.String",
+      "description": "API basePath, for example \/v2. Default is unset, if set overrides the value present in OpenApi specification.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.component-name",
+      "type": "java.lang.String",
+      "description": "Name of the Camel component that will perform the requests. The component must be present in Camel registry and it must implement RestProducerFactory service provider interface. If not set CLASSPATH is searched for single component that implements RestProducerFactory SPI. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.consumes",
+      "type": "java.lang.String",
+      "description": "What payload type this component capable of consuming. Could be one type, like application\/json or multiple types as application\/json, application\/xml; q=0.5 according to the RFC7231. This equates to the value of Accept HTTP header. If set overrides any value found in the OpenApi specification. Can be overridden in endpoint configuration",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest-openapi.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest-openapi component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.host",
+      "type": "java.lang.String",
+      "description": "Scheme hostname and port to direct the HTTP requests to in the form of https:\/\/hostname:port. Can be configured at the endpoint, component or in the corresponding REST configuration in the Camel Context. If you give this component a name (e.g. petstore) that REST configuration is consulted first, rest-openapi next, and global configuration last. If set overrides any value found in the OpenApi specification, RestConfiguration. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest-openapi.produces",
+      "type": "java.lang.String",
+      "description": "What payload type this component is producing. For example application\/json according to the RFC7231. This equates to the value of Content-Type HTTP header. If set overrides any value present in the OpenApi specification. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.specification-uri",
+      "type": "java.net.URI",
+      "description": "Path to the OpenApi specification file. The scheme, host base path are taken from this specification, but these can be overridden with properties on the component or endpoint level. If not given the component tries to load openapi.json resource. Note that the host defined on the component and endpoint of this Component should contain the scheme, hostname and optionally the port in the URI syntax (i.e. https:\/\/api.example.com:8080). Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Customize TLS parameters used by the component. If not set defaults to the TLS parameters set in the Camel context. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-rest-starter/src/main/docs/rest.json b/components-starter/camel-rest-starter/src/main/docs/rest.json
new file mode 100644
index 0000000..cdb9fb4
--- /dev/null
+++ b/components-starter/camel-rest-starter/src/main/docs/rest.json
@@ -0,0 +1,118 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rest",
+      "type": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-api",
+      "type": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-api.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.rest.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rest-api.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest-api.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest-api.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest-api.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest-api component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.api-doc",
+      "type": "java.lang.String",
+      "description": "The swagger api doc resource to use. The resource is loaded from classpath by default and must be in JSON format.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest.consumer-component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.host",
+      "type": "java.lang.String",
+      "description": "Host and port of HTTP service to use (override host in swagger schema)",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest.producer-component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-rest-swagger-starter/src/main/docs/rest-swagger.json b/components-starter/camel-rest-swagger-starter/src/main/docs/rest-swagger.json
new file mode 100644
index 0000000..919b8d7
--- /dev/null
+++ b/components-starter/camel-rest-swagger-starter/src/main/docs/rest-swagger.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rest-swagger",
+      "type": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rest-swagger.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest-swagger.base-path",
+      "type": "java.lang.String",
+      "description": "API basePath, for example \/v2. Default is unset, if set overrides the value present in Swagger specification.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.component-name",
+      "type": "java.lang.String",
+      "description": "Name of the Camel component that will perform the requests. The component must be present in Camel registry and it must implement RestProducerFactory service provider interface. If not set CLASSPATH is searched for single component that implements RestProducerFactory SPI. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.consumes",
+      "type": "java.lang.String",
+      "description": "What payload type this component capable of consuming. Could be one type, like application\/json or multiple types as application\/json, application\/xml; q=0.5 according to the RFC7231. This equates to the value of Accept HTTP header. If set overrides any value found in the Swagger specification. Can be overridden in endpoint configuration",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest-swagger.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest-swagger component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.host",
+      "type": "java.lang.String",
+      "description": "Scheme hostname and port to direct the HTTP requests to in the form of https:\/\/hostname:port. Can be configured at the endpoint, component or in the corresponding REST configuration in the Camel Context. If you give this component a name (e.g. petstore) that REST configuration is consulted first, rest-swagger next, and global configuration last. If set overrides any value found in the Swagger specification, RestConfiguration. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest-swagger.produces",
+      "type": "java.lang.String",
+      "description": "What payload type this component is producing. For example application\/json according to the RFC7231. This equates to the value of Content-Type HTTP header. If set overrides any value present in the Swagger specification. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.specification-uri",
+      "type": "java.net.URI",
+      "description": "Path to the Swagger specification file. The scheme, host base path are taken from this specification, but these can be overridden with properties on the component or endpoint level. If not given the component tries to load swagger.json resource. Note that the host defined on the component and endpoint of this Component should contain the scheme, hostname and optionally the port in the URI syntax (i.e. https:\/\/api.example.com:8080). Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Customize TLS parameters used by the component. If not set defaults to the TLS parameters set in the Camel context. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-resteasy-starter/src/main/docs/resteasy.json b/components-starter/camel-resteasy-starter/src/main/docs/resteasy.json
new file mode 100644
index 0000000..ff20fa1
--- /dev/null
+++ b/components-starter/camel-resteasy-starter/src/main/docs/resteasy.json
@@ -0,0 +1,146 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.resteasy",
+      "type": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.resteasy.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.auth-caching-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables authentication scheme caching",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.automatic-retries-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic request recovery and re-execution",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.resteasy.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.connection-state-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables connection state tracking",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.content-compression-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic content decompression",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.cookie-management-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables state (cookie) management",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.copy-headers",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN headers).",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.resteasy.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.resteasy.default-user-agent-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables the default user agent set by this builder if none has been provided by the user",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the resteasy component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.proxy-consumers-classes",
+      "type": "java.lang.String",
+      "description": "Proxy classes for consumer endpoints. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.redirect-handling-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic redirect handling",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.response-payload-streaming-threshold",
+      "type": "java.lang.Integer",
+      "description": "This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.resteasy.skip-request-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.skip-response-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ribbon-starter/src/main/docs/ribbon.json b/components-starter/camel-ribbon-starter/src/main/docs/ribbon.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-ribbon-starter/src/main/docs/ribbon.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-robotframework-starter/src/main/docs/robotframework.json b/components-starter/camel-robotframework-starter/src/main/docs/robotframework.json
new file mode 100644
index 0000000..6550e42
--- /dev/null
+++ b/components-starter/camel-robotframework-starter/src/main/docs/robotframework.json
@@ -0,0 +1,348 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.robotframework",
+      "type": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.robotframework.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.argument-file",
+      "type": "java.io.File",
+      "description": "A text file to read more arguments from.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.robotframework.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.combined-tag-stats",
+      "type": "java.lang.String",
+      "description": "Creates combined statistics based on tags. Use the format tags:title List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.configuration",
+      "type": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration",
+      "description": "The configuration. The option is a org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration type.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.critical-tags",
+      "type": "java.lang.String",
+      "description": "Tests that have the given tags are considered critical. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.robotframework.debug-file",
+      "type": "java.io.File",
+      "description": "A debug file that is written during execution.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.document",
+      "type": "java.lang.String",
+      "description": "Sets the documentation of the top-level tests suites.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.dryrun",
+      "type": "java.lang.Boolean",
+      "description": "Sets dryrun mode on use. In the dry run mode tests are run without executing keywords originating from test libraries. Useful for validating test data syntax.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the robotframework component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.excludes",
+      "type": "java.lang.String",
+      "description": "Selects the tests cases by tags. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.exit-on-failure",
+      "type": "java.lang.Boolean",
+      "description": "Sets robot to stop execution immediately if a critical test fails.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.includes",
+      "type": "java.lang.String",
+      "description": "Selects the tests cases by tags. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.listener",
+      "type": "java.lang.String",
+      "description": "Sets a single listener for monitoring tests execution",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.listeners",
+      "type": "java.lang.String",
+      "description": "Sets multiple listeners for monitoring tests execution. Use the format ListenerWithArgs:arg1:arg2 or simply ListenerWithoutArgs List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.log",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated log file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.log-level",
+      "type": "java.lang.String",
+      "description": "Sets the threshold level for logging.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.log-title",
+      "type": "java.lang.String",
+      "description": "Sets a title for the generated tests log.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.metadata",
+      "type": "java.lang.String",
+      "description": "Sets free metadata for the top level tests suites. comma seperated list of string resulting as List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.monitor-colors",
+      "type": "java.lang.String",
+      "description": "Using ANSI colors in console. Normally colors work in unixes but not in Windows. Default is 'on'. 'on' - use colors in unixes but not in Windows 'off' - never use colors 'force' - always use colors (also in Windows)",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.monitor-width",
+      "type": "java.lang.String",
+      "description": "Width of the monitor output. Default is 78.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": "78"
+    },
+    {
+      "name": "camel.component.robotframework.name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the top-level tests suites.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.no-status-return-code",
+      "type": "java.lang.Boolean",
+      "description": "If true, sets the return code to zero regardless of failures in test cases. Error codes are returned normally.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.non-critical-tags",
+      "type": "java.lang.String",
+      "description": "Tests that have the given tags are not critical. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.output",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated output file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.output-directory",
+      "type": "java.io.File",
+      "description": "Configures where generated reports are to be placed.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.randomize",
+      "type": "java.lang.String",
+      "description": "Sets the test execution order to be randomized. Valid values are all, suite, and test",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.report",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated report file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.report-background",
+      "type": "java.lang.String",
+      "description": "Sets background colors for the generated report and summary.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.report-title",
+      "type": "java.lang.String",
+      "description": "Sets a title for the generated tests report.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.run-empty-suite",
+      "type": "java.lang.Boolean",
+      "description": "Executes tests also if the top level test suite is empty. Useful e.g. with --include\/--exclude when it is not an error that no test matches the condition.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.run-failed",
+      "type": "java.io.File",
+      "description": "Re-run failed tests, based on output.xml file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.run-mode",
+      "type": "java.lang.String",
+      "description": "Sets the execution mode for this tests run. Note that this setting has been deprecated in Robot Framework 2.8. Use separate dryryn, skipTeardownOnExit, exitOnFailure, and randomize settings instead.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.skip-teardown-on-exit",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the teardowns are skipped if the test execution is prematurely stopped.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.split-outputs",
+      "type": "java.lang.String",
+      "description": "Splits output and log files.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.suite-stat-level",
+      "type": "java.lang.String",
+      "description": "Defines how many levels to show in the Statistics by Suite table in outputs.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.suites",
+      "type": "java.lang.String",
+      "description": "Selects the tests suites by name. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.summary-title",
+      "type": "java.lang.String",
+      "description": "Sets a title for the generated summary report.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-docs",
+      "type": "java.lang.String",
+      "description": "Adds documentation to the specified tags. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-stat-excludes",
+      "type": "java.lang.String",
+      "description": "Excludes these tags from the Statistics by Tag and Test Details by Tag tables in outputs. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-stat-includes",
+      "type": "java.lang.String",
+      "description": "Includes only these tags in the Statistics by Tag and Test Details by Tag tables in outputs. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-stat-links",
+      "type": "java.lang.String",
+      "description": "Adds external links to the Statistics by Tag table in outputs. Use the format pattern:link:title List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tags",
+      "type": "java.lang.String",
+      "description": "Sets the tags(s) to all executed tests cases. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tests",
+      "type": "java.lang.String",
+      "description": "Selects the tests cases by name. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.timestamp-outputs",
+      "type": "java.lang.Boolean",
+      "description": "Adds a timestamp to all output files.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.variable-files",
+      "type": "java.lang.String",
+      "description": "Sets variables using variables files. Use the format path:args List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.variables",
+      "type": "java.lang.String",
+      "description": "Sets individual variables. Use the format name:value List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.warn-on-skipped-files",
+      "type": "java.lang.Boolean",
+      "description": "Show a warning when an invalid file is skipped.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.xunit-file",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated XUnit compatible result file, relative to outputDirectory. The file is in xml format. By default, the file name is derived from the testCasesDirectory parameter, replacing blanks in the directory name by underscores.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-rss-starter/src/main/docs/rss.json b/components-starter/camel-rss-starter/src/main/docs/rss.json
new file mode 100644
index 0000000..6469f6b
--- /dev/null
+++ b/components-starter/camel-rss-starter/src/main/docs/rss.json
@@ -0,0 +1,65 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rss",
+      "type": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rss.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.rss",
+      "type": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.rss.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rss.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rss.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rss.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rss.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rss component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.rss.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.rss.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rss data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-rxjava-starter/src/main/docs/rxjava.json b/components-starter/camel-rxjava-starter/src/main/docs/rxjava.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-rxjava-starter/src/main/docs/rxjava.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-saga-starter/src/main/docs/saga.json b/components-starter/camel-saga-starter/src/main/docs/saga.json
new file mode 100644
index 0000000..a3a814b
--- /dev/null
+++ b/components-starter/camel-saga-starter/src/main/docs/saga.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.saga",
+      "type": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.saga.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.saga.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.saga.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.saga.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the saga component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.saga.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json b/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json
new file mode 100644
index 0000000..060d6d2
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/main/docs/salesforce.json
@@ -0,0 +1,572 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.salesforce",
+      "type": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.salesforce.all-or-none",
+      "type": "java.lang.Boolean",
+      "description": "Composite API option to indicate to rollback all records if any are not successful.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.apex-method",
+      "type": "java.lang.String",
+      "description": "APEX method name",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.apex-query-params",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Query params for APEX method",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.apex-url",
+      "type": "java.lang.String",
+      "description": "APEX method URL",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.api-version",
+      "type": "java.lang.String",
+      "description": "Salesforce API version.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": "50.0"
+    },
+    {
+      "name": "camel.component.salesforce.authentication-type",
+      "type": "org.apache.camel.component.salesforce.AuthenticationType",
+      "description": "Explicit authentication method to be used, one of USERNAME_PASSWORD, REFRESH_TOKEN or JWT. Salesforce component can auto-determine the authentication method to use from the properties set, set this property to eliminate any ambiguity.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.salesforce.backoff-increment",
+      "type": "java.lang.Long",
+      "description": "Backoff interval increment for Streaming connection restart attempts for failures beyond CometD auto-reconnect. The option is a long type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.salesforce.batch-id",
+      "type": "java.lang.String",
+      "description": "Bulk API Batch ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.client-id",
+      "type": "java.lang.String",
+      "description": "OAuth Consumer Key of the connected app configured in the Salesforce instance setup. Typically a connected app needs to be configured but one can be provided by installing a package.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.client-secret",
+      "type": "java.lang.String",
+      "description": "OAuth Consumer Secret of the connected app configured in the Salesforce instance setup.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.composite-method",
+      "type": "java.lang.String",
+      "description": "Composite (raw) method.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.config",
+      "type": "org.apache.camel.component.salesforce.SalesforceEndpointConfig",
+      "description": "Global endpoint configuration - use to set values that are common to all endpoints. The option is a org.apache.camel.component.salesforce.SalesforceEndpointConfig type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.content-type",
+      "type": "org.apache.camel.component.salesforce.api.dto.bulk.ContentType",
+      "description": "Bulk API content type, one of XML, CSV, ZIP_XML, ZIP_CSV",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.salesforce.default-replay-id",
+      "type": "java.lang.Long",
+      "description": "Default replayId setting if no value is found in initialReplayIdMap",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.salesforce.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the salesforce component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.format",
+      "type": "org.apache.camel.component.salesforce.internal.PayloadFormat",
+      "description": "Payload format to use for Salesforce API calls, either JSON or XML, defaults to JSON. As of Camel 3.12, this option only applies to the Raw operation.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-client",
+      "type": "org.apache.camel.component.salesforce.SalesforceHttpClient",
+      "description": "Custom Jetty Http Client to use to connect to Salesforce. The option is a org.apache.camel.component.salesforce.SalesforceHttpClient type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-client-connection-timeout",
+      "type": "java.lang.Long",
+      "description": "Connection timeout used by the HttpClient when connecting to the Salesforce server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.salesforce.http-client-idle-timeout",
+      "type": "java.lang.Long",
+      "description": "Timeout used by the HttpClient when waiting for response from the Salesforce server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.salesforce.http-client-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-max-content-length",
+      "type": "java.lang.Integer",
+      "description": "Max content length of an HTTP response.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-auth-uri",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-excluded-addresses",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "A list of addresses for which HTTP proxy server should not be used.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "Hostname of the HTTP proxy server to use.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-included-addresses",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "A list of addresses for which HTTP proxy server should be used.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "Password to use to authenticate against the HTTP proxy server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "Port number of the HTTP proxy server to use.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-realm",
+      "type": "java.lang.String",
+      "description": "Realm of the proxy server, used in preemptive Basic\/Digest authentication methods against the HTTP proxy server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-secure",
+      "type": "java.lang.Boolean",
+      "description": "If set to false disables the use of TLS when accessing the HTTP proxy.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-socks4",
+      "type": "java.lang.Boolean",
+      "description": "If set to true the configures the HTTP proxy to use as a SOCKS4 proxy.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-use-digest-auth",
+      "type": "java.lang.Boolean",
+      "description": "If set to true Digest authentication will be used when authenticating to the HTTP proxy, otherwise Basic authorization method will be used",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-username",
+      "type": "java.lang.String",
+      "description": "Username to use to authenticate against the HTTP proxy server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-request-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "HTTP request buffer size. May need to be increased for large SOQL queries.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.salesforce.include-details",
+      "type": "java.lang.Boolean",
+      "description": "Include details in Salesforce1 Analytics report, defaults to false.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.initial-replay-id-map",
+      "type": "java.util.Map<java.lang.String,java.lang.Long>",
+      "description": "Replay IDs to start from per channel name.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.instance-id",
+      "type": "java.lang.String",
+      "description": "Salesforce1 Analytics report execution instance ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.instance-url",
+      "type": "java.lang.String",
+      "description": "URL of the Salesforce instance used after authentication, by default received from Salesforce on successful authentication",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.job-id",
+      "type": "java.lang.String",
+      "description": "Bulk API Job ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.jwt-audience",
+      "type": "java.lang.String",
+      "description": "Value to use for the Audience claim (aud) when using OAuth JWT flow. If not set, the login URL will be used, which is appropriate in most cases.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.keystore",
+      "type": "org.apache.camel.support.jsse.KeyStoreParameters",
+      "description": "KeyStore parameters to use in OAuth JWT flow. The KeyStore should contain only one entry with private key and certificate. Salesforce does not verify the certificate chain, so this can easily be a selfsigned certificate. Make sure that you upload the certificate to the corresponding connected app. The option is a org.apache.camel.support.jsse.KeyStoreParameters type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.lazy-login",
+      "type": "java.lang.Boolean",
+      "description": "If set to true prevents the component from authenticating to Salesforce with the start of the component. You would generally set this to the (default) false and authenticate early and be immediately aware of any authentication issues.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.limit",
+      "type": "java.lang.Integer",
+      "description": "Limit on number of returned records. Applicable to some of the API, check the Salesforce documentation.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.login-config",
+      "type": "org.apache.camel.component.salesforce.SalesforceLoginConfig",
+      "description": "All authentication configuration in one nested bean, all properties set there can be set directly on the component as well. The option is a org.apache.camel.component.salesforce.SalesforceLoginConfig type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.login-url",
+      "type": "java.lang.String",
+      "description": "URL of the Salesforce instance used for authentication, by default set to https:\/\/login.salesforce.com",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": "https:\/\/login.salesforce.com"
+    },
+    {
+      "name": "camel.component.salesforce.long-polling-transport-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Used to set any properties that can be configured on the LongPollingTransport used by the BayeuxClient (CometD) used by the streaming api",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.max-backoff",
+      "type": "java.lang.Long",
+      "description": "Maximum backoff interval for Streaming connection restart attempts for failures beyond CometD auto-reconnect. The option is a long type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.salesforce.not-found-behaviour",
+      "type": "org.apache.camel.component.salesforce.NotFoundBehaviour",
+      "description": "Sets the behaviour of 404 not found status received from Salesforce API. Should the body be set to NULL NotFoundBehaviour#NULL or should a exception be signaled on the exchange NotFoundBehaviour#EXCEPTION - the default.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-fields",
+      "type": "org.apache.camel.component.salesforce.internal.dto.NotifyForFieldsEnum",
+      "description": "Notify for fields, options are ALL, REFERENCED, SELECT, WHERE",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-create",
+      "type": "java.lang.Boolean",
+      "description": "Notify for create operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-delete",
+      "type": "java.lang.Boolean",
+      "description": "Notify for delete operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-undelete",
+      "type": "java.lang.Boolean",
+      "description": "Notify for un-delete operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-update",
+      "type": "java.lang.Boolean",
+      "description": "Notify for update operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operations",
+      "type": "org.apache.camel.component.salesforce.internal.dto.NotifyForOperationsEnum",
+      "description": "Notify for operations, options are ALL, CREATE, EXTENDED, UPDATE (API version 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.object-mapper",
+      "type": "com.fasterxml.jackson.databind.ObjectMapper",
+      "description": "Custom Jackson ObjectMapper to use when serializing\/deserializing Salesforce objects. The option is a com.fasterxml.jackson.databind.ObjectMapper type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.packages",
+      "type": "java.lang.String",
+      "description": "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. Multiple packages can be separated by comma.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.password",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking",
+      "type": "java.lang.Boolean",
+      "description": "Use PK Chunking. Only for use in original Bulk API. Bulk 2.0 API performs PK chunking automatically, if necessary.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking-chunk-size",
+      "type": "java.lang.Integer",
+      "description": "Chunk size for use with PK Chunking. If unspecified, salesforce default is 100,000. Maximum size is 250,000.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking-parent",
+      "type": "java.lang.String",
+      "description": "Specifies the parent object when you're enabling PK chunking for queries on sharing objects. The chunks are based on the parent object's records rather than the sharing object's records. For example, when querying on AccountShare, specify Account as the parent object. PK chunking is supported for sharing objects as long as the parent object is supported.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking-start-row",
+      "type": "java.lang.String",
+      "description": "Specifies the 15-character or 18-character record ID to be used as the lower boundary for the first chunk. Use this parameter to specify a starting ID when restarting a job that failed between batches.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.query-locator",
+      "type": "java.lang.String",
+      "description": "Query Locator provided by salesforce for use when a query results in more records than can be retrieved in a single call. Use this value in a subsequent call to retrieve additional records.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-http-headers",
+      "type": "java.lang.String",
+      "description": "Comma separated list of message headers to include as HTTP parameters for Raw operation.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-method",
+      "type": "java.lang.String",
+      "description": "HTTP method to use for the Raw operation",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-path",
+      "type": "java.lang.String",
+      "description": "The portion of the endpoint URL after the domain name. E.g., '\/services\/data\/v52.0\/sobjects\/Account\/'",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-payload",
+      "type": "java.lang.Boolean",
+      "description": "Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.raw-query-parameters",
+      "type": "java.lang.String",
+      "description": "Comma separated list of message headers to include as query parameters for Raw operation. Do not url-encode values as this will be done automatically.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.refresh-token",
+      "type": "java.lang.String",
+      "description": "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 hosting the callback web application at localhost.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.report-id",
+      "type": "java.lang.String",
+      "description": "Salesforce1 Analytics report Id",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.report-metadata",
+      "type": "org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportMetadata",
+      "description": "Salesforce1 Analytics report metadata for filtering. The option is a org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportMetadata type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.result-id",
+      "type": "java.lang.String",
+      "description": "Bulk API Result ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-blob-field-name",
+      "type": "java.lang.String",
+      "description": "SObject blob field name",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-class",
+      "type": "java.lang.String",
+      "description": "Fully qualified SObject class name, usually generated using camel-salesforce-maven-plugin",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-fields",
+      "type": "java.lang.String",
+      "description": "SObject fields to retrieve",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-id",
+      "type": "java.lang.String",
+      "description": "SObject ID if required by API",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-id-name",
+      "type": "java.lang.String",
+      "description": "SObject external ID field name",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-id-value",
+      "type": "java.lang.String",
+      "description": "SObject external ID field value",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-name",
+      "type": "java.lang.String",
+      "description": "SObject name if required or supported by API",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-query",
+      "type": "java.lang.String",
+      "description": "Salesforce SOQL query string",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-search",
+      "type": "java.lang.String",
+      "description": "Salesforce SOSL search string",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL parameters to use, see SSLContextParameters class for all available options. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.update-topic",
+      "type": "java.lang.Boolean",
+      "description": "Whether to update an existing Push Topic when using the Streaming API, defaults to false",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.user-name",
+      "type": "java.lang.String",
+      "description": "Username 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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.worker-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the thread pool used to handle HTTP responses.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.component.salesforce.worker-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Size of the thread pool used to handle HTTP responses.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 10
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-sap-netweaver-starter/src/main/docs/sap-netweaver.json b/components-starter/camel-sap-netweaver-starter/src/main/docs/sap-netweaver.json
new file mode 100644
index 0000000..ddb2323
--- /dev/null
+++ b/components-starter/camel-sap-netweaver-starter/src/main/docs/sap-netweaver.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sap-netweaver",
+      "type": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sap-netweaver.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sap-netweaver.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sap-netweaver.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sap-netweaver.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sap-netweaver component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sap-netweaver.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-saxon-starter/src/main/docs/saxon.json b/components-starter/camel-saxon-starter/src/main/docs/saxon.json
new file mode 100644
index 0000000..4431b56
--- /dev/null
+++ b/components-starter/camel-saxon-starter/src/main/docs/saxon.json
@@ -0,0 +1,109 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xquery",
+      "type": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.xquery",
+      "type": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xquery.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xquery.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xquery.configuration",
+      "type": "net.sf.saxon.Configuration",
+      "description": "To use a custom Saxon configuration. The option is a net.sf.saxon.Configuration type.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "To set custom Saxon configuration properties",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xquery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xquery component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xquery.module-u-r-i-resolver",
+      "type": "net.sf.saxon.lib.ModuleURIResolver",
+      "description": "To use the custom ModuleURIResolver. The option is a net.sf.saxon.lib.ModuleURIResolver type.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.configuration-ref",
+      "type": "java.lang.String",
+      "description": "Reference to a saxon configuration instance in the registry to use for xquery (requires camel-saxon). This may be needed to add custom functions to a saxon configuration, so these custom functions can be used in xquery expressions.",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.xquery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xquery language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.xquery.type",
+      "type": "java.lang.String",
+      "description": "Sets the class name of the result type (type from output) The default result type is NodeSet",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-scheduler-starter/src/main/docs/scheduler.json b/components-starter/camel-scheduler-starter/src/main/docs/scheduler.json
new file mode 100644
index 0000000..8c691d5
--- /dev/null
+++ b/components-starter/camel-scheduler-starter/src/main/docs/scheduler.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.scheduler",
+      "type": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scheduler.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.scheduler.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.scheduler.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.scheduler.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.scheduler.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the scheduler component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scheduler.pool-size",
+      "type": "java.lang.Integer",
+      "description": "Number of core threads in the thread pool used by the scheduling thread pool. Is by default using a single thread",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "defaultValue": 1
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-schematron-starter/src/main/docs/schematron.json b/components-starter/camel-schematron-starter/src/main/docs/schematron.json
new file mode 100644
index 0000000..0f79ad9
--- /dev/null
+++ b/components-starter/camel-schematron-starter/src/main/docs/schematron.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.schematron",
+      "type": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.schematron.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.schematron.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.schematron.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.schematron.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the schematron component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.schematron.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-seda-starter/src/main/docs/seda.json b/components-starter/camel-seda-starter/src/main/docs/seda.json
new file mode 100644
index 0000000..16a3a21
--- /dev/null
+++ b/components-starter/camel-seda-starter/src/main/docs/seda.json
@@ -0,0 +1,90 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.seda",
+      "type": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.seda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.seda.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Sets the default number of concurrent threads processing exchanges.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.seda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.seda.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.default-discard-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will be discarded. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will give up sending and continue, meaning that the message was not sent to the SEDA queue.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.default-offer-timeout",
+      "type": "java.lang.Long",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, where a configured timeout can be added to the block case. Utilizing the .offer(timeout) method of the underlining java queue",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.default-queue-factory",
+      "type": "org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange>",
+      "description": "Sets the default queue factory. The option is a org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange> type.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the seda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum capacity of the SEDA queue (i.e., the number of messages it can hold).",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-service-starter/src/main/docs/service.json b/components-starter/camel-service-starter/src/main/docs/service.json
new file mode 100644
index 0000000..7514f04
--- /dev/null
+++ b/components-starter/camel-service-starter/src/main/docs/service.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.service",
+      "type": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.service.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.service.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.service.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.service.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.service.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the service component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.service.service",
+      "type": "org.apache.camel.cloud.ServiceRegistry",
+      "description": "Inject the service to use. The option is a org.apache.camel.cloud.ServiceRegistry type.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.service.service-selector",
+      "type": "org.apache.camel.cloud.ServiceRegistry$Selector",
+      "description": "Inject the service selector used to lookup the ServiceRegistry to use. The option is a org.apache.camel.cloud.ServiceRegistry.Selector type.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-servicenow-starter/src/main/docs/servicenow.json b/components-starter/camel-servicenow-starter/src/main/docs/servicenow.json
new file mode 100644
index 0000000..4170974
--- /dev/null
+++ b/components-starter/camel-servicenow-starter/src/main/docs/servicenow.json
@@ -0,0 +1,327 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.servicenow",
+      "type": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.servicenow.api-url",
+      "type": "java.lang.String",
+      "description": "The ServiceNow REST API url",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.api-version",
+      "type": "java.lang.String",
+      "description": "The ServiceNow REST API version, default latest",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.servicenow.configuration",
+      "type": "org.apache.camel.component.servicenow.ServiceNowConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.servicenow.ServiceNowConfiguration type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.servicenow.date-format",
+      "type": "java.lang.String",
+      "description": "The date format used for Json serialization\/deserialization",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "yyyy-MM-dd"
+    },
+    {
+      "name": "camel.component.servicenow.date-time-format",
+      "type": "java.lang.String",
+      "description": "The date-time format used for Json serialization\/deserialization",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "yyyy-MM-dd HH:mm:ss"
+    },
+    {
+      "name": "camel.component.servicenow.display",
+      "type": "java.lang.String",
+      "description": "Set this parameter to true to return only scorecards where the indicator Display field is selected. Set this parameter to all to return scorecards with any Display field value. This parameter is true by default.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "true"
+    },
+    {
+      "name": "camel.component.servicenow.display-value",
+      "type": "java.lang.String",
+      "description": "Return the display value (true), actual value (false), or both (all) for reference fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "false"
+    },
+    {
+      "name": "camel.component.servicenow.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the servicenow component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.exclude-reference-link",
+      "type": "java.lang.Boolean",
+      "description": "True to exclude Table API links for reference fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.favorites",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return only scorecards that are favorites of the querying user.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.http-client-policy",
+      "type": "org.apache.cxf.transports.http.configuration.HTTPClientPolicy",
+      "description": "To configure http-client. The option is a org.apache.cxf.transports.http.configuration.HTTPClientPolicy type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-aggregates",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to always return all available aggregates for an indicator, including when an aggregate has already been applied. If a value is not specified, this parameter defaults to false and returns no aggregates.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-available-aggregates",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all available aggregates for an indicator when no aggregate has been applied. If a value is not specified, this parameter defaults to false and returns no aggregates.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-available-breakdowns",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all available breakdowns for an indicator. If a value is not specified, this parameter defaults to false and returns no breakdowns.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-score-notes",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all notes associated with the score. The note element contains the note text as well as the author and timestamp when the note was added.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-scores",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all scores for a scorecard. If a value is not specified, this parameter defaults to false and returns only the most recent score value.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.input-display-value",
+      "type": "java.lang.Boolean",
+      "description": "True to set raw value of input fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.instance-name",
+      "type": "java.lang.String",
+      "description": "The ServiceNow instance name",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.key",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return only scorecards for key indicators.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servicenow.mapper",
+      "type": "com.fasterxml.jackson.databind.ObjectMapper",
+      "description": "Sets Jackson's ObjectMapper to use for request\/reply. The option is a com.fasterxml.jackson.databind.ObjectMapper type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.models",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Defines both request and response models",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.oauth-client-id",
+      "type": "java.lang.String",
+      "description": "OAuth2 ClientID",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.oauth-client-secret",
+      "type": "java.lang.String",
+      "description": "OAuth2 ClientSecret",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.oauth-token-url",
+      "type": "java.lang.String",
+      "description": "OAuth token Url",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.password",
+      "type": "java.lang.String",
+      "description": "ServiceNow account password, MUST be provided",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.per-page",
+      "type": "java.lang.Integer",
+      "description": "Enter the maximum number of scorecards each query can return. By default this value is 10, and the maximum is 100.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.servicenow.proxy-authorization-policy",
+      "type": "org.apache.cxf.configuration.security.ProxyAuthorizationPolicy",
+      "description": "To configure proxy authentication. The option is a org.apache.cxf.configuration.security.ProxyAuthorizationPolicy type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-host",
+      "type": "java.lang.String",
+      "description": "The proxy host name",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-password",
+      "type": "java.lang.String",
+      "description": "Password for proxy authentication",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The proxy port number",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-user-name",
+      "type": "java.lang.String",
+      "description": "Username for proxy authentication",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.release",
+      "type": "org.apache.camel.component.servicenow.ServiceNowRelease",
+      "description": "The ServiceNow release to target, default to Helsinki See https:\/\/docs.servicenow.com",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.request-models",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Defines the request model",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.resource",
+      "type": "java.lang.String",
+      "description": "The default resource, can be overridden by header CamelServiceNowResource",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.response-models",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Defines the response model",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.retrieve-target-record-on-import",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to retrieve the target record when using import set api. The import set result is then replaced by the target record",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servicenow.sort-by",
+      "type": "java.lang.String",
+      "description": "Specify the value to use when sorting results. By default, queries sort records by value.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.sort-dir",
+      "type": "java.lang.String",
+      "description": "Specify the sort direction, ascending or descending. By default, queries sort records in descending order. Use sysparm_sortdir=asc to sort in ascending order.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. See http:\/\/camel.apache.org\/camel-configuration-utilities.html. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.suppress-auto-sys-field",
+      "type": "java.lang.Boolean",
+      "description": "True to suppress auto generation of system fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.suppress-pagination-header",
+      "type": "java.lang.Boolean",
+      "description": "Set this value to true to remove the Link header from the response. The Link header allows you to request additional pages of data when the number of records matching your query exceeds the query limit",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.table",
+      "type": "java.lang.String",
+      "description": "The default table, can be overridden by header CamelServiceNowTable",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.target",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return only scorecards that have a target.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.time-format",
+      "type": "java.lang.String",
+      "description": "The time format used for Json serialization\/deserialization",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "HH:mm:ss"
+    },
+    {
+      "name": "camel.component.servicenow.top-level-only",
+      "type": "java.lang.Boolean",
+      "description": "Gets only those categories whose parent is a catalog.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servicenow.user-name",
+      "type": "java.lang.String",
+      "description": "ServiceNow user account name, MUST be provided",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-servlet-starter/src/main/docs/servlet.json b/components-starter/camel-servlet-starter/src/main/docs/servlet.json
new file mode 100644
index 0000000..89bc997
--- /dev/null
+++ b/components-starter/camel-servlet-starter/src/main/docs/servlet.json
@@ -0,0 +1,120 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.servlet",
+      "type": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.servlet.mapping",
+      "type": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.servlet.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servlet.attachment-multipart-binding",
+      "type": "java.lang.Boolean",
+      "description": "Whether to automatic bind multipart\/form-data as attachments on the Camel Exchange. The options attachmentMultipartBinding=true and disableStreamCache=false cannot work together. Remove disableStreamCache to use AttachmentMultipartBinding. This is turn off by default as this may require servlet specific configuration to enable this when using Servlet's.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servlet.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.servlet.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servlet.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.servlet.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the servlet component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.file-name-ext-whitelist",
+      "type": "java.lang.String",
+      "description": "Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.http-registry",
+      "type": "org.apache.camel.http.common.HttpRegistry",
+      "description": "To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.http.common.HttpRegistry type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.servlet-name",
+      "type": "java.lang.String",
+      "description": "Default name of servlet to use. The default name is CamelServlet.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": "CamelServlet"
+    },
+    {
+      "name": "camel.servlet.mapping.context-path",
+      "type": "java.lang.String",
+      "description": "Context path used by the servlet component for automatic mapping.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "defaultValue": "\/camel\/*"
+    },
+    {
+      "name": "camel.servlet.mapping.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables the automatic mapping of the servlet component into the Spring web context.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.servlet.mapping.servlet-name",
+      "type": "java.lang.String",
+      "description": "The name of the Camel servlet.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "defaultValue": "CamelServlet"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-shiro-starter/src/main/docs/shiro.json b/components-starter/camel-shiro-starter/src/main/docs/shiro.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-shiro-starter/src/main/docs/shiro.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-sip-starter/src/main/docs/sip.json b/components-starter/camel-sip-starter/src/main/docs/sip.json
new file mode 100644
index 0000000..8f7f501
--- /dev/null
+++ b/components-starter/camel-sip-starter/src/main/docs/sip.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sip",
+      "type": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sip.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sip.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sip.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sip.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sip.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sip component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sip.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-sjms-starter/src/main/docs/sjms.json b/components-starter/camel-sjms-starter/src/main/docs/sjms.json
new file mode 100644
index 0000000..aa595a0
--- /dev/null
+++ b/components-starter/camel-sjms-starter/src/main/docs/sjms.json
@@ -0,0 +1,101 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sjms",
+      "type": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sjms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sjms.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sjms.destination-creation-strategy",
+      "type": "org.apache.camel.component.sjms.jms.DestinationCreationStrategy",
+      "description": "To use a custom DestinationCreationStrategy. The option is a org.apache.camel.component.sjms.jms.DestinationCreationStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sjms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.jms-key-format-strategy",
+      "type": "org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation. The option is a org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms.message-created-strategy",
+      "type": "org.apache.camel.component.sjms.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.sjms.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.sjms.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.sjms.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-sjms2-starter/src/main/docs/sjms2.json b/components-starter/camel-sjms2-starter/src/main/docs/sjms2.json
new file mode 100644
index 0000000..81ddbde
--- /dev/null
+++ b/components-starter/camel-sjms2-starter/src/main/docs/sjms2.json
@@ -0,0 +1,101 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sjms2",
+      "type": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sjms2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sjms2.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms2.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sjms2.destination-creation-strategy",
+      "type": "org.apache.camel.component.sjms.jms.DestinationCreationStrategy",
+      "description": "To use a custom DestinationCreationStrategy. The option is a org.apache.camel.component.sjms.jms.DestinationCreationStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sjms2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.jms-key-format-strategy",
+      "type": "org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation. The option is a org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms2.message-created-strategy",
+      "type": "org.apache.camel.component.sjms.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.sjms.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.sjms2.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.sjms2.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-slack-starter/src/main/docs/slack.json b/components-starter/camel-slack-starter/src/main/docs/slack.json
new file mode 100644
index 0000000..5804fe8
--- /dev/null
+++ b/components-starter/camel-slack-starter/src/main/docs/slack.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.slack",
+      "type": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.slack.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.slack.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.slack.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.slack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.slack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the slack component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.slack.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.slack.token",
+      "type": "java.lang.String",
+      "description": "The token to use",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.slack.webhook-url",
+      "type": "java.lang.String",
+      "description": "The incoming webhook URL",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-smpp-starter/src/main/docs/smpp.json b/components-starter/camel-smpp-starter/src/main/docs/smpp.json
new file mode 100644
index 0000000..db9e2eb
--- /dev/null
+++ b/components-starter/camel-smpp-starter/src/main/docs/smpp.json
@@ -0,0 +1,293 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.smpp",
+      "type": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.smpp.address-range",
+      "type": "java.lang.String",
+      "description": "You can specify the address range for the SmppConsumer as defined in section 5.2.7 of the SMPP 3.4 specification. The SmppConsumer will receive messages only from SMSC's which target an address (MSISDN or IP address) within this range.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.alphabet",
+      "type": "java.lang.Byte",
+      "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4: 8 bit Alphabet 8: UCS2 Alphabet",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.smpp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.configuration",
+      "type": "org.apache.camel.component.smpp.SmppConfiguration",
+      "description": "To use the shared SmppConfiguration as configuration. The option is a org.apache.camel.component.smpp.SmppConfiguration type.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.smpp.data-coding",
+      "type": "java.lang.Byte",
+      "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alphabet 3: Latin 1 (ISO-8859-1) 4: Octet unspecified (8-bit binary) 8: UCS2 (ISO\/IEC-10646) 13: Extended Kanji JIS(X 0212-1990)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.dest-addr",
+      "type": "java.lang.String",
+      "description": "Defines the destination SME address. For mobile terminated messages, this is the directory number of the recipient MS. Only for SubmitSm, SubmitMulti, CancelSm and DataSm.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "1717"
+    },
+    {
+      "name": "camel.component.smpp.dest-addr-npi",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME destination address parameters. Only for SubmitSm, SubmitMulti, CancelSm and DataSm. The following NPI values are defined: 0: Unknown 1: ISDN (E163\/E164) 2: Data (X.121) 3: Telex (F.69) 6: Land Mobile (E.212) 8: National 9: Private 10: ERMES 13: Internet (IP) 18: WAP Client Id (to be defined by WAP Forum)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.dest-addr-ton",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME destination address parameters. Only for SubmitSm, SubmitMulti, CancelSm and DataSm. The following TON values are defined: 0: Unknown 1: International 2: National 3: Network Specific 4: Subscriber Number 5: Alphanumeric 6: Abbreviated",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the smpp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.encoding",
+      "type": "java.lang.String",
+      "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm and SubmitMulti.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "ISO-8859-1"
+    },
+    {
+      "name": "camel.component.smpp.enquire-link-timer",
+      "type": "java.lang.Integer",
+      "description": "Defines the interval in milliseconds between the confidence checks. The confidence check is used to test the communication path between an ESME and an SMSC.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 3128
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-username",
+      "type": "java.lang.String",
+      "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.initial-reconnect-delay",
+      "type": "java.lang.Long",
+      "description": "Defines the initial delay in milliseconds after the consumer\/producer tries to reconnect to the SMSC, after the connection was lost.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.smpp.lazy-session-creation",
+      "type": "java.lang.Boolean",
+      "description": "Sessions can be lazily created to avoid exceptions, if the SMSC is not available when the Camel producer is started. Camel will check the in message headers 'CamelSmppSystemId' and 'CamelSmppPassword' of the first exchange. If they are present, Camel will use these data to connect to the SMSC.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.max-reconnect",
+      "type": "java.lang.Integer",
+      "description": "Defines the maximum number of attempts to reconnect to the SMSC, if SMSC returns a negative bind response",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 2147483647
+    },
+    {
+      "name": "camel.component.smpp.numbering-plan-indicator",
+      "type": "java.lang.Byte",
+      "description": "Defines the numeric plan indicator (NPI) to be used in the SME. The following NPI values are defined: 0: Unknown 1: ISDN (E163\/E164) 2: Data (X.121) 3: Telex (F.69) 6: Land Mobile (E.212) 8: National 9: Private 10: ERMES 13: Internet (IP) 18: WAP Client Id (to be defined by WAP Forum)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.password",
+      "type": "java.lang.String",
+      "description": "The password for connecting to SMSC server.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.pdu-processor-degree",
+      "type": "java.lang.Integer",
+      "description": "Sets the number of threads which can read PDU and process them in parallel.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 3
+    },
+    {
+      "name": "camel.component.smpp.pdu-processor-queue-capacity",
+      "type": "java.lang.Integer",
+      "description": "Sets the capacity of the working queue for PDU processing.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.smpp.priority-flag",
+      "type": "java.lang.Byte",
+      "description": "Allows the originating SME to assign a priority level to the short message. Only for SubmitSm and SubmitMulti. Four Priority Levels are supported: 0: Level 0 (lowest) priority 1: Level 1 priority 2: Level 2 priority 3: Level 3 (highest) priority",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.protocol-id",
+      "type": "java.lang.Byte",
+      "description": "The protocol id",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.proxy-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "These headers will be passed to the proxy server while establishing the connection.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.reconnect-delay",
+      "type": "java.lang.Long",
+      "description": "Defines the interval in milliseconds between the reconnect attempts, if the connection to the SMSC was lost and the previous was not succeed.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.smpp.registered-delivery",
+      "type": "java.lang.Byte",
+      "description": "Is used to request an SMSC delivery receipt and\/or SME originated acknowledgements. The following values are defined: 0: No SMSC delivery receipt requested. 1: SMSC delivery receipt requested where final delivery outcome is success or failure. 2: SMSC delivery receipt requested where the final delivery outcome is delivery failure.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.replace-if-present-flag",
+      "type": "java.lang.Byte",
+      "description": "Used to request the SMSC to replace a previously submitted message, that is still pending delivery. The SMSC will replace an existing message provided that the source address, destination address and service type match the same fields in the new message. The following replace if present flag values are defined: 0: Don't replace 1: Replace",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.service-type",
+      "type": "java.lang.String",
+      "description": "The service type parameter can be used to indicate the SMS Application service associated with the message. The following generic service_types are defined: CMT: Cellular Messaging CPT: Cellular Paging VMN: Voice Mail Notification VMA: Voice Mail Alerting WAP: Wireless Application Protocol USSD: Unstructured Supplementary Services Data",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.session-state-listener",
+      "type": "org.jsmpp.session.SessionStateListener",
+      "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Registry to receive callbacks when the session state changed. The option is a org.jsmpp.session.SessionStateListener type.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.single-d-l-r",
+      "type": "java.lang.Boolean",
+      "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segment (long) message. For short messages, with only 1 segment the behaviour is unchanged.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.source-addr",
+      "type": "java.lang.String",
+      "description": "Defines the address of SME (Short Message Entity) which originated this message.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "1616"
+    },
+    {
+      "name": "camel.component.smpp.source-addr-npi",
+      "type": "java.lang.Byte",
+      "description": "Defines the numeric plan indicator (NPI) to be used in the SME originator address parameters. The following NPI values are defined: 0: Unknown 1: ISDN (E163\/E164) 2: Data (X.121) 3: Telex (F.69) 6: Land Mobile (E.212) 8: National 9: Private 10: ERMES 13: Internet (IP) 18: WAP Client Id (to be defined by WAP Forum)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.source-addr-ton",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME originator address parameters. The following TON values are defined: 0: Unknown 1: International 2: National 3: Network Specific 4: Subscriber Number 5: Alphanumeric 6: Abbreviated",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.splitting-policy",
+      "type": "org.apache.camel.component.smpp.SmppSplittingPolicy",
+      "description": "You can specify a policy for handling long messages: ALLOW - the default, long messages are split to 140 bytes per message TRUNCATE - long messages are split and only the first fragment will be sent to the SMSC. Some carriers drop subsequent fragments so this reduces load on the SMPP connection sending parts of a message that will never be delivered. REJECT - if a message would need to be split, it is rejected with an SMPP NegativeResponseException and the reason code signifying the message is too long.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.system-id",
+      "type": "java.lang.String",
+      "description": "The system id (username) for connecting to SMSC server.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "smppclient"
+    },
+    {
+      "name": "camel.component.smpp.system-type",
+      "type": "java.lang.String",
+      "description": "This parameter is used to categorize the type of ESME (External Short Message Entity) that is binding to the SMSC (max. 13 characters).",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.transaction-timer",
+      "type": "java.lang.Integer",
+      "description": "Defines the maximum period of inactivity allowed after a transaction, after which an SMPP entity may assume that the session is no longer active. This timer may be active on either communicating SMPP entity (i.e. SMSC or ESME).",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.smpp.type-of-number",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME. The following TON values are defined: 0: Unknown 1: International 2: National 3: Network Specific 4: Subscriber Number 5: Alphanumeric 6: Abbreviated",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.using-s-s-l",
+      "type": "java.lang.Boolean",
+      "description": "Whether using SSL with the smpps protocol",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-snakeyaml-starter/src/main/docs/snakeyaml.json b/components-starter/camel-snakeyaml-starter/src/main/docs/snakeyaml.json
new file mode 100644
index 0000000..d3ac923
--- /dev/null
+++ b/components-starter/camel-snakeyaml-starter/src/main/docs/snakeyaml.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.yaml-snakeyaml",
+      "type": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.allow-any-type",
+      "type": "java.lang.Boolean",
+      "description": "Allow any class to be un-marshaled",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.allow-recursive-keys",
+      "type": "java.lang.Boolean",
+      "description": "Set whether recursive keys are allowed.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.constructor",
+      "type": "java.lang.String",
+      "description": "BaseConstructor to construct incoming documents.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.dumper-options",
+      "type": "java.lang.String",
+      "description": "DumperOptions to configure outgoing objects.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the yaml-snakeyaml data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.max-aliases-for-collections",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum amount of aliases allowed for collections.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.pretty-flow",
+      "type": "java.lang.Boolean",
+      "description": "Force the emitter to produce a pretty YAML document when using the flow style.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.representer",
+      "type": "java.lang.String",
+      "description": "Representer to emit outgoing objects.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.resolver",
+      "type": "java.lang.String",
+      "description": "Resolver to detect implicit type",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.use-application-context-class-loader",
+      "type": "java.lang.Boolean",
+      "description": "Use ApplicationContextClassLoader as custom ClassLoader",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-snmp-starter/src/main/docs/snmp.json b/components-starter/camel-snmp-starter/src/main/docs/snmp.json
new file mode 100644
index 0000000..5e2765f
--- /dev/null
+++ b/components-starter/camel-snmp-starter/src/main/docs/snmp.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.snmp",
+      "type": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.snmp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.snmp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.snmp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.snmp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.snmp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the snmp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.snmp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-soap-starter/src/main/docs/soap.json b/components-starter/camel-soap-starter/src/main/docs/soap.json
new file mode 100644
index 0000000..b2691eb
--- /dev/null
+++ b/components-starter/camel-soap-starter/src/main/docs/soap.json
@@ -0,0 +1,66 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.soapjaxb",
+      "type": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.soapjaxb.context-path",
+      "type": "java.lang.String",
+      "description": "Package name where your JAXB classes are located.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.element-name-strategy-ref",
+      "type": "java.lang.String",
+      "description": "Refers to an element strategy to lookup from the registry. An element name strategy is used for two purposes. The first is to find a xml element name for a given object and soap action when marshaling the object into a SOAP message. The second is to find an Exception class for a given soap fault name. The following three element strategy class name is provided out of the box. QNameStrategy - Uses a fixed qName that is configured on instantiation. Exception lookup is not supported TypeNameStrategy - Uses the name and namespace from the XMLType annotation of the given type. If no namespace is set then package-info is used. Exception lookup is not supported ServiceInterfaceStrategy - Uses information from a webservice interface to determine the type name and to find the exception class for a SOAP fault All three classes is located in the package name org.apache.camel.dataformat.soap.name If you have generated the web service stub code with cxf-codegen or a similar tool then you probably will want to use the ServiceInterfaceStrategy. In the case you have no annotated service interface you should use QNameStrategy or TypeNameStrategy.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the soapjaxb data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.encoding",
+      "type": "java.lang.String",
+      "description": "To overrule and use a specific encoding",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.namespace-prefix-ref",
+      "type": "java.lang.String",
+      "description": "When marshalling using JAXB or SOAP then the JAXB implementation will automatic assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.schema",
+      "type": "java.lang.String",
+      "description": "To validate against an existing schema. Your can use the prefix classpath:, file: or http: to specify how the resource should by resolved. You can separate multiple schema files by using the ',' character.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.version",
+      "type": "java.lang.String",
+      "description": "SOAP version should either be 1.1 or 1.2. Is by default 1.1",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration",
+      "defaultValue": "1.1"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-solr-starter/src/main/docs/solr.json b/components-starter/camel-solr-starter/src/main/docs/solr.json
new file mode 100644
index 0000000..deb1bdc
--- /dev/null
+++ b/components-starter/camel-solr-starter/src/main/docs/solr.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.solr",
+      "type": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.solr.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.solr.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.solr.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.solr.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the solr component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.solr.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-soroush-starter/src/main/docs/soroush.json b/components-starter/camel-soroush-starter/src/main/docs/soroush.json
new file mode 100644
index 0000000..6162a18
--- /dev/null
+++ b/components-starter/camel-soroush-starter/src/main/docs/soroush.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.soroush",
+      "type": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.soroush.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.soroush.authorization-token",
+      "type": "java.lang.String",
+      "description": "The default Soroush authorization token to be used when the information is not provided in the endpoints.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.soroush.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.soroush.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.soroush.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.soroush.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the soroush component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.soroush.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spark-starter/src/main/docs/spark.json b/components-starter/camel-spark-starter/src/main/docs/spark.json
new file mode 100644
index 0000000..fce440e
--- /dev/null
+++ b/components-starter/camel-spark-starter/src/main/docs/spark.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spark",
+      "type": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spark.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spark.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spark.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spark.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spark component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spark.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spark.rdd",
+      "type": "org.apache.spark.api.java.JavaRDDLike",
+      "description": "RDD to compute against. The option is a org.apache.spark.api.java.JavaRDDLike type.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spark.rdd-callback",
+      "type": "org.apache.camel.component.spark.RddCallback",
+      "description": "Function performing action against an RDD. The option is a org.apache.camel.component.spark.RddCallback type.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-splunk-starter/src/main/docs/splunk.json b/components-starter/camel-splunk-starter/src/main/docs/splunk.json
new file mode 100644
index 0000000..9961e5f
--- /dev/null
+++ b/components-starter/camel-splunk-starter/src/main/docs/splunk.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.splunk",
+      "type": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.splunk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.splunk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.splunk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.splunk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.splunk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the splunk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.splunk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.splunk.splunk-configuration-factory",
+      "type": "org.apache.camel.component.splunk.SplunkConfigurationFactory",
+      "description": "To use the SplunkConfigurationFactory. The option is a org.apache.camel.component.splunk.SplunkConfigurationFactory type.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-batch-starter/src/main/docs/spring-batch.json b/components-starter/camel-spring-batch-starter/src/main/docs/spring-batch.json
new file mode 100644
index 0000000..1096dd1
--- /dev/null
+++ b/components-starter/camel-spring-batch-starter/src/main/docs/spring-batch.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-batch",
+      "type": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-batch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-batch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-batch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-batch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.job-launcher",
+      "type": "org.springframework.batch.core.launch.JobLauncher",
+      "description": "Explicitly specifies a JobLauncher to be used. The option is a org.springframework.batch.core.launch.JobLauncher type.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.job-registry",
+      "type": "org.springframework.batch.core.configuration.JobRegistry",
+      "description": "Explicitly specifies a JobRegistry to be used. The option is a org.springframework.batch.core.configuration.JobRegistry type.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-integration-starter/src/main/docs/spring-integration.json b/components-starter/camel-spring-integration-starter/src/main/docs/spring-integration.json
new file mode 100644
index 0000000..a5d3675
--- /dev/null
+++ b/components-starter/camel-spring-integration-starter/src/main/docs/spring-integration.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-integration",
+      "type": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-integration.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-integration.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-integration.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-integration.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-integration.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-integration component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-integration.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-javaconfig-starter/src/main/docs/spring-javaconfig.json b/components-starter/camel-spring-javaconfig-starter/src/main/docs/spring-javaconfig.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-spring-javaconfig-starter/src/main/docs/spring-javaconfig.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-jdbc-starter/src/main/docs/spring-jdbc.json b/components-starter/camel-spring-jdbc-starter/src/main/docs/spring-jdbc.json
new file mode 100644
index 0000000..2a8ef91
--- /dev/null
+++ b/components-starter/camel-spring-jdbc-starter/src/main/docs/spring-jdbc.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-jdbc",
+      "type": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-jdbc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-jdbc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-jdbc.connection-strategy",
+      "type": "org.apache.camel.component.jdbc.ConnectionStrategy",
+      "description": "To use a custom strategy for working with connections. Do not use a custom strategy when using the spring-jdbc component because a special Spring ConnectionStrategy is used by default to support Spring Transactions. The option is a org.apache.camel.component.jdbc.ConnectionStrategy type.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-jdbc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-jdbc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-jdbc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-jdbc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-ldap-starter/src/main/docs/spring-ldap.json b/components-starter/camel-spring-ldap-starter/src/main/docs/spring-ldap.json
new file mode 100644
index 0000000..6bd346c
--- /dev/null
+++ b/components-starter/camel-spring-ldap-starter/src/main/docs/spring-ldap.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-ldap",
+      "type": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ldap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-ldap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-ldap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-ldap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-ldap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ldap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq.json b/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq.json
new file mode 100644
index 0000000..ef300aa
--- /dev/null
+++ b/components-starter/camel-spring-rabbitmq-starter/src/main/docs/spring-rabbitmq.json
@@ -0,0 +1,220 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-rabbitmq",
+      "type": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-rabbitmq.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an MessageConversionException is thrown.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.amqp-admin",
+      "type": "org.springframework.amqp.core.AmqpAdmin",
+      "description": "Optional AMQP Admin service to use for auto declaring elements (queues, exchanges, bindings). The option is a org.springframework.amqp.core.AmqpAdmin type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.auto-declare",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer should auto declare binding between exchange, queue and routing key when starting. Enabling this can be good for development to make it easy to standup exchanges, queues and bindings on the broker.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "The number of consumers",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.connection-factory",
+      "type": "org.springframework.amqp.rabbit.connection.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a org.springframework.amqp.rabbit.connection.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-exchange",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-exchange-type",
+      "type": "java.lang.String",
+      "description": "The type of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": "direct"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-queue",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter queue",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-routing-key",
+      "type": "java.lang.String",
+      "description": "The routing key for the dead letter exchange",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-rabbitmq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "To use a custom ErrorHandler for handling exceptions from the message listener (consumer). The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.ignore-declaration-exceptions",
+      "type": "java.lang.Boolean",
+      "description": "Switch on ignore exceptions such as mismatched properties when declaring",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.listener-container-factory",
+      "type": "org.apache.camel.component.springrabbit.ListenerContainerFactory",
+      "description": "To use a custom factory for creating and configuring ListenerContainer to be used by the consumer for receiving messages. The option is a org.apache.camel.component.springrabbit.ListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of consumers (available only with SMLC)",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.maximum-retry-attempts",
+      "type": "java.lang.Integer",
+      "description": "How many times a Rabbitmq consumer will retry the same message if Camel failed to process the message",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.message-converter",
+      "type": "org.springframework.amqp.support.converter.MessageConverter",
+      "description": "To use a custom MessageConverter so you can be in control how to map to\/from a org.springframework.amqp.core.Message. The option is a org.springframework.amqp.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.message-listener-container-type",
+      "type": "java.lang.String",
+      "description": "The type of the MessageListenerContainer",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": "DMLC"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.message-properties-converter",
+      "type": "org.apache.camel.component.springrabbit.MessagePropertiesConverter",
+      "description": "To use a custom MessagePropertiesConverter so you can be in control how to map to\/from a org.springframework.amqp.core.MessageProperties. The option is a org.apache.camel.component.springrabbit.MessagePropertiesConverter type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "Tell the broker how many messages to send to each consumer in a single request. Often this can be set quite high to improve throughput.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 250
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.reject-and-dont-requeue",
+      "type": "java.lang.Boolean",
+      "description": "Whether a Rabbitmq consumer should reject the message without requeuing. This enables failed messages to be sent to a Dead Letter Exchange\/Queue, if the broker is so configured.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.reply-timeout",
+      "type": "java.lang.Long",
+      "description": "Specify the timeout in milliseconds to be used when waiting for a reply message when doing request\/reply messaging. The default value is 5 seconds. A negative value indicates an indefinite timeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.retry",
+      "type": "org.springframework.retry.interceptor.RetryOperationsInterceptor",
+      "description": "Custom retry configuration to use. If this is configured then the other settings such as maximumRetryAttempts for retry are not in use. The option is a org.springframework.retry.interceptor.RetryOperationsInterceptor type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.retry-delay",
+      "type": "java.lang.Integer",
+      "description": "Delay in msec a Rabbitmq consumer will wait before redelivering a message that Camel failed to process",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.shutdown-timeout",
+      "type": "java.lang.Long",
+      "description": "The time to wait for workers in milliseconds after the container is stopped. If any workers are active when the shutdown signal comes they will be allowed to finish processing as long as they can finish within this timeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-redis-starter/src/main/docs/spring-redis.json b/components-starter/camel-spring-redis-starter/src/main/docs/spring-redis.json
new file mode 100644
index 0000000..0f58ca8
--- /dev/null
+++ b/components-starter/camel-spring-redis-starter/src/main/docs/spring-redis.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-redis",
+      "type": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-redis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-redis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-redis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-redis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-redis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-redis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-redis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-redis.redis-template",
+      "type": "org.springframework.data.redis.core.RedisTemplate",
+      "description": "Reference to a pre-configured RedisTemplate instance to use. The option is a org.springframework.data.redis.core.RedisTemplate type.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-security-starter/src/main/docs/spring-security.json b/components-starter/camel-spring-security-starter/src/main/docs/spring-security.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-spring-security-starter/src/main/docs/spring-security.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-starter/src/main/docs/spring.json b/components-starter/camel-spring-starter/src/main/docs/spring.json
new file mode 100644
index 0000000..7eec3ae
--- /dev/null
+++ b/components-starter/camel-spring-starter/src/main/docs/spring.json
@@ -0,0 +1,79 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-event",
+      "type": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-event.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.spel",
+      "type": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.spel.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-event.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-event.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-event.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-event.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-event component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-event.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.spel.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.spel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spel language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.spel.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-spring-ws-starter/src/main/docs/spring-ws.json b/components-starter/camel-spring-ws-starter/src/main/docs/spring-ws.json
new file mode 100644
index 0000000..693535d
--- /dev/null
+++ b/components-starter/camel-spring-ws-starter/src/main/docs/spring-ws.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-ws",
+      "type": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ws.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-ws.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-ws.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-ws.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-ws.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-ws component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ws.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-ws.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-sql-starter/src/main/docs/sql.json b/components-starter/camel-sql-starter/src/main/docs/sql.json
new file mode 100644
index 0000000..541c00e
--- /dev/null
+++ b/components-starter/camel-sql-starter/src/main/docs/sql.json
@@ -0,0 +1,93 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sql",
+      "type": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql-stored",
+      "type": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql-stored.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.sql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sql-stored.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sql-stored.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sql-stored.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sql-stored component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql-stored.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sql.use-placeholder",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to use placeholder and replace all placeholder characters with sign in the SQL queries. This option is default true",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-ssh-starter/src/main/docs/ssh.json b/components-starter/camel-ssh-starter/src/main/docs/ssh.json
new file mode 100644
index 0000000..8431c99
--- /dev/null
+++ b/components-starter/camel-ssh-starter/src/main/docs/ssh.json
@@ -0,0 +1,138 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ssh",
+      "type": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ssh.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ssh.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ssh.cert-resource",
+      "type": "java.lang.String",
+      "description": "Sets the resource path of the certificate to use for Authentication. Will use ResourceHelperKeyPairProvider to resolve file based certificate, and depends on keyType setting.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.cert-resource-password",
+      "type": "java.lang.String",
+      "description": "Sets the password to use in loading certResource, if certResource is an encrypted key.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.channel-type",
+      "type": "java.lang.String",
+      "description": "Sets the channel type to pass to the Channel as part of command execution. Defaults to exec.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": "exec"
+    },
+    {
+      "name": "camel.component.ssh.configuration",
+      "type": "org.apache.camel.component.ssh.SshConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.ssh.SshConfiguration type.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ssh.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ssh component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.fail-on-unknown-host",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether a connection to an unknown host should fail or not. This value is only checked when the property knownHosts is set.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ssh.key-pair-provider",
+      "type": "org.apache.sshd.common.keyprovider.KeyPairProvider",
+      "description": "Sets the KeyPairProvider reference to use when connecting using Certificates to the remote SSH Server. The option is a org.apache.sshd.common.keyprovider.KeyPairProvider type.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.key-type",
+      "type": "java.lang.String",
+      "description": "Sets the key type to pass to the KeyPairProvider as part of authentication. KeyPairProvider.loadKey(...) will be passed this value. From Camel 3.0.0 \/ 2.25.0, by default Camel will select the first available KeyPair that is loaded. Prior to this, a KeyType of 'ssh-rsa' was enforced by default.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.known-hosts-resource",
+      "type": "java.lang.String",
+      "description": "Sets the resource path for a known_hosts file",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ssh.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to use in connecting to remote SSH server. Requires keyPairProvider to be set to null.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.poll-command",
+      "type": "java.lang.String",
+      "description": "Sets the command string to send to the remote SSH server during every poll cycle. Only works with camel-ssh component being used as a consumer, i.e. from(ssh:\/\/...) You may need to end your command with a newline, and that must be URL encoded %0A",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.shell-prompt",
+      "type": "java.lang.String",
+      "description": "Sets the shellPrompt to be dropped when response is read after command execution",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.sleep-for-shell-prompt",
+      "type": "java.lang.Long",
+      "description": "Sets the sleep period in milliseconds to wait reading response from shell prompt. Defaults to 100 milliseconds.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.ssh.timeout",
+      "type": "java.lang.Long",
+      "description": "Sets the timeout in milliseconds to wait in establishing the remote SSH server connection. Defaults to 30000 milliseconds.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.ssh.username",
+      "type": "java.lang.String",
+      "description": "Sets the username to use in logging into the remote SSH server.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-stax-starter/src/main/docs/stax.json b/components-starter/camel-stax-starter/src/main/docs/stax.json
new file mode 100644
index 0000000..828ebf4
--- /dev/null
+++ b/components-starter/camel-stax-starter/src/main/docs/stax.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stax",
+      "type": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stax.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stax.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stax.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stax.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stax component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stax.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-stitch-starter/src/main/docs/stitch.json b/components-starter/camel-stitch-starter/src/main/docs/stitch.json
new file mode 100644
index 0000000..9b612a2
--- /dev/null
+++ b/components-starter/camel-stitch-starter/src/main/docs/stitch.json
@@ -0,0 +1,91 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stitch",
+      "type": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stitch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stitch.configuration",
+      "type": "org.apache.camel.component.stitch.StitchConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.stitch.StitchConfiguration type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.connection-provider",
+      "type": "reactor.netty.resources.ConnectionProvider",
+      "description": "ConnectionProvider contain configuration for the HttpClient like Maximum connection limit .. etc, you can inject this ConnectionProvider and the StitchClient will initialize HttpClient with this ConnectionProvider. The option is a reactor.netty.resources.ConnectionProvider type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stitch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stitch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.http-client",
+      "type": "reactor.netty.http.client.HttpClient",
+      "description": "Reactor Netty HttpClient, you can injected it if you want to have custom HttpClient. The option is a reactor.netty.http.client.HttpClient type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.key-names",
+      "type": "java.lang.String",
+      "description": "A collection of comma separated strings representing the Primary Key fields in the source table. Stitch use these Primary Keys to de-dupe data during loading If not provided, the table will be loaded in an append-only manner.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stitch.region",
+      "type": "org.apache.camel.component.stitch.client.StitchRegion",
+      "description": "Stitch account region, e.g: europe",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.stitch-client",
+      "type": "org.apache.camel.component.stitch.client.StitchClient",
+      "description": "Set a custom StitchClient that implements org.apache.camel.component.stitch.client.StitchClient interface. The option is a org.apache.camel.component.stitch.client.StitchClient type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.stitch-schema",
+      "type": "org.apache.camel.component.stitch.client.models.StitchSchema",
+      "description": "A schema that describes the record(s). The option is a org.apache.camel.component.stitch.client.models.StitchSchema type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.token",
+      "type": "java.lang.String",
+      "description": "Stitch access token for the Stitch Import API",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-stomp-starter/src/main/docs/stomp.json b/components-starter/camel-stomp-starter/src/main/docs/stomp.json
new file mode 100644
index 0000000..6aa2fa7
--- /dev/null
+++ b/components-starter/camel-stomp-starter/src/main/docs/stomp.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stomp",
+      "type": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stomp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stomp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stomp.broker-url",
+      "type": "java.lang.String",
+      "description": "The URI of the Stomp broker to connect to",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": "tcp:\/\/localhost:61613"
+    },
+    {
+      "name": "camel.component.stomp.configuration",
+      "type": "org.apache.camel.component.stomp.StompConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.stomp.StompConfiguration type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.custom-headers",
+      "type": "java.util.Properties",
+      "description": "To set custom headers. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stomp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stomp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.host",
+      "type": "java.lang.String",
+      "description": "The virtual host name",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stomp.login",
+      "type": "java.lang.String",
+      "description": "The username",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.passcode",
+      "type": "java.lang.String",
+      "description": "The password",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stomp.version",
+      "type": "java.lang.String",
+      "description": "The stomp version (1.1, or 1.2)",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-stream-starter/src/main/docs/stream.json b/components-starter/camel-stream-starter/src/main/docs/stream.json
new file mode 100644
index 0000000..7254993
--- /dev/null
+++ b/components-starter/camel-stream-starter/src/main/docs/stream.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stream",
+      "type": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stream.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-stringtemplate-starter/src/main/docs/stringtemplate.json b/components-starter/camel-stringtemplate-starter/src/main/docs/stringtemplate.json
new file mode 100644
index 0000000..828e604
--- /dev/null
+++ b/components-starter/camel-stringtemplate-starter/src/main/docs/stringtemplate.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.string-template",
+      "type": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration"
+    },
+    {
+      "name": "camel.component.string-template.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.string-template.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.string-template.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.string-template.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.string-template.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.string-template.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the string-template component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration"
+    },
+    {
+      "name": "camel.component.string-template.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-stub-starter/src/main/docs/stub.json b/components-starter/camel-stub-starter/src/main/docs/stub.json
new file mode 100644
index 0000000..3a06f72
--- /dev/null
+++ b/components-starter/camel-stub-starter/src/main/docs/stub.json
@@ -0,0 +1,90 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stub",
+      "type": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stub.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stub.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Sets the default number of concurrent threads processing exchanges.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.stub.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stub.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.default-discard-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will be discarded. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will give up sending and continue, meaning that the message was not sent to the SEDA queue.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.default-offer-timeout",
+      "type": "java.lang.Long",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, where a configured timeout can be added to the block case. Utilizing the .offer(timeout) method of the underlining java queue",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.default-queue-factory",
+      "type": "org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange>",
+      "description": "Sets the default queue factory. The option is a org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange> type.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stub component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum capacity of the SEDA queue (i.e., the number of messages it can hold).",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-swagger-java-starter/src/main/docs/swagger-java.json b/components-starter/camel-swagger-java-starter/src/main/docs/swagger-java.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/components-starter/camel-swagger-java-starter/src/main/docs/swagger-java.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-syslog-starter/src/main/docs/syslog.json b/components-starter/camel-syslog-starter/src/main/docs/syslog.json
new file mode 100644
index 0000000..197694f
--- /dev/null
+++ b/components-starter/camel-syslog-starter/src/main/docs/syslog.json
@@ -0,0 +1,29 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.syslog",
+      "type": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.syslog.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.syslog.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.syslog.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the syslog data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-tagsoup-starter/src/main/docs/tagsoup.json b/components-starter/camel-tagsoup-starter/src/main/docs/tagsoup.json
new file mode 100644
index 0000000..4f4d90d
--- /dev/null
+++ b/components-starter/camel-tagsoup-starter/src/main/docs/tagsoup.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.tidymarkup",
+      "type": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.tidymarkup.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.data-object-type",
+      "type": "java.lang.String",
+      "description": "What data type to unmarshal as, can either be org.w3c.dom.Node or java.lang.String. Is by default org.w3c.dom.Node",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "defaultValue": "org.w3c.dom.Node"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tidyMarkup data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.omit-xml-declaration",
+      "type": "java.lang.Boolean",
+      "description": "When returning a String, do we omit the XML declaration in the top.",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-tarfile-starter/src/main/docs/tarfile.json b/components-starter/camel-tarfile-starter/src/main/docs/tarfile.json
new file mode 100644
index 0000000..2f0b2ea
--- /dev/null
+++ b/components-starter/camel-tarfile-starter/src/main/docs/tarfile.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.tarfile",
+      "type": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tarfile.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.tarfile.allow-empty-directory",
+      "type": "java.lang.Boolean",
+      "description": "If the tar file has more then one entry, setting this option to true, allows to get the iterator even if the directory is empty",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.tarfile.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.tarfile.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tarfile data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tarfile.max-decompressed-size",
+      "type": "java.lang.Long",
+      "description": "Set the maximum decompressed size of a tar file (in bytes). The default value if not specified corresponds to 1 gigabyte. An IOException will be thrown if the decompressed size exceeds this amount. Set to -1 to disable setting a maximum decompressed size.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": 1073741824
+    },
+    {
+      "name": "camel.dataformat.tarfile.preserve-path-elements",
+      "type": "java.lang.Boolean",
+      "description": "If the file name contains path elements, setting this option to true, allows the path to be maintained in the tar file.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.tarfile.using-iterator",
+      "type": "java.lang.Boolean",
+      "description": "If the tar file has more then one entry, the setting this option to true, allows to work with the splitter EIP, to split the data using an iterator in a streaming mode.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-telegram-starter/src/main/docs/telegram.json b/components-starter/camel-telegram-starter/src/main/docs/telegram.json
new file mode 100644
index 0000000..ef7851d
--- /dev/null
+++ b/components-starter/camel-telegram-starter/src/main/docs/telegram.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.telegram",
+      "type": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.telegram.authorization-token",
+      "type": "java.lang.String",
+      "description": "The default Telegram authorization token to be used when the information is not provided in the endpoints.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.telegram.base-uri",
+      "type": "java.lang.String",
+      "description": "Can be used to set an alternative base URI, e.g. when you want to test the component against a mock Telegram API",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": "https:\/\/api.telegram.org"
+    },
+    {
+      "name": "camel.component.telegram.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.telegram.client",
+      "type": "org.asynchttpclient.AsyncHttpClient",
+      "description": "To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.client-config",
+      "type": "org.asynchttpclient.AsyncHttpClientConfig",
+      "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.telegram.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the telegram component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-thrift-starter/src/main/docs/thrift.json b/components-starter/camel-thrift-starter/src/main/docs/thrift.json
new file mode 100644
index 0000000..abc7e2d
--- /dev/null
+++ b/components-starter/camel-thrift-starter/src/main/docs/thrift.json
@@ -0,0 +1,99 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.thrift",
+      "type": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.thrift.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.thrift",
+      "type": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.thrift.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.thrift.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.thrift.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.thrift.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.thrift.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the thrift component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.thrift.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.thrift.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Determine if the thrift component is using global SSL context parameters",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.thrift.content-type-format",
+      "type": "java.lang.String",
+      "description": "Defines a content type format in which thrift message will be serialized\/deserialized from(to) the Java been. The format can either be native or json for either native binary thrift, json or simple json fields representation. The default value is binary.",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "defaultValue": "binary"
+    },
+    {
+      "name": "camel.dataformat.thrift.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.thrift.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.thrift.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the thrift data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.thrift.instance-class",
+      "type": "java.lang.String",
+      "description": "Name of class to use when unmarshalling",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-tika-starter/src/main/docs/tika.json b/components-starter/camel-tika-starter/src/main/docs/tika.json
new file mode 100644
index 0000000..ab415f1
--- /dev/null
+++ b/components-starter/camel-tika-starter/src/main/docs/tika.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.tika",
+      "type": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.tika.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.tika.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.tika.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.tika.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tika component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.tika.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-timer-starter/src/main/docs/timer.json b/components-starter/camel-timer-starter/src/main/docs/timer.json
new file mode 100644
index 0000000..b5318c7
--- /dev/null
+++ b/components-starter/camel-timer-starter/src/main/docs/timer.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.timer",
+      "type": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.timer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.timer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.timer.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.timer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.timer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the timer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-twilio-starter/src/main/docs/twilio.json b/components-starter/camel-twilio-starter/src/main/docs/twilio.json
new file mode 100644
index 0000000..303b2cc
--- /dev/null
+++ b/components-starter/camel-twilio-starter/src/main/docs/twilio.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.twilio",
+      "type": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.twilio.account-sid",
+      "type": "java.lang.String",
+      "description": "The account SID to use.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twilio.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twilio.configuration",
+      "type": "org.apache.camel.component.twilio.TwilioConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.twilio.TwilioConfiguration type.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twilio.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twilio component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twilio.password",
+      "type": "java.lang.String",
+      "description": "Auth token for the account.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.rest-client",
+      "type": "com.twilio.http.TwilioRestClient",
+      "description": "To use the shared REST client. The option is a com.twilio.http.TwilioRestClient type.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.username",
+      "type": "java.lang.String",
+      "description": "The account to use.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-twitter-starter/src/main/docs/twitter.json b/components-starter/camel-twitter-starter/src/main/docs/twitter.json
new file mode 100644
index 0000000..08ba4ec
--- /dev/null
+++ b/components-starter/camel-twitter-starter/src/main/docs/twitter.json
@@ -0,0 +1,280 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.twitter-directmessage",
+      "type": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.twitter-search",
+      "type": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.twitter-timeline",
+      "type": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.twitter-directmessage.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.access-token-secret",
+      "type": "java.lang.String",
+      "description": "The access token secret",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twitter-directmessage.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-directmessage.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twitter-directmessage component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "The http proxy host which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "The http proxy password which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The http proxy port which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "The http proxy user which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-search.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.access-token-secret",
+      "type": "java.lang.String",
+      "description": "The access token secret",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twitter-search.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-search.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twitter-search.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twitter-search component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "The http proxy host which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "The http proxy password which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The http proxy port which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "The http proxy user which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-timeline.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.access-token-secret",
+      "type": "java.lang.String",
+      "description": "The access token secret",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twitter-timeline.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-timeline.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twitter-timeline.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twitter-timeline component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "The http proxy host which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "The http proxy password which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The http proxy port which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "The http proxy user which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-undertow-spring-security-starter/src/main/docs/undertow-spring-security.json b/components-starter/camel-undertow-spring-security-starter/src/main/docs/undertow-spring-security.json
new file mode 100644
index 0000000..b798d46
--- /dev/null
+++ b/components-starter/camel-undertow-spring-security-starter/src/main/docs/undertow-spring-security.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.security.undertow",
+      "type": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration",
+      "sourceType": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak",
+      "type": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration",
+      "sourceType": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration",
+      "sourceMethod": "getKeycloak()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.security.undertow.keycloak",
+      "type": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration",
+      "description": "Properties defined for keycloak provider. Value is gathered together from properties with prefix \"camel.component.undertow.spring.security.keycloak\"",
+      "sourceType": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.client-id",
+      "type": "java.lang.String",
+      "description": "Client id from the Keycloak server used for authentication.",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.realm-id",
+      "type": "java.lang.String",
+      "description": "Realm id from the keycloak server used for authentication.",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.url",
+      "type": "java.lang.String",
+      "description": "Url to keycloak server which will be used in spring security configuration. (Example \"http:\/\/localhost:8080\")",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.user-name-attribute",
+      "type": "java.lang.String",
+      "description": "Name of the attribute, which will be used as username.",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration",
+      "defaultValue": "preferred_username"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-undertow-starter/src/main/docs/undertow.json b/components-starter/camel-undertow-starter/src/main/docs/undertow.json
new file mode 100644
index 0000000..21e2261
--- /dev/null
+++ b/components-starter/camel-undertow-starter/src/main/docs/undertow.json
@@ -0,0 +1,100 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.undertow",
+      "type": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.undertow.allowed-roles",
+      "type": "java.lang.String",
+      "description": "Configuration used by UndertowSecurityProvider. Comma separated list of allowed roles.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.undertow.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.undertow.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.undertow.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the undertow component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.host-options",
+      "type": "org.apache.camel.component.undertow.UndertowHostOptions",
+      "description": "To configure common options, such as thread pools. The option is a org.apache.camel.component.undertow.UndertowHostOptions type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.undertow.mute-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.undertow.security-configuration",
+      "type": "java.lang.Object",
+      "description": "Configuration used by UndertowSecurityProvider. Security configuration object for use from UndertowSecurityProvider. Configuration is UndertowSecurityProvider specific. Each provider decides, whether it accepts configuration. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.security-provider",
+      "type": "org.apache.camel.component.undertow.spi.UndertowSecurityProvider",
+      "description": "Security provider allows plug in the provider, which will be used to secure requests. SPI approach could be used too (component then finds security provider using SPI). The option is a org.apache.camel.component.undertow.spi.UndertowSecurityProvider type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.undertow-http-binding",
+      "type": "org.apache.camel.component.undertow.UndertowHttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.component.undertow.UndertowHttpBinding type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-univocity-parsers-starter/src/main/docs/univocity-parsers.json b/components-starter/camel-univocity-parsers-starter/src/main/docs/univocity-parsers.json
new file mode 100644
index 0000000..2ffb9cc
--- /dev/null
+++ b/components-starter/camel-univocity-parsers-starter/src/main/docs/univocity-parsers.json
@@ -0,0 +1,389 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.univocity-csv",
+      "type": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed",
+      "type": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv",
+      "type": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.univocity-csv.as-map",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.comment",
+      "type": "java.lang.String",
+      "description": "The comment symbol. The default value is #",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "#"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter of values",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": ","
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.empty-value",
+      "type": "java.lang.String",
+      "description": "The String representation of an empty value",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the univocity-csv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.header-extraction-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the header must be read in the first line of the test document The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.headers-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.ignore-leading-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the leading white spaces must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.ignore-trailing-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing white spaces must ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separator of the files The default value is to use the JVM platform line separator",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.normalized-line-separator",
+      "type": "java.lang.String",
+      "description": "The normalized line separator of the files The default value is a new line character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "\\n"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.null-value",
+      "type": "java.lang.String",
+      "description": "The string representation of a null value. The default value is null",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.number-of-records-to-read",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of record to read.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.quote",
+      "type": "java.lang.String",
+      "description": "The quote symbol.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "\""
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.quote-all-fields",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not all values must be quoted when writing them.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.quote-escape",
+      "type": "java.lang.String",
+      "description": "The quote escape symbol",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "\""
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.skip-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the empty lines must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.as-map",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.comment",
+      "type": "java.lang.String",
+      "description": "The comment symbol. The default value is #",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": "#"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.empty-value",
+      "type": "java.lang.String",
+      "description": "The String representation of an empty value",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the univocity-fixed data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.header-extraction-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the header must be read in the first line of the test document The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.headers-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.ignore-leading-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the leading white spaces must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.ignore-trailing-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing white spaces must ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separator of the files The default value is to use the JVM platform line separator",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.normalized-line-separator",
+      "type": "java.lang.String",
+      "description": "The normalized line separator of the files The default value is a new line character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": "\\n"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.null-value",
+      "type": "java.lang.String",
+      "description": "The string representation of a null value. The default value is null",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.number-of-records-to-read",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of record to read.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.padding",
+      "type": "java.lang.String",
+      "description": "The padding character. The default value is a space",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.record-ends-on-newline",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the record ends on new line. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.skip-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the empty lines must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.skip-trailing-chars-until-newline",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing characters until new line must be ignored. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.as-map",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.comment",
+      "type": "java.lang.String",
+      "description": "The comment symbol. The default value is #",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": "#"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.empty-value",
+      "type": "java.lang.String",
+      "description": "The String representation of an empty value",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the univocity-tsv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.escape-char",
+      "type": "java.lang.String",
+      "description": "The escape character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": "\\"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.header-extraction-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the header must be read in the first line of the test document The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.headers-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.ignore-leading-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the leading white spaces must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.ignore-trailing-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing white spaces must ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separator of the files The default value is to use the JVM platform line separator",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.normalized-line-separator",
+      "type": "java.lang.String",
+      "description": "The normalized line separator of the files The default value is a new line character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": "\\n"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.null-value",
+      "type": "java.lang.String",
+      "description": "The string representation of a null value. The default value is null",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.number-of-records-to-read",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of record to read.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.skip-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the empty lines must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-validator-starter/src/main/docs/validator.json b/components-starter/camel-validator-starter/src/main/docs/validator.json
new file mode 100644
index 0000000..a9ae3d0
--- /dev/null
+++ b/components-starter/camel-validator-starter/src/main/docs/validator.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.validator",
+      "type": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.validator.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.validator.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.validator.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.validator.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the validator component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.validator.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.validator.resource-resolver-factory",
+      "type": "org.apache.camel.component.validator.ValidatorResourceResolverFactory",
+      "description": "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The option is a org.apache.camel.component.validator.ValidatorResourceResolverFactory type.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-velocity-starter/src/main/docs/velocity.json b/components-starter/camel-velocity-starter/src/main/docs/velocity.json
new file mode 100644
index 0000000..222795e
--- /dev/null
+++ b/components-starter/camel-velocity-starter/src/main/docs/velocity.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.velocity",
+      "type": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration"
+    },
+    {
+      "name": "camel.component.velocity.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.velocity.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.velocity.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.velocity.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.velocity.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.velocity.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the velocity component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration"
+    },
+    {
+      "name": "camel.component.velocity.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.velocity.velocity-engine",
+      "type": "org.apache.velocity.app.VelocityEngine",
+      "description": "To use the VelocityEngine otherwise a new engine is created. The option is a org.apache.velocity.app.VelocityEngine type.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-vertx-http-starter/src/main/docs/vertx-http.json b/components-starter/camel-vertx-http-starter/src/main/docs/vertx-http.json
new file mode 100644
index 0000000..c75bd87
--- /dev/null
+++ b/components-starter/camel-vertx-http-starter/src/main/docs/vertx-http.json
@@ -0,0 +1,142 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx-http",
+      "type": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx-http.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request has the Content-Type application\/x-java-serialized-object This is disabled by default. If you enable this, be aware that Java will deserialize the incoming data from the request. This can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-http.basic-auth-password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.basic-auth-username",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.bearer-token",
+      "type": "java.lang.String",
+      "description": "The bearer token to use for bearer token authentication",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx-http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx-http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-host",
+      "type": "java.lang.String",
+      "description": "The proxy server host address",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-password",
+      "type": "java.lang.String",
+      "description": "The proxy server password if authentication is required",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The proxy server port",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-type",
+      "type": "io.vertx.core.net.ProxyType",
+      "description": "The proxy server type",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-username",
+      "type": "java.lang.String",
+      "description": "The proxy server username if authentication is required",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.response-payload-as-byte-array",
+      "type": "java.lang.Boolean",
+      "description": "Whether the response body should be byte or as io.vertx.core.buffer.Buffer",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-http.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-http.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use an existing vertx instead of creating a new instance. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.vertx-http-binding",
+      "type": "org.apache.camel.component.vertx.http.VertxHttpBinding",
+      "description": "A custom VertxHttpBinding which can control how to bind between Vert.x and Camel. The option is a org.apache.camel.component.vertx.http.VertxHttpBinding type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "To provide a custom set of vertx options for configuring vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-vertx-kafka-starter/src/main/docs/vertx-kafka.json b/components-starter/camel-vertx-kafka-starter/src/main/docs/vertx-kafka.json
new file mode 100644
index 0000000..62a6c51
--- /dev/null
+++ b/components-starter/camel-vertx-kafka-starter/src/main/docs/vertx-kafka.json
@@ -0,0 +1,731 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx-kafka",
+      "type": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx-kafka.acks",
+      "type": "java.lang.String",
+      "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and the retries configuration will not take effect (as the client won't generally know of any failures). The offset given back for each record will always be set to -1. acks=1 This will mean the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers. In this case should the leader fail immediately after acknowledging the record but before the followers have replicated it then the record will be lost. acks=all This means the leader will wait for the full set of in-sync replicas to acknowledge the record. This guarantees that the record will not be lost as long as at least one in-sync replica remains alive. This is the strongest available guarantee. This is equivalent to the acks=-1 setting.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "1"
+    },
+    {
+      "name": "camel.component.vertx-kafka.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.allow-auto-create-topics",
+      "type": "java.lang.Boolean",
+      "description": "Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.allow-manual-commit",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow doing manual commits via org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit. If this option is enabled then an instance of org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit is stored on the Exchange message header, which allows end users to access this API and perform manual offset commits via the Kafka consumer. Note: To take full control of the offset committing, you may need to disable the Kafka Consumer default auto commit behavior by setting 'enableAutoCommit' to 'false'.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.auto-commit-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.vertx-kafka.auto-offset-reset",
+      "type": "java.lang.String",
+      "description": "What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.vertx-kafka.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.batch-size",
+      "type": "java.lang.Integer",
+      "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size. Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent. A small batch size will make batching less common and may reduce throughput (a batch size of zero will disable batching entirely). A very large batch size may use memory a bit more wastefully as we will always allocate a buffer of the specified batch size in anticipation of additional records.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 16384
+    },
+    {
+      "name": "camel.component.vertx-kafka.bootstrap-servers",
+      "type": "java.lang.String",
+      "description": "A list of host\/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,.... Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.buffer-memory",
+      "type": "java.lang.Long",
+      "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be used for compression (if compression is enabled) as well as for maintaining in-flight requests.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 33554432
+    },
+    {
+      "name": "camel.component.vertx-kafka.check-crcs",
+      "type": "java.lang.Boolean",
+      "description": "Automatically check the CRC32 of the records consumed. This ensures no on-the-wire or on-disk corruption to the messages occurred. This check adds some overhead, so it may be disabled in cases seeking extreme performance.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.client-dns-lookup",
+      "type": "java.lang.String",
+      "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again (both the JVM and the OS cache DNS name lookups, however). If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "use_all_dns_ips"
+    },
+    {
+      "name": "camel.component.vertx-kafka.client-id",
+      "type": "java.lang.String",
+      "description": "An id string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip\/port by allowing a logical application name to be included in server-side request logging.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.client-rack",
+      "type": "java.lang.String",
+      "description": "A rack identifier for this client. This can be any string value which indicates where this client is physically located. It corresponds with the broker config 'broker.rack'",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.compression-type",
+      "type": "java.lang.String",
+      "description": "The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values are none, gzip, snappy, lz4, or zstd. Compression is of full batches of data, so the efficacy of batching will also impact the compression ratio (more batching means better compression).",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "none"
+    },
+    {
+      "name": "camel.component.vertx-kafka.configuration",
+      "type": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.connections-max-idle-ms",
+      "type": "java.lang.Long",
+      "description": "Close idle connections after the number of milliseconds specified by this config. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 540000
+    },
+    {
+      "name": "camel.component.vertx-kafka.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx-kafka.default-api-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "Specifies the timeout (in milliseconds) for client APIs. This configuration is used as the default timeout for all client operations that do not specify a timeout parameter. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.delivery-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "An upper bound on the time to report success or failure after a call to send() returns. This limits the total time that a record will be delayed prior to sending, the time to await acknowledgement from the broker (if expected), and the time allowed for retriable send failures. The producer may report failure to send a record earlier than this config if either an unrecoverable error is encountered, the retries have been exhausted, or the record is added to a batch which reached an earlier delivery expiration deadline. The value of this config should be greater than or equal to the sum of request.timeout.ms and linger.ms. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.vertx-kafka.enable-auto-commit",
+      "type": "java.lang.Boolean",
+      "description": "If true the consumer's offset will be periodically committed in the background.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.enable-idempotence",
+      "type": "java.lang.Boolean",
+      "description": "When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream. Note that enabling idempotence requires max.in.flight.requests.per.connection to be less than or equal to 5, retries to be greater than 0 and acks must be 'all'. If these values are not explicitly set by the user, suitable values will be chosen. If incompatible values are set, a ConfigException will be thrown.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx-kafka component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.exclude-internal-topics",
+      "type": "java.lang.Boolean",
+      "description": "Whether internal topics matching a subscribed pattern should be excluded from the subscription. It is always possible to explicitly subscribe to an internal topic.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.fetch-max-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data the server should return for a fetch request. Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress. As such, this is not a absolute maximum. The maximum record batch size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config). Note that the consumer performs multiple fetches in parallel.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 52428800
+    },
+    {
+      "name": "camel.component.vertx-kafka.fetch-max-wait-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time the server will block before answering the fetch request if there isn't sufficient data to immediately satisfy the requirement given by fetch.min.bytes. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.vertx-kafka.fetch-min-bytes",
+      "type": "java.lang.Integer",
+      "description": "The minimum amount of data the server should return for a fetch request. If insufficient data is available the request will wait for that much data to accumulate before answering the request. The default setting of 1 byte means that fetch requests are answered as soon as a single byte of data is available or the fetch request times out waiting for data to arrive. Setting this to something greater than 1 will cause the server to wait for larger amounts of data to accumulate which can improve server throughput a bit at the cost of some additional latency.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.vertx-kafka.group-id",
+      "type": "java.lang.String",
+      "description": "A unique string that identifies the consumer group this consumer belongs to. This property is required if the consumer uses either the group management functionality by using subscribe(topic) or the Kafka-based offset management strategy.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.group-instance-id",
+      "type": "java.lang.String",
+      "description": "A unique identifier of the consumer instance provided by the end user. Only non-empty strings are permitted. If set, the consumer is treated as a static member, which means that only one instance with this ID is allowed in the consumer group at any time. This can be used in combination with a larger session timeout to avoid group rebalances caused by transient unavailability (e.g. process restarts). If not set, the consumer will join the group as a dynamic member, which is the traditional behavior.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The expected time between heartbeats to the consumer coordinator when using Kafka's group management facilities. Heartbeats are used to ensure that the consumer's session stays active and to facilitate rebalancing when new consumers join or leave the group. The value must be set lower than session.timeout.ms, but typically should be set no higher than 1\/3 of that value. It can be adjusted even lower to control the expected time for normal rebalances. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 3000
+    },
+    {
+      "name": "camel.component.vertx-kafka.interceptor-classes",
+      "type": "java.lang.String",
+      "description": "A list of classes to use as interceptors. Implementing the org.apache.kafka.clients.producer.ProducerInterceptor interface allows you to intercept (and possibly mutate) the records received by the producer before they are published to the Kafka cluster. By default, there are no interceptors.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.isolation-level",
+      "type": "java.lang.String",
+      "description": "Controls how to read messages written transactionally. If set to read_committed, consumer.poll() will only return transactional messages which have been committed. If set to read_uncommitted (the default), consumer.poll() will return all messages, even transactional messages which have been aborted. Non-transactional messages will be returned unconditionally in either mode. Messages will always be returned in offset order. Hence, in read_committed mode, consumer.poll() will only return messages up to the last stable offset (LSO), which is the one less than the offset of the first open transaction. In particular any messages appearing after messages belonging to ongoing transactions will be withheld until the relevant transaction has been completed. As a result, read_committed consumers will not be able to read up to the high watermark when there are in flight transactions. Further, when in read_committed the seekToEnd method will return the LSO",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "read_uncommitted"
+    },
+    {
+      "name": "camel.component.vertx-kafka.kafka-manual-commit-factory",
+      "type": "org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommitFactory",
+      "description": "Factory to use for creating org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit instances. This allows to plugin a custom factory to create custom org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit instances in case special logic is needed when doing manual commits that deviates from the default implementation that comes out of the box. The option is a org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommitFactory type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.key-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for key that implements the org.apache.kafka.common.serialization.Deserializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.key-serializer",
+      "type": "java.lang.String",
+      "description": "Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.linger-ms",
+      "type": "java.lang.Long",
+      "description": "The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer will wait for up to the given delay to allow other records to be sent so that the sends can be batched together. This can be thought of as analogous to Nagle's algorithm in TCP. This setting gives the upper bound on the delay for batching: once we get batch.size worth of records for a partition it will be sent immediately regardless of this setting, however if we have fewer than this many bytes accumulated for this partition we will 'linger' for the specified time waiting for more records to show up. This setting defaults to 0 (i.e. no delay). Setting linger.ms=5, for example, would have the effect of reducing the number of requests sent but would add up to 5ms of latency to records sent in the absence of load. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-block-ms",
+      "type": "java.lang.Long",
+      "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata if it is unavailable. The transaction-related methods always block, but may timeout if the transaction coordinator could not be discovered or did not respond within the timeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-in-flight-requests-per-connection",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled).",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-partition-fetch-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer. If the first record batch in the first non-empty partition of the fetch is larger than this limit, the batch will still be returned to ensure that the consumer can make progress. The maximum record batch size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config). See fetch.max.bytes for limiting the consumer request size.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-poll-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records. If poll() is not called before expiration of this timeout, then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member. For consumers using a non-null group.instance.id which reach this timeout, partitions will not be immediately reassigned. Instead, the consumer will stop sending heartbeats and partitions will be reassigned after expiration of session.timeout.ms. This mirrors the behavior of a static consumer which has shutdown. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-poll-records",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records returned in a single call to poll(). Note, that max.poll.records does not impact the underlying fetching behavior. The consumer will cache the records from each fetch request and returns them incrementally from each poll.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-request-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.vertx-kafka.metadata-max-age-ms",
+      "type": "java.lang.Long",
+      "description": "The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.vertx-kafka.metadata-max-idle-ms",
+      "type": "java.lang.Long",
+      "description": "Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.vertx-kafka.metric-reporters",
+      "type": "java.lang.String",
+      "description": "A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.metrics-num-samples",
+      "type": "java.lang.Integer",
+      "description": "The number of samples maintained to compute metrics.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.vertx-kafka.metrics-recording-level",
+      "type": "java.lang.String",
+      "description": "The highest recording level for metrics.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "INFO"
+    },
+    {
+      "name": "camel.component.vertx-kafka.metrics-sample-window-ms",
+      "type": "java.lang.Long",
+      "description": "The window of time a metrics sample is computed over. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.vertx-kafka.partition-assignment-strategy",
+      "type": "java.lang.String",
+      "description": "A list of class names or class types, ordered by preference, of supported partition assignment strategies that the client will use to distribute partition ownership amongst consumer instances when group management is used. Available options are:org.apache.kafka.clients.consumer.RangeAssignor: The default assignor, which works on a per-topic basis.org.apache.kafka.clients.consumer.RoundRobinAssignor: Assigns partitions to consumers in a round-robin fashion.org.apache.kafka.clients.consumer.StickyAssignor: Guarantees an assignment that is maximally balanced while preserving as many existing partition assignments as possible.org.apache.kafka.clients.consumer.CooperativeStickyAssignor: Follows the same StickyAssignor logic, but allows for cooperative rebalancing.Implementing the org.apache.kafka.clients.consumer.ConsumerPartitionAssignor interface allows you to plug in a custom assignment strategy.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.consumer.RangeAssignor"
+    },
+    {
+      "name": "camel.component.vertx-kafka.partition-id",
+      "type": "java.lang.Integer",
+      "description": "The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.partitioner-class",
+      "type": "java.lang.String",
+      "description": "Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner"
+    },
+    {
+      "name": "camel.component.vertx-kafka.receive-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 32768
+    },
+    {
+      "name": "camel.component.vertx-kafka.reconnect-backoff-max-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.vertx-kafka.reconnect-backoff-ms",
+      "type": "java.lang.Long",
+      "description": "The base amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all connection attempts by the client to a broker. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.vertx-kafka.request-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.vertx-kafka.retries",
+      "type": "java.lang.Integer",
+      "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds, then the records in the second batch may appear first. Note additionally that produce requests will be failed before the number of retries has been exhausted if the timeout configured by delivery.timeout.ms expires first before successful acknowledgement. Users should generally prefer to leave this config unset and instead use delivery.timeout.ms to control retry behavior.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 2147483647
+    },
+    {
+      "name": "camel.component.vertx-kafka.retry-backoff-ms",
+      "type": "java.lang.Long",
+      "description": "The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-client-callback-handler-class",
+      "type": "java.lang.String",
+      "description": "The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-jaas-config",
+      "type": "java.lang.String",
+      "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files. JAAS configuration file format is described here. The format for the value is: loginModuleClass controlFlag (optionName=optionValue);. For brokers, the config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-kinit-cmd",
+      "type": "java.lang.String",
+      "description": "Kerberos kinit command path.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "\/usr\/bin\/kinit"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-min-time-before-relogin",
+      "type": "java.lang.Long",
+      "description": "Login thread sleep time between refresh attempts.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-service-name",
+      "type": "java.lang.String",
+      "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's config.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-ticket-renew-jitter",
+      "type": "java.lang.Double",
+      "description": "Percentage of random jitter added to the renewal time.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-ticket-renew-window-factor",
+      "type": "java.lang.Double",
+      "description": "Login thread will sleep until the specified window factor of time from last refresh to ticket's expiry has been reached, at which time it will try to renew the ticket.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-callback-handler-class",
+      "type": "java.lang.String",
+      "description": "The fully qualified name of a SASL login callback handler class that implements the AuthenticateCallbackHandler interface. For brokers, login callback handler config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-class",
+      "type": "java.lang.String",
+      "description": "The fully qualified name of a class that implements the Login interface. For brokers, login config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-buffer-seconds",
+      "type": "java.lang.Short",
+      "description": "The amount of buffer time before credential expiration to maintain when refreshing a credential, in seconds. If a refresh would otherwise occur closer to expiration than the number of buffer seconds then the refresh will be moved up to maintain as much of the buffer time as possible. Legal values are between 0 and 3600 (1 hour); a default value of 300 (5 minutes) is used if no value is specified. This value and sasl.login.refresh.min.period.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-min-period-seconds",
+      "type": "java.lang.Short",
+      "description": "The desired minimum time for the login refresh thread to wait before refreshing a credential, in seconds. Legal values are between 0 and 900 (15 minutes); a default value of 60 (1 minute) is used if no value is specified. This value and sasl.login.refresh.buffer.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-window-factor",
+      "type": "java.lang.Double",
+      "description": "Login refresh thread will sleep until the specified window factor relative to the credential's lifetime has been reached, at which time it will try to refresh the credential. Legal values are between 0.5 (50%) and 1.0 (100%) inclusive; a default value of 0.8 (80%) is used if no value is specified. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-window-jitter",
+      "type": "java.lang.Double",
+      "description": "The maximum amount of random jitter relative to the credential's lifetime that is added to the login refresh thread's sleep time. Legal values are between 0 and 0.25 (25%) inclusive; a default value of 0.05 (5%) is used if no value is specified. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-mechanism",
+      "type": "java.lang.String",
+      "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "GSSAPI"
+    },
+    {
+      "name": "camel.component.vertx-kafka.security-protocol",
+      "type": "java.lang.String",
+      "description": "Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "PLAINTEXT"
+    },
+    {
+      "name": "camel.component.vertx-kafka.security-providers",
+      "type": "java.lang.String",
+      "description": "A list of configurable creator classes each returning a provider implementing security algorithms. These classes should implement the org.apache.kafka.common.security.auth.SecurityProviderCreator interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.seek-to-offset",
+      "type": "java.lang.Long",
+      "description": "Set if KafkaConsumer will read from a particular offset on startup. This config will take precedence over seekTo config",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.seek-to-position",
+      "type": "java.lang.String",
+      "description": "Set if KafkaConsumer will read from beginning or end on startup: beginning : read from beginning end : read from end.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.send-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 131072
+    },
+    {
+      "name": "camel.component.vertx-kafka.session-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The timeout used to detect client failures when using Kafka's group management facility. The client sends periodic heartbeats to indicate its liveness to the broker. If no heartbeats are received by the broker before the expiration of this session timeout, then the broker will remove this client from the group and initiate a rebalance. Note that the value must be in the allowable range as configured in the broker configuration by group.min.session.timeout.ms and group.max.session.timeout.ms. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.vertx-kafka.socket-connection-setup-timeout-max-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.vertx-kafka.socket-connection-setup-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-cipher-suites",
+      "type": "java.lang.String",
+      "description": "A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol. By default all the available cipher suites are supported.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-enabled-protocols",
+      "type": "java.lang.String",
+      "description": "The list of protocols enabled for SSL connections. The default is 'TLSv1.2,TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. With the default value for Java 11, clients and servers will prefer TLSv1.3 if both support it and fallback to TLSv1.2 otherwise (assuming both support at least TLSv1.2). This default should be fine for most cases. Also see the config documentation for ssl.protocol.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "TLSv1.2,TLSv1.3"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-endpoint-identification-algorithm",
+      "type": "java.lang.String",
+      "description": "The endpoint identification algorithm to validate server hostname using server certificate.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "https"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-engine-factory-class",
+      "type": "java.lang.String",
+      "description": "The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keymanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "SunX509"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-certificate-chain",
+      "type": "java.lang.String",
+      "description": "Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-key",
+      "type": "java.lang.String",
+      "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-location",
+      "type": "java.lang.String",
+      "description": "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-password",
+      "type": "java.lang.String",
+      "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the key store file. This is optional for client.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-protocol",
+      "type": "java.lang.String",
+      "description": "The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients will downgrade to 'TLSv1.2' if the server does not support 'TLSv1.3'. If this config is set to 'TLSv1.2', clients will not use 'TLSv1.3' even if it is one of the values in ssl.enabled.protocols and the server only supports 'TLSv1.3'.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "TLSv1.2"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-provider",
+      "type": "java.lang.String",
+      "description": "The name of the security provider used for SSL connections. Default value is the default security provider of the JVM.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-secure-random-implementation",
+      "type": "java.lang.String",
+      "description": "The SecureRandom PRNG implementation to use for SSL cryptography operations.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-trustmanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "PKIX"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-certificates",
+      "type": "java.lang.String",
+      "description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-location",
+      "type": "java.lang.String",
+      "description": "The location of the trust store file.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-password",
+      "type": "java.lang.String",
+      "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the trust store file.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.vertx-kafka.transaction-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.transactional-id",
+      "type": "java.lang.String",
+      "description": "The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionId is not configured, which means transactions cannot be used. Note that, by default, transactions require a cluster of at least three brokers which is the recommended setting for production; for development you can change this, by adjusting broker setting transaction.state.log.replication.factor.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.value-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for value that implements the org.apache.kafka.common.serialization.Deserializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.value-serializer",
+      "type": "java.lang.String",
+      "description": "Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use an existing vertx instead of creating a new instance. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.vertx-kafka-client-factory",
+      "type": "org.apache.camel.component.vertx.kafka.VertxKafkaClientFactory",
+      "description": "Factory to use for creating io.vertx.kafka.client.consumer.KafkaConsumer and io.vertx.kafka.client.consumer.KafkaProducer instances. This allows to configure a custom factory to create custom KafkaConsumer and KafkaProducer instances with logic that extends the vanilla VertX Kafka clients. The option is a org.apache.camel.component.vertx.kafka.VertxKafkaClientFactory type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "To provide a custom set of vertx options for configuring vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-vertx-starter/src/main/docs/vertx.json b/components-starter/camel-vertx-starter/src/main/docs/vertx.json
new file mode 100644
index 0000000..0f1ff71
--- /dev/null
+++ b/components-starter/camel-vertx-starter/src/main/docs/vertx.json
@@ -0,0 +1,87 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx",
+      "type": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.host",
+      "type": "java.lang.String",
+      "description": "Hostname for creating an embedded clustered EventBus",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx.port",
+      "type": "java.lang.Integer",
+      "description": "Port for creating an embedded clustered EventBus",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in seconds to wait for clustered Vertx EventBus to be ready. The default value is 60.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.vertx.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use the given vertx EventBus instead of creating a new embedded EventBus. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.vertx-factory",
+      "type": "io.vertx.core.impl.VertxBuilder",
+      "description": "To use a custom VertxFactory implementation. The option is a io.vertx.core.impl.VertxBuilder type.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "Options to use for creating vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-vertx-websocket-starter/src/main/docs/vertx-websocket.json b/components-starter/camel-vertx-websocket-starter/src/main/docs/vertx-websocket.json
new file mode 100644
index 0000000..6fd34ce
--- /dev/null
+++ b/components-starter/camel-vertx-websocket-starter/src/main/docs/vertx-websocket.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx-websocket",
+      "type": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx-websocket.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-websocket.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-websocket.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx-websocket.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx-websocket component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-websocket.router",
+      "type": "io.vertx.ext.web.Router",
+      "description": "To provide a custom vertx router to use on the WebSocket server. The option is a io.vertx.ext.web.Router type.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-websocket.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use an existing vertx instead of creating a new instance. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "To provide a custom set of vertx options for configuring vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-vm-starter/src/main/docs/vm.json b/components-starter/camel-vm-starter/src/main/docs/vm.json
new file mode 100644
index 0000000..509b3b5
--- /dev/null
+++ b/components-starter/camel-vm-starter/src/main/docs/vm.json
@@ -0,0 +1,90 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vm",
+      "type": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Sets the default number of concurrent threads processing exchanges.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.vm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vm.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.default-discard-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will be discarded. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will give up sending and continue, meaning that the message was not sent to the SEDA queue.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.default-offer-timeout",
+      "type": "java.lang.Long",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, where a configured timeout can be added to the block case. Utilizing the .offer(timeout) method of the underlining java queue",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.default-queue-factory",
+      "type": "org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange>",
+      "description": "Sets the default queue factory. The option is a org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange> type.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum capacity of the SEDA queue (i.e., the number of messages it can hold).",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-weather-starter/src/main/docs/weather.json b/components-starter/camel-weather-starter/src/main/docs/weather.json
new file mode 100644
index 0000000..e9c4185
--- /dev/null
+++ b/components-starter/camel-weather-starter/src/main/docs/weather.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.weather",
+      "type": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weather.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.weather.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.weather.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.weather.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.weather.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the weather component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weather.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-web3j-starter/src/main/docs/web3j.json b/components-starter/camel-web3j-starter/src/main/docs/web3j.json
new file mode 100644
index 0000000..96ff7da
--- /dev/null
+++ b/components-starter/camel-web3j-starter/src/main/docs/web3j.json
@@ -0,0 +1,266 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.web3j",
+      "type": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.web3j.address",
+      "type": "java.lang.String",
+      "description": "Contract address.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.addresses",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Contract address or a list of addresses.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.at-block",
+      "type": "java.lang.String",
+      "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.web3j.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.web3j.block-hash",
+      "type": "java.lang.String",
+      "description": "Hash of the block where this transaction was in.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.client-id",
+      "type": "java.lang.String",
+      "description": "A random hexadecimal(32 bytes) ID identifying the client.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.configuration",
+      "type": "org.apache.camel.component.web3j.Web3jConfiguration",
+      "description": "Default configuration. The option is a org.apache.camel.component.web3j.Web3jConfiguration type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.web3j.data",
+      "type": "java.lang.String",
+      "description": "The compiled code of a contract OR the hash of the invoked method signature and encoded parameters.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.database-name",
+      "type": "java.lang.String",
+      "description": "The local database name.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the web3j component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.filter-id",
+      "type": "java.math.BigInteger",
+      "description": "The filter id to use. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.from-address",
+      "type": "java.lang.String",
+      "description": "The address the transaction is send from",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.from-block",
+      "type": "java.lang.String",
+      "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.web3j.full-transaction-objects",
+      "type": "java.lang.Boolean",
+      "description": "If true it returns the full transaction objects, if false only the hashes of the transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.gas-limit",
+      "type": "java.math.BigInteger",
+      "description": "The maximum gas allowed in this block. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.gas-price",
+      "type": "java.math.BigInteger",
+      "description": "Gas price used for each paid gas. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.hashrate",
+      "type": "java.lang.String",
+      "description": "A hexadecimal string representation (32 bytes) of the hash rate.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.header-pow-hash",
+      "type": "java.lang.String",
+      "description": "The header's pow-hash (256 bits) used for submitting a proof-of-work solution.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.index",
+      "type": "java.math.BigInteger",
+      "description": "The transactions\/uncle index position in the block. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.key-name",
+      "type": "java.lang.String",
+      "description": "The key name in the database.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.mix-digest",
+      "type": "java.lang.String",
+      "description": "The mix digest (256 bits) used for submitting a proof-of-work solution.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.nonce",
+      "type": "java.lang.String",
+      "description": "The nonce found (64 bits) used for submitting a proof-of-work solution.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.operation",
+      "type": "java.lang.String",
+      "description": "Operation to use.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "transaction"
+    },
+    {
+      "name": "camel.component.web3j.position",
+      "type": "java.math.BigInteger",
+      "description": "The transaction index position withing a block. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.priority",
+      "type": "java.math.BigInteger",
+      "description": "The priority of a whisper message. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.private-for",
+      "type": "java.util.List<java.lang.String>",
+      "description": "A transaction privateFor nodes with public keys in a Quorum network",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.quorum-a-p-i",
+      "type": "java.lang.Boolean",
+      "description": "If true, this will support Quorum API.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.sha3-hash-of-data-to-sign",
+      "type": "java.lang.String",
+      "description": "Message to sign by calculating an Ethereum specific signature.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.signed-transaction-data",
+      "type": "java.lang.String",
+      "description": "The signed transaction data for a new message call transaction or a contract creation for signed transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.source-code",
+      "type": "java.lang.String",
+      "description": "The source code to compile.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.to-address",
+      "type": "java.lang.String",
+      "description": "The address the transaction is directed to.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.to-block",
+      "type": "java.lang.String",
+      "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.web3j.topics",
+      "type": "java.lang.String",
+      "description": "Topics are order-dependent. Each topic can also be a list of topics. Specify multiple topics separated by comma.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.transaction-hash",
+      "type": "java.lang.String",
+      "description": "The information about a transaction requested by transaction hash.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.ttl",
+      "type": "java.math.BigInteger",
+      "description": "The time to live in seconds of a whisper message. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.value",
+      "type": "java.math.BigInteger",
+      "description": "The value sent within a transaction. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.web3j",
+      "type": "org.web3j.protocol.Web3j",
+      "description": "The preconfigured Web3j object. The option is a org.web3j.protocol.Web3j type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-webhook-starter/src/main/docs/webhook.json b/components-starter/camel-webhook-starter/src/main/docs/webhook.json
new file mode 100644
index 0000000..5f16ca1
--- /dev/null
+++ b/components-starter/camel-webhook-starter/src/main/docs/webhook.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.webhook",
+      "type": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.webhook.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.webhook.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.webhook.configuration",
+      "type": "org.apache.camel.component.webhook.WebhookConfiguration",
+      "description": "Set the default configuration for the webhook meta-component. The option is a org.apache.camel.component.webhook.WebhookConfiguration type.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.webhook.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the webhook component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-auto-register",
+      "type": "java.lang.Boolean",
+      "description": "Automatically register the webhook at startup and unregister it on shutdown.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.webhook.webhook-base-path",
+      "type": "java.lang.String",
+      "description": "The first (base) path element where the webhook will be exposed. It's a good practice to set it to a random string, so that it cannot be guessed by unauthorized parties.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for the REST transport, such as netty-http.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-external-url",
+      "type": "java.lang.String",
+      "description": "The URL of the current service as seen by the webhook provider",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-path",
+      "type": "java.lang.String",
+      "description": "The path where the webhook endpoint will be exposed (relative to basePath, if any)",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-websocket-jsr356-starter/src/main/docs/websocket-jsr356.json b/components-starter/camel-websocket-jsr356-starter/src/main/docs/websocket-jsr356.json
new file mode 100644
index 0000000..e3c8f42
--- /dev/null
+++ b/components-starter/camel-websocket-jsr356-starter/src/main/docs/websocket-jsr356.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.websocket-jsr356",
+      "type": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket-jsr356.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.websocket-jsr356.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.websocket-jsr356.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket-jsr356.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.websocket-jsr356.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the websocket-jsr356 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket-jsr356.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket-jsr356.server-endpoint-deployment-strategy",
+      "type": "org.apache.camel.websocket.jsr356.ServerEndpointDeploymentStrategy",
+      "description": "To enable customization of how a WebSocket ServerEndpoint is configured and deployed. By default DefaultServerEndpointDeploymentStrategy is used. The option is a org.apache.camel.websocket.jsr356.ServerEndpointDeploymentStrategy type.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-websocket-starter/src/main/docs/websocket.json b/components-starter/camel-websocket-starter/src/main/docs/websocket.json
new file mode 100644
index 0000000..247d3dc
--- /dev/null
+++ b/components-starter/camel-websocket-starter/src/main/docs/websocket.json
@@ -0,0 +1,133 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.websocket",
+      "type": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.websocket.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.websocket.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.websocket.enable-jmx",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true, Jetty JMX support will be enabled for this endpoint. See Jetty JMX support for more details.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the websocket component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.host",
+      "type": "java.lang.String",
+      "description": "The hostname. The default value is 0.0.0.0",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": "0.0.0.0"
+    },
+    {
+      "name": "camel.component.websocket.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket.max-threads",
+      "type": "java.lang.Integer",
+      "description": "To set a value for maximum number of threads in server thread pool. MaxThreads\/minThreads or threadPool fields are required due to switch to Jetty9. The default values for maxThreads is 1 2 noCores.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.min-threads",
+      "type": "java.lang.Integer",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.port",
+      "type": "java.lang.Integer",
+      "description": "The port number. The default value is 9292",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": 9292
+    },
+    {
+      "name": "camel.component.websocket.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password for the keystore when using SSL.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.ssl-keystore",
+      "type": "java.lang.String",
+      "description": "The path to the keystore.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.ssl-password",
+      "type": "java.lang.String",
+      "description": "The password when using SSL.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.static-resources",
+      "type": "java.lang.String",
+      "description": "Set a resource path for static resources (such as .html files etc). The resources can be loaded from classpath, if you prefix with classpath:, otherwise the resources is loaded from file system or from JAR files. For example to load from root classpath use classpath:., or classpath:WEB-INF\/static If not configured (eg null) then no static resource is in use.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.subprotocol",
+      "type": "java.lang.String",
+      "description": "This is a comma-separated list of subprotocols that are supported by the application. The list is in priority order. The first subprotocol on this list that is proposed by the client is the one that will be accepted. If no subprotocol on this list is proposed by the client, then the websocket connection is refused. The special value 'any' means that any subprotocol is acceptable. 'any' can be used on its own, or as a failsafe at the end of a list of more specific protocols. 'any' will also match the case where no subprotocol is proposed by the client.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": "any"
+    },
+    {
+      "name": "camel.component.websocket.thread-pool",
+      "type": "org.eclipse.jetty.util.thread.ThreadPool",
+      "description": "To use a custom thread pool for the server. MaxThreads\/minThreads or threadPool fields are required due to switch to Jetty9. The option is a org.eclipse.jetty.util.thread.ThreadPool type.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-weka-starter/src/main/docs/weka.json b/components-starter/camel-weka-starter/src/main/docs/weka.json
new file mode 100644
index 0000000..308fea6
--- /dev/null
+++ b/components-starter/camel-weka-starter/src/main/docs/weka.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.weka",
+      "type": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weka.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.weka.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.weka.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.weka.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the weka component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weka.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-wordpress-starter/src/main/docs/wordpress.json b/components-starter/camel-wordpress-starter/src/main/docs/wordpress.json
new file mode 100644
index 0000000..e9bfae1
--- /dev/null
+++ b/components-starter/camel-wordpress-starter/src/main/docs/wordpress.json
@@ -0,0 +1,106 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.wordpress",
+      "type": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.wordpress.api-version",
+      "type": "java.lang.String",
+      "description": "The Wordpress REST API version",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": "2"
+    },
+    {
+      "name": "camel.component.wordpress.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.wordpress.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.wordpress.configuration",
+      "type": "org.apache.camel.component.wordpress.WordpressConfiguration",
+      "description": "Wordpress configuration. The option is a org.apache.camel.component.wordpress.WordpressConfiguration type.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.criteria",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "The criteria to use with complex searches.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.wordpress.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the wordpress component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.force",
+      "type": "java.lang.Boolean",
+      "description": "Whether to bypass trash and force deletion.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.wordpress.id",
+      "type": "java.lang.Integer",
+      "description": "The entity ID. Should be passed when the operation performed requires a specific entity, e.g. deleting a post",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.wordpress.password",
+      "type": "java.lang.String",
+      "description": "Password from authorized user",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.search-criteria",
+      "type": "org.apache.camel.component.wordpress.api.model.SearchCriteria",
+      "description": "Search criteria. The option is a org.apache.camel.component.wordpress.api.model.SearchCriteria type.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.url",
+      "type": "java.lang.String",
+      "description": "The Wordpress API URL from your site, e.g. http:\/\/myblog.com\/wp-json\/",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.user",
+      "type": "java.lang.String",
+      "description": "Authorized user to perform writing operations",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-workday-starter/src/main/docs/workday.json b/components-starter/camel-workday-starter/src/main/docs/workday.json
new file mode 100644
index 0000000..cf5d358
--- /dev/null
+++ b/components-starter/camel-workday-starter/src/main/docs/workday.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.workday",
+      "type": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration"
+    },
+    {
+      "name": "camel.component.workday.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.workday.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.workday.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.workday.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the workday component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration"
+    },
+    {
+      "name": "camel.component.workday.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xchange-starter/src/main/docs/xchange.json b/components-starter/camel-xchange-starter/src/main/docs/xchange.json
new file mode 100644
index 0000000..1e504ad
--- /dev/null
+++ b/components-starter/camel-xchange-starter/src/main/docs/xchange.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xchange",
+      "type": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xchange.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xchange.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xchange.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xchange.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xchange component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xchange.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xj-starter/src/main/docs/xj.json b/components-starter/camel-xj-starter/src/main/docs/xj.json
new file mode 100644
index 0000000..f1130a0
--- /dev/null
+++ b/components-starter/camel-xj-starter/src/main/docs/xj.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xj",
+      "type": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xj.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xj.content-cache",
+      "type": "java.lang.Boolean",
+      "description": "Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xj.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xj.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xj component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xj.saxon-configuration",
+      "type": "net.sf.saxon.Configuration",
+      "description": "To use a custom Saxon configuration. The option is a net.sf.saxon.Configuration type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.saxon-configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "To set custom Saxon configuration properties",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.saxon-extension-functions",
+      "type": "java.lang.String",
+      "description": "Allows you to use a custom net.sf.saxon.lib.ExtensionFunctionDefinition. You would need to add camel-saxon to the classpath. The function is looked up in the registry, where you can comma to separate multiple values to lookup.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.transformer-factory-class",
+      "type": "java.lang.String",
+      "description": "To use a custom XSLT transformer factory, specified as a FQN class name",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.transformer-factory-configuration-strategy",
+      "type": "org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy",
+      "description": "A configuration strategy to apply on freshly created instances of TransformerFactory. The option is a org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.uri-resolver",
+      "type": "javax.xml.transform.URIResolver",
+      "description": "To use a custom UriResolver. Should not be used together with the option 'uriResolverFactory'. The option is a javax.xml.transform.URIResolver type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.uri-resolver-factory",
+      "type": "org.apache.camel.component.xslt.XsltUriResolverFactory",
+      "description": "To use a custom UriResolver which depends on a dynamic endpoint resource URI. Should not be used together with the option 'uriResolver'. The option is a org.apache.camel.component.xslt.XsltUriResolverFactory type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xml-jaxp-starter/src/main/docs/xml-jaxp.json b/components-starter/camel-xml-jaxp-starter/src/main/docs/xml-jaxp.json
new file mode 100644
index 0000000..67851b2
--- /dev/null
+++ b/components-starter/camel-xml-jaxp-starter/src/main/docs/xml-jaxp.json
@@ -0,0 +1,42 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.xtokenize",
+      "type": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xtokenize.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.xtokenize.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.xtokenize.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xtokenize language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xtokenize.mode",
+      "type": "java.lang.String",
+      "description": "The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the extracted token (default) w - wrapping the extracted token in its ancestor context u - unwrapping the extracted token to its child content t - extracting the text content of the specified element",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xtokenize.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xmlsecurity-starter/src/main/docs/xmlsecurity.json b/components-starter/camel-xmlsecurity-starter/src/main/docs/xmlsecurity.json
new file mode 100644
index 0000000..a01600e
--- /dev/null
+++ b/components-starter/camel-xmlsecurity-starter/src/main/docs/xmlsecurity.json
@@ -0,0 +1,457 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xmlsecurity-sign",
+      "type": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify",
+      "type": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.securexml",
+      "type": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xmlsecurity-sign.add-key-info-reference",
+      "type": "java.lang.Boolean",
+      "description": "In order to protect the KeyInfo element from tampering you can add a reference to the signed info element so that it is protected via the signature value. The default value is true. Only relevant when a KeyInfo is returned by KeyAccessor. and KeyInfo#getId() is not null.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.base-uri",
+      "type": "java.lang.String",
+      "description": "You can set a base URI which is used in the URI dereferencing. Relative URIs are then concatenated with the base URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.canonicalization-method",
+      "type": "javax.xml.crypto.AlgorithmMethod",
+      "description": "Canonicalization method used to canonicalize the SignedInfo element before the digest is calculated. You can use the helper methods XmlSignatureHelper.getCanonicalizationMethod(String algorithm) or getCanonicalizationMethod(String algorithm, List inclusiveNamespacePrefixes) to create a canonicalization method. The option is a javax.xml.crypto.AlgorithmMethod type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.clear-headers",
+      "type": "java.lang.Boolean",
+      "description": "Determines if the XML signature specific headers be cleared after signing and verification. Defaults to true.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.content-object-id",
+      "type": "java.lang.String",
+      "description": "Sets the content object Id attribute value. By default a UUID is generated. If you set the null value, then a new UUID will be generated. Only used in the enveloping case.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.content-reference-type",
+      "type": "java.lang.String",
+      "description": "Type of the content reference. The default value is null. This value can be overwritten by the header XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.content-reference-uri",
+      "type": "java.lang.String",
+      "description": "Reference URI for the content to be signed. Only used in the enveloped case. If the reference URI contains an ID attribute value, then the resource schema URI ( setSchemaResourceUri(String)) must also be set because the schema validator will then find out which attributes are ID attributes. Will be ignored in the enveloping or detached case.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.crypto-context-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets the crypto context properties. See {link XMLCryptoContext#setProperty(String, Object)}. Possible properties are defined in XMLSignContext an XMLValidateContext (see Supported Properties). The following properties are set by default to the value Boolean#TRUE for the XML validation. If you want to switch these features off you must set the property value to Boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.digest-algorithm",
+      "type": "java.lang.String",
+      "description": "Digest algorithm URI. Optional parameter. This digest algorithm is used for calculating the digest of the input message. If this digest algorithm is not specified then the digest algorithm is calculated from the signature algorithm. Example: http:\/\/www.w3.org\/2001\/04\/xmlenc#sha256",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.disallow-doctype-decl",
+      "type": "java.lang.Boolean",
+      "description": "Disallows that the incoming XML document contains DTD DOCTYPE declaration. The default value is Boolean#TRUE.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xmlsecurity-sign component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.key-accessor",
+      "type": "org.apache.camel.component.xmlsecurity.api.KeyAccessor",
+      "description": "For the signing process, a private key is necessary. You specify a key accessor bean which provides this private key. The key accessor bean must implement the KeyAccessor interface. The package org.apache.camel.component.xmlsecurity.api contains the default implementation class DefaultKeyAccessor which reads the private key from a Java keystore. The option is a org.apache.camel.component.xmlsecurity.api.KeyAccessor type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.omit-xml-declaration",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the XML declaration in the outgoing message body should be omitted. Default value is false. Can be overwritten by the header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.output-xml-encoding",
+      "type": "java.lang.String",
+      "description": "The character encoding of the resulting signed XML document. If null then the encoding of the original XML document is used.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.parent-local-name",
+      "type": "java.lang.String",
+      "description": "Local name of the parent element to which the XML signature element will be added. Only relevant for enveloped XML signature. Alternatively you can also use setParentXpath(XPathFilterParameterSpec). Default value is null. The value must be null for enveloping and detached XML signature. This parameter or the parameter setParentXpath(XPathFilterParameterSpec) for enveloped signature and the parameter setXpathsToIdAttributes(List) for detached signature must not be set in the same configuration. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.parent-namespace",
+      "type": "java.lang.String",
+      "description": "Namespace of the parent element to which the XML signature element will be added.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.parent-xpath",
+      "type": "javax.xml.crypto.dsig.spec.XPathFilterParameterSpec",
+      "description": "Sets the XPath to find the parent node in the enveloped case. Either you specify the parent node via this method or the local name and namespace of the parent with the methods setParentLocalName(String) and setParentNamespace(String). Default value is null. The value must be null for enveloping and detached XML signature. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown. The option is a javax.xml.crypto.dsig.spec.XPathFilterParameterSpec type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.plain-text",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the message body contains plain text. The default value is false, indicating that the message body contains XML. The value can be overwritten by the header XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.plain-text-encoding",
+      "type": "java.lang.String",
+      "description": "Encoding of the plain text. Only relevant if the message body is plain text (see parameter plainText. Default value is UTF-8.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": "UTF-8"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.prefix-for-xml-signature-namespace",
+      "type": "java.lang.String",
+      "description": "Namespace prefix for the XML signature namespace http:\/\/www.w3.org\/2000\/09\/xmldsig#. Default value is ds. If null or an empty value is set then no prefix is used for the XML signature namespace. See best practice http:\/\/www.w3.org\/TR\/xmldsig-bestpractices\/#signing-xml- without-namespaces",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": "ds"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.properties",
+      "type": "org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties",
+      "description": "For adding additional References and Objects to the XML signature which contain additional properties, you can provide a bean which implements the XmlSignatureProperties interface. The option is a org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.schema-resource-uri",
+      "type": "java.lang.String",
+      "description": "Classpath to the XML Schema. Must be specified in the detached XML Signature case for determining the ID attributes, might be set in the enveloped and enveloping case. If set, then the XML document is validated with the specified XML schema. The schema resource URI can be overwritten by the header XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.signature-algorithm",
+      "type": "java.lang.String",
+      "description": "Signature algorithm. Default value is http:\/\/www.w3.org\/2000\/09\/xmldsig#rsa-sha1.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": "http:\/\/www.w3.org\/2001\/04\/xmldsig-more#rsa-sha256"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.signature-id",
+      "type": "java.lang.String",
+      "description": "Sets the signature Id. If this parameter is not set (null value) then a unique ID is generated for the signature ID (default). If this parameter is set to (empty string) then no Id attribute is created in the signature element.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.signer-configuration",
+      "type": "org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration",
+      "description": "To use a shared XmlSignerConfiguration configuration to use as base for configuring endpoints. The option is a org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.transform-methods",
+      "type": "java.util.List<javax.xml.crypto.AlgorithmMethod>",
+      "description": "Transforms which are executed on the message body before the digest is calculated. By default, C14n is added and in the case of enveloped signature (see option parentLocalName) also http:\/\/www.w3.org\/2000\/09\/xmldsig#enveloped-signature is added at position 0 of the list. Use methods in XmlSignatureHelper to create the transform methods.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.uri-dereferencer",
+      "type": "javax.xml.crypto.URIDereferencer",
+      "description": "If you want to restrict the remote access via reference URIs, you can set an own dereferencer. Optional parameter. If not set the provider default dereferencer is used which can resolve URI fragments, HTTP, file and XPpointer URIs. Attention: The implementation is provider dependent!. The option is a javax.xml.crypto.URIDereferencer type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.xpaths-to-id-attributes",
+      "type": "java.util.List<javax.xml.crypto.dsig.spec.XPathFilterParameterSpec>",
+      "description": "Define the elements which are signed in the detached case via XPATH expressions to ID attributes (attributes of type ID). For each element found via the XPATH expression a detached signature is created whose reference URI contains the corresponding attribute value (preceded by '#'). The signature becomes the last sibling of the signed element. Elements with deeper hierarchy level are signed first. You can also set the XPATH list dynamically via the header XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES. The parameter setParentLocalName(String) or setParentXpath(XPathFilterParameterSpec) for enveloped signature and this parameter for detached signature must not be set in the same configuration.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.base-uri",
+      "type": "java.lang.String",
+      "description": "You can set a base URI which is used in the URI dereferencing. Relative URIs are then concatenated with the base URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.clear-headers",
+      "type": "java.lang.Boolean",
+      "description": "Determines if the XML signature specific headers be cleared after signing and verification. Defaults to true.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.crypto-context-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets the crypto context properties. See {link XMLCryptoContext#setProperty(String, Object)}. Possible properties are defined in XMLSignContext an XMLValidateContext (see Supported Properties). The following properties are set by default to the value Boolean#TRUE for the XML validation. If you want to switch these features off you must set the property value to Boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.disallow-doctype-decl",
+      "type": "java.lang.Boolean",
+      "description": "Disallows that the incoming XML document contains DTD DOCTYPE declaration. The default value is Boolean#TRUE.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xmlsecurity-verify component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.key-selector",
+      "type": "javax.xml.crypto.KeySelector",
+      "description": "Provides the key for validating the XML signature. The option is a javax.xml.crypto.KeySelector type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.omit-xml-declaration",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the XML declaration in the outgoing message body should be omitted. Default value is false. Can be overwritten by the header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.output-node-search",
+      "type": "java.lang.Object",
+      "description": "Sets the output node search value for determining the node from the XML signature document which shall be set to the output message body. The class of the value depends on the type of the output node search. The output node search is forwarded to XmlSignature2Message. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.output-node-search-type",
+      "type": "java.lang.String",
+      "description": "Determines the search type for determining the output node which is serialized into the output message bodyF. See setOutputNodeSearch(Object). The supported default search types you can find in DefaultXmlSignature2Message.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": "Default"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.output-xml-encoding",
+      "type": "java.lang.String",
+      "description": "The character encoding of the resulting signed XML document. If null then the encoding of the original XML document is used.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.remove-signature-elements",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the XML signature elements (elements with local name Signature and namesapce http:\/\/www.w3.org\/2000\/09\/xmldsig#) shall be removed from the document set to the output message. Normally, this is only necessary, if the XML signature is enveloped. The default value is Boolean#FALSE. This parameter is forwarded to XmlSignature2Message. This indicator has no effect if the output node search is of type DefaultXmlSignature2Message#OUTPUT_NODE_SEARCH_TYPE_DEFAULT.F",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.schema-resource-uri",
+      "type": "java.lang.String",
+      "description": "Classpath to the XML Schema. Must be specified in the detached XML Signature case for determining the ID attributes, might be set in the enveloped and enveloping case. If set, then the XML document is validated with the specified XML schema. The schema resource URI can be overwritten by the header XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.secure-validation",
+      "type": "java.lang.Boolean",
+      "description": "Enables secure validation. If true then secure validation is enabled.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.uri-dereferencer",
+      "type": "javax.xml.crypto.URIDereferencer",
+      "description": "If you want to restrict the remote access via reference URIs, you can set an own dereferencer. Optional parameter. If not set the provider default dereferencer is used which can resolve URI fragments, HTTP, file and XPpointer URIs. Attention: The implementation is provider dependent!. The option is a javax.xml.crypto.URIDereferencer type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.validation-failed-handler",
+      "type": "org.apache.camel.component.xmlsecurity.api.ValidationFailedHandler",
+      "description": "Handles the different validation failed situations. The default implementation throws specific exceptions for the different situations (All exceptions have the package name org.apache.camel.component.xmlsecurity.api and are a sub-class of XmlSignatureInvalidException. If the signature value validation fails, a XmlSignatureInvalidValueException is thrown. If a reference validation fails, a XmlSignatureInvalidContentHashException is thrown. For more detailed information, see the JavaDoc. The option is a org.apache.camel.component.xmlsecurity.api.ValidationFailedHandler type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.verifier-configuration",
+      "type": "org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration",
+      "description": "To use a shared XmlVerifierConfiguration configuration to use as base for configuring endpoints. The option is a org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.xml-signature-checker",
+      "type": "org.apache.camel.component.xmlsecurity.api.XmlSignatureChecker",
+      "description": "This interface allows the application to check the XML signature before the validation is executed. This step is recommended in http:\/\/www.w3.org\/TR\/xmldsig-bestpractices\/#check-what-is-signed. The option is a org.apache.camel.component.xmlsecurity.api.XmlSignatureChecker type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.xml-signature2-message",
+      "type": "org.apache.camel.component.xmlsecurity.api.XmlSignature2Message",
+      "description": "Bean which maps the XML signature to the output-message after the validation. How this mapping should be done can be configured by the options outputNodeSearchType, outputNodeSearch, and removeSignatureElements. The default implementation offers three possibilities which are related to the three output node search types Default, ElementName, and XPath. The default implementation determines a node which is then serialized and set to the body of the output message If the search type is ElementName then the output node (which must be in this case an element) is determined by the local name and namespace defined in the search value (see option outputNodeSearch). If the search type is XPath then the output node is determined by the XPath specified in the search value (in this case the output node can be of type Element, TextNode or Document). If the output node search type is Default then the following rules apply: In the enveloped XML signature case (there is a reference with URI= and transform http:\/\/www.w3.org\/2000\/09\/xmldsig#enveloped-signature), the incoming XML document without the Signature element is set to the output message body. In the non-enveloped XML signature case, the message body is determined from a referenced Object; this is explained in more detail in chapter Output Node Determination in Enveloping XML Signature Case. The option is a org.apache.camel.component.xmlsecurity.api.XmlSignature2Message type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.add-key-value-for-encrypted-key",
+      "type": "java.lang.Boolean",
+      "description": "Whether to add the public key used to encrypt the session key as a KeyValue in the EncryptedKey structure or not.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.securexml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.securexml.digest-algorithm",
+      "type": "java.lang.String",
+      "description": "The digest algorithm to use with the RSA OAEP algorithm. The available choices are: XMLCipher.SHA1 XMLCipher.SHA256 XMLCipher.SHA512 The default value is XMLCipher.SHA1",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "SHA1"
+    },
+    {
+      "name": "camel.dataformat.securexml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the secureXML data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.key-cipher-algorithm",
+      "type": "java.lang.String",
+      "description": "The cipher algorithm to be used for encryption\/decryption of the asymmetric key. The available choices are: XMLCipher.RSA_v1dot5 XMLCipher.RSA_OAEP XMLCipher.RSA_OAEP_11 The default value is XMLCipher.RSA_OAEP",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "RSA_OAEP"
+    },
+    {
+      "name": "camel.dataformat.securexml.key-or-trust-store-parameters-ref",
+      "type": "java.lang.String",
+      "description": "Refers to a KeyStore instance to lookup in the registry, which is used for configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.key-password",
+      "type": "java.lang.String",
+      "description": "The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.mgf-algorithm",
+      "type": "java.lang.String",
+      "description": "The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are: EncryptionConstants.MGF1_SHA1 EncryptionConstants.MGF1_SHA256 EncryptionConstants.MGF1_SHA512 The default value is EncryptionConstants.MGF1_SHA1",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "MGF1_SHA1"
+    },
+    {
+      "name": "camel.dataformat.securexml.pass-phrase",
+      "type": "java.lang.String",
+      "description": "A String used as passPhrase to encrypt\/decrypt content. The passPhrase has to be provided. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using TRIPLEDES the passPhase can be a Only another 24 Byte key",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.pass-phrase-byte",
+      "type": "java.lang.Byte[]",
+      "description": "A byte used as passPhrase to encrypt\/decrypt content. The passPhrase has to be provided. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using TRIPLEDES the passPhase can be a Only another 24 Byte key",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.recipient-key-alias",
+      "type": "java.lang.String",
+      "description": "The key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.secure-tag",
+      "type": "java.lang.String",
+      "description": "The XPath reference to the XML Element selected for encryption\/decryption. If no tag is specified, the entire payload is encrypted\/decrypted.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.secure-tag-contents",
+      "type": "java.lang.Boolean",
+      "description": "A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element false = Element Level true = Element Content Level",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.securexml.xml-cipher-algorithm",
+      "type": "java.lang.String",
+      "description": "The cipher algorithm to be used for encryption\/decryption of the XML message content. The available choices are: XMLCipher.TRIPLEDES XMLCipher.AES_128 XMLCipher.AES_128_GCM XMLCipher.AES_192 XMLCipher.AES_192_GCM XMLCipher.AES_256 XMLCipher.AES_256_GCM XMLCipher.SEED_128 XMLCipher.CAMELLIA_128 XMLCipher.CAMELLIA_192 XMLCipher.CAMELLIA_256 The default value is XMLCipher.AES_256_GCM",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "AES-256-GCM"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xmpp-starter/src/main/docs/xmpp.json b/components-starter/camel-xmpp-starter/src/main/docs/xmpp.json
new file mode 100644
index 0000000..4d48851
--- /dev/null
+++ b/components-starter/camel-xmpp-starter/src/main/docs/xmpp.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xmpp",
+      "type": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmpp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xmpp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmpp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmpp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xmpp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xmpp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmpp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xpath-starter/src/main/docs/xpath.json b/components-starter/camel-xpath-starter/src/main/docs/xpath.json
new file mode 100644
index 0000000..bd902dd
--- /dev/null
+++ b/components-starter/camel-xpath-starter/src/main/docs/xpath.json
@@ -0,0 +1,82 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.xpath",
+      "type": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.xpath.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.xpath.document-type",
+      "type": "java.lang.String",
+      "description": "Name of class for document type The default value is org.w3c.dom.Document",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xpath language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.factory-ref",
+      "type": "java.lang.String",
+      "description": "References to a custom XPathFactory to lookup in the registry",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.log-namespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether to log namespaces which can assist during trouble shooting",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.xpath.object-model",
+      "type": "java.lang.String",
+      "description": "The XPath object model to use",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.pre-compile",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable pre-compiling the xpath expression during initialization phase. pre-compile is enabled by default. This can be used to turn off, for example in cases the compilation phase is desired at the starting phase, such as if the application is ahead of time compiled (for example with camel-quarkus) which would then load the xpath factory of the built operating system, and not a JVM runtime.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.xpath.saxon",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use Saxon.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.xpath.thread-safety",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable thread-safety for the returned result of the xpath expression. This applies to when using NODESET as the result type, and the returned set has multiple elements. In this situation there can be thread-safety issues if you process the NODESET concurrently such as from a Camel Splitter EIP in parallel processing mode. This option prevents concurrency issues by doing defensive copies of the nodes. It is recommended to turn this option on if you are using camel-saxon or Saxon in your application. Saxon has thread-safety issues which can be prevented by turning this option on.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.xpath.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xslt-saxon-starter/src/main/docs/xslt-saxon.json b/components-starter/camel-xslt-saxon-starter/src/main/docs/xslt-saxon.json
new file mode 100644
index 0000000..af846d1
--- /dev/null
+++ b/components-starter/camel-xslt-saxon-starter/src/main/docs/xslt-saxon.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xslt-saxon",
+      "type": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xslt-saxon.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt-saxon.content-cache",
+      "type": "java.lang.Boolean",
+      "description": "Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt-saxon.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xslt-saxon.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xslt-saxon component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xslt-saxon.saxon-configuration",
+      "type": "net.sf.saxon.Configuration",
+      "description": "To use a custom Saxon configuration. The option is a net.sf.saxon.Configuration type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.saxon-configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "To set custom Saxon configuration properties",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.saxon-extension-functions",
+      "type": "java.lang.String",
+      "description": "Allows you to use a custom net.sf.saxon.lib.ExtensionFunctionDefinition. You would need to add camel-saxon to the classpath. The function is looked up in the registry, where you can comma to separate multiple values to lookup.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.transformer-factory-class",
+      "type": "java.lang.String",
+      "description": "To use a custom XSLT transformer factory, specified as a FQN class name",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.transformer-factory-configuration-strategy",
+      "type": "org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy",
+      "description": "A configuration strategy to apply on freshly created instances of TransformerFactory. The option is a org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.uri-resolver",
+      "type": "javax.xml.transform.URIResolver",
+      "description": "To use a custom UriResolver. Should not be used together with the option 'uriResolverFactory'. The option is a javax.xml.transform.URIResolver type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.uri-resolver-factory",
+      "type": "org.apache.camel.component.xslt.XsltUriResolverFactory",
+      "description": "To use a custom UriResolver which depends on a dynamic endpoint resource URI. Should not be used together with the option 'uriResolver'. The option is a org.apache.camel.component.xslt.XsltUriResolverFactory type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xslt-starter/src/main/docs/xslt.json b/components-starter/camel-xslt-starter/src/main/docs/xslt.json
new file mode 100644
index 0000000..1e29a41
--- /dev/null
+++ b/components-starter/camel-xslt-starter/src/main/docs/xslt.json
@@ -0,0 +1,74 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xslt",
+      "type": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xslt.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt.content-cache",
+      "type": "java.lang.Boolean",
+      "description": "Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xslt.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xslt component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xslt.transformer-factory-class",
+      "type": "java.lang.String",
+      "description": "To use a custom XSLT transformer factory, specified as a FQN class name",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.transformer-factory-configuration-strategy",
+      "type": "org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy",
+      "description": "A configuration strategy to apply on freshly created instances of TransformerFactory. The option is a org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy type.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.uri-resolver",
+      "type": "javax.xml.transform.URIResolver",
+      "description": "To use a custom UriResolver. Should not be used together with the option 'uriResolverFactory'. The option is a javax.xml.transform.URIResolver type.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.uri-resolver-factory",
+      "type": "org.apache.camel.component.xslt.XsltUriResolverFactory",
+      "description": "To use a custom UriResolver which depends on a dynamic endpoint resource URI. Should not be used together with the option 'uriResolver'. The option is a org.apache.camel.component.xslt.XsltUriResolverFactory type.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-xstream-starter/src/main/docs/xstream.json b/components-starter/camel-xstream-starter/src/main/docs/xstream.json
new file mode 100644
index 0000000..51127f4
--- /dev/null
+++ b/components-starter/camel-xstream-starter/src/main/docs/xstream.json
@@ -0,0 +1,121 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-xstream",
+      "type": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-xstream.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.xstream",
+      "type": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-xstream.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-xstream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-xstream.drop-root-node",
+      "type": "java.lang.Boolean",
+      "description": "Whether XStream will drop the root node in the generated JSon. You may want to enable this when using POJOs; as then the written object will include the class name as root node, which is often not intended to be written in the JSON output.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-xstream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-xstream data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-xstream.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.xstream.aliases",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "Alias a Class to a shorter name to be used in XML elements.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.xstream.converters",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "List of class names for using custom XStream converters. The classes must be of type com.thoughtworks.xstream.converters.Converter",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.xstream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xstream data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.encoding",
+      "type": "java.lang.String",
+      "description": "Sets the encoding to use",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.implicit-collections",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "Adds a default implicit collection which is used for any unmapped XML tag. Multiple values can be separated by comma.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.mode",
+      "type": "java.lang.String",
+      "description": "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",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.omit-fields",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "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. Multiple values can be separated by comma.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.permissions",
+      "type": "java.lang.String",
+      "description": "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 specify com.foo.. Multiple permissions can be configured separated by comma, such as com.foo.,-com.foo.bar.MySecretBean. The following default permission is always included: -,java.lang.,java.util. unless its overridden by specifying a JVM system property with they key org.apache.camel.xstream.permissions.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-yammer-starter/src/main/docs/yammer.json b/components-starter/camel-yammer-starter/src/main/docs/yammer.json
new file mode 100644
index 0000000..bba68a1
--- /dev/null
+++ b/components-starter/camel-yammer-starter/src/main/docs/yammer.json
@@ -0,0 +1,127 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.yammer",
+      "type": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.yammer.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.yammer.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.yammer.configuration",
+      "type": "org.apache.camel.component.yammer.YammerConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.yammer.YammerConfiguration type.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.yammer.delay",
+      "type": "java.lang.Long",
+      "description": "Delay between polling in millis. The option is a long type.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.yammer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the yammer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.yammer.limit",
+      "type": "java.lang.Integer",
+      "description": "Return only the specified number of messages. Works for threaded set to true and threaded set to extended.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.yammer.newer-than",
+      "type": "java.lang.Long",
+      "description": "Returns messages newer than the message ID specified as a numeric string. This should be used when polling for new messages. If you're looking at messages, and the most recent message returned is 3516, you can make a request with the parameter newerThan equals to 3516 to ensure that you do not get duplicate copies of messages already on your page.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.yammer.older-than",
+      "type": "java.lang.Long",
+      "description": "Returns messages older than the message ID specified as a numeric string. This is useful for paginating messages. For example, if you're currently viewing 20 messages and the oldest is number 2912, you could append olderThan equals to 2912 to your request to get the 20 messages prior to those you're seeing.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.yammer.requestor",
+      "type": "org.apache.camel.component.yammer.ApiRequestor",
+      "description": "To use a specific requester to communicate with Yammer. The option is a org.apache.camel.component.yammer.ApiRequestor type.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.threaded",
+      "type": "java.lang.String",
+      "description": "threaded equals to true will only return the first message in each thread. This parameter is intended for apps which display message threads collapsed. threaded equals to extended will return the thread starter messages in order of most recently active as well as the two most recent messages, as they are viewed in the default view on the Yammer web interface.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.use-json",
+      "type": "java.lang.Boolean",
+      "description": "Set to true if you want to use raw JSON rather than converting to POJOs.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.yammer.user-id",
+      "type": "java.lang.String",
+      "description": "The user id",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-zendesk-starter/src/main/docs/zendesk.json b/components-starter/camel-zendesk-starter/src/main/docs/zendesk.json
new file mode 100644
index 0000000..adad7ed
--- /dev/null
+++ b/components-starter/camel-zendesk-starter/src/main/docs/zendesk.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.zendesk",
+      "type": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.zendesk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zendesk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zendesk.configuration",
+      "type": "org.apache.camel.component.zendesk.ZendeskConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.zendesk.ZendeskConfiguration type.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.zendesk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zendesk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zendesk.oauth-token",
+      "type": "java.lang.String",
+      "description": "The OAuth token.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.password",
+      "type": "java.lang.String",
+      "description": "The password.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.server-url",
+      "type": "java.lang.String",
+      "description": "The server URL to connect.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.token",
+      "type": "java.lang.String",
+      "description": "The security token.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.username",
+      "type": "java.lang.String",
+      "description": "The user name.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.zendesk",
+      "type": "org.zendesk.client.v2.Zendesk",
+      "description": "To use a shared Zendesk instance. The option is a org.zendesk.client.v2.Zendesk type.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-zip-deflater-starter/src/main/docs/zip-deflater.json b/components-starter/camel-zip-deflater-starter/src/main/docs/zip-deflater.json
new file mode 100644
index 0000000..1f19811
--- /dev/null
+++ b/components-starter/camel-zip-deflater-starter/src/main/docs/zip-deflater.json
@@ -0,0 +1,58 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.gzipdeflater",
+      "type": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.gzipdeflater.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater",
+      "type": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.gzipdeflater.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.gzipdeflater.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the gzipdeflater data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.compression-level",
+      "type": "java.lang.Integer",
+      "description": "To specify a specific compression between 0-9. -1 is default compression, 0 is no compression, and 9 is best compression.",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zipdeflater data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-zipfile-starter/src/main/docs/zipfile.json b/components-starter/camel-zipfile-starter/src/main/docs/zipfile.json
new file mode 100644
index 0000000..0b8c30c
--- /dev/null
+++ b/components-starter/camel-zipfile-starter/src/main/docs/zipfile.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.zipfile",
+      "type": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipfile.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.zipfile.allow-empty-directory",
+      "type": "java.lang.Boolean",
+      "description": "If the zip file has more then one entry, setting this option to true, allows to get the iterator even if the directory is empty",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.zipfile.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.zipfile.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zipfile data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipfile.max-decompressed-size",
+      "type": "java.lang.Long",
+      "description": "Set the maximum decompressed size of a zip file (in bytes). The default value if not specified corresponds to 1 gigabyte. An IOException will be thrown if the decompressed size exceeds this amount. Set to -1 to disable setting a maximum decompressed size.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": 1073741824
+    },
+    {
+      "name": "camel.dataformat.zipfile.preserve-path-elements",
+      "type": "java.lang.Boolean",
+      "description": "If the file name contains path elements, setting this option to true, allows the path to be maintained in the zip file.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.zipfile.using-iterator",
+      "type": "java.lang.Boolean",
+      "description": "If the zip file has more then one entry, the setting this option to true, allows to work with the splitter EIP, to split the data using an iterator in a streaming mode.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-zipkin-starter/src/main/docs/zipkin.json b/components-starter/camel-zipkin-starter/src/main/docs/zipkin.json
new file mode 100644
index 0000000..de37ce48
--- /dev/null
+++ b/components-starter/camel-zipkin-starter/src/main/docs/zipkin.json
@@ -0,0 +1,76 @@
+{
+  "groups": [
+    {
+      "name": "camel.zipkin",
+      "type": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.zipkin.client-service-mappings",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets client service mapping(s) that matches Camel events to the given zipkin service name. The key is the pattern, the value is the service name.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.endpoint",
+      "type": "java.lang.String",
+      "description": "Sets the POST URL for zipkin's <a href=\"http:\/\/zipkin.io\/zipkin-api\/#\/\">v2 api<\/a>, usually \"http:\/\/zipkinhost:9411\/api\/v2\/spans\"",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.exclude-patterns",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Sets exclude pattern(s) that will disable tracing with zipkin for Camel messages that matches the pattern.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.host-name",
+      "type": "java.lang.String",
+      "description": "Sets the hostname if sending spans to a remote zipkin scribe (thrift RPC) collector.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.include-message-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include the Camel message body in the zipkin traces. This is not recommended for production usage, or when having big payloads. You can limit the size by configuring camel.springboot.log-debug-max-chars option.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.zipkin.include-message-body-streams",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include message bodies that are stream based in the zipkin traces. This is not recommended for production usage, or when having big payloads. You can limit the size by configuring camel.springboot.log-debug-max-chars option.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.zipkin.port",
+      "type": "java.lang.Integer",
+      "description": "Sets the port if sending spans to a remote zipkin scribe (thrift RPC) collector.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.zipkin.rate",
+      "type": "java.lang.Float",
+      "description": "Configures a rate that decides how many events should be traced by zipkin. The rate is expressed as a percentage (1.0f = 100%, 0.5f is 50%, 0.1f is 10%).",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.zipkin.server-service-mappings",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets server service mapping(s) that matches Camel events to the given zipkin service name. The key is the pattern, the value is the service name.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.service-name",
+      "type": "java.lang.String",
+      "description": "To use a global service name that matches all Camel events",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-zookeeper-master-starter/src/main/docs/zookeeper-master.json b/components-starter/camel-zookeeper-master-starter/src/main/docs/zookeeper-master.json
new file mode 100644
index 0000000..b024032
--- /dev/null
+++ b/components-starter/camel-zookeeper-master-starter/src/main/docs/zookeeper-master.json
@@ -0,0 +1,82 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.zookeeper-master",
+      "type": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.zookeeper-master.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zookeeper-master.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper-master.container-id-factory",
+      "type": "org.apache.camel.component.zookeepermaster.ContainerIdFactory",
+      "description": "To use a custom ContainerIdFactory for creating container ids. The option is a org.apache.camel.component.zookeepermaster.ContainerIdFactory type.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.curator",
+      "type": "org.apache.curator.framework.CuratorFramework",
+      "description": "To use a custom configured CuratorFramework as connection to zookeeper ensemble. The option is a org.apache.curator.framework.CuratorFramework type.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.zookeeper-master.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zookeeper-master component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.maximum-connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in millis to use when connecting to the zookeeper ensemble",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.zookeeper-master.zk-root",
+      "type": "java.lang.String",
+      "description": "The root path to use in zookeeper where information is stored which nodes are master\/slave etc. Will by default use: \/camel\/zookeepermaster\/clusters\/master",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": "\/camel\/zookeepermaster\/clusters\/master"
+    },
+    {
+      "name": "camel.component.zookeeper-master.zoo-keeper-password",
+      "type": "java.lang.String",
+      "description": "The password to use when connecting to the zookeeper ensemble",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.zoo-keeper-url",
+      "type": "java.lang.String",
+      "description": "The url for the zookeeper ensemble",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": "localhost:2181"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/components-starter/camel-zookeeper-starter/src/main/docs/zookeeper.json b/components-starter/camel-zookeeper-starter/src/main/docs/zookeeper.json
new file mode 100644
index 0000000..e30fb4e
--- /dev/null
+++ b/components-starter/camel-zookeeper-starter/src/main/docs/zookeeper.json
@@ -0,0 +1,399 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud.zookeeper",
+      "type": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper",
+      "type": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper",
+      "type": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.zookeeper.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.auth-info-list",
+      "type": "java.util.List<org.apache.curator.framework.AuthInfo>",
+      "description": "List of AuthInfo objects with scheme and auth.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.base-path",
+      "type": "java.lang.String",
+      "description": "The base path to store in ZooKeeper.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.connection-timeout",
+      "type": "java.lang.Long",
+      "description": "Connection timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 15000
+    },
+    {
+      "name": "camel.cloud.zookeeper.connection-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Connection timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.curator-framework",
+      "type": "org.apache.curator.framework.CuratorFramework",
+      "description": "Zookeeper CuratorFramework-style client.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.deregister-services-on-stop",
+      "type": "java.lang.Boolean",
+      "description": "Should we remove all the registered services know by this registry on stop ?  Default is true.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.zookeeper.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the zookeeper service registry should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.zookeeper.id",
+      "type": "java.lang.String",
+      "description": "Service Registry ID",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.max-close-wait",
+      "type": "java.lang.Long",
+      "description": "Time to wait during close to join background threads.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.cloud.zookeeper.max-close-wait-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "MaxCloseWait TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.namespace",
+      "type": "java.lang.String",
+      "description": "ZooKeeper namespace. If a namespace is set here, all paths will get pre-pended with the namespace.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.nodes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The Zookeeper server hosts (multiple servers can be separated by comma).",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.override-service-host",
+      "type": "java.lang.Boolean",
+      "description": "Should we override the service host if given ?  Default is true.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-base-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Initial amount of time to wait between retries.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-base-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectBaseSleepTime TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-max-retries",
+      "type": "java.lang.Integer",
+      "description": "Max number of times to retry.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 3
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-max-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Max time to sleep on each retry. Default is Integer.MAX_VALUE.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-max-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectMaxSleepTimeUnit TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.retry-policy",
+      "type": "org.apache.curator.RetryPolicy",
+      "description": "Retry policy to use.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.service-host",
+      "type": "java.lang.String",
+      "description": "Service host.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.cloud.zookeeper.session-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Session timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.auth-info-list",
+      "type": "java.util.List<org.apache.curator.framework.AuthInfo>",
+      "description": "List of AuthInfo objects with scheme and auth.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.base-path",
+      "type": "java.lang.String",
+      "description": "The base path to store in ZooKeeper.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.connection-timeout",
+      "type": "java.lang.Long",
+      "description": "Connection timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 15000
+    },
+    {
+      "name": "camel.cluster.zookeeper.connection-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Connection timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.curator-framework",
+      "type": "org.apache.curator.framework.CuratorFramework",
+      "description": "Zookeeper CuratorFramework-style client.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the zookeeper cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.zookeeper.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.max-close-wait",
+      "type": "java.lang.Long",
+      "description": "Time to wait during close to join background threads.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.cluster.zookeeper.max-close-wait-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "MaxCloseWait TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.namespace",
+      "type": "java.lang.String",
+      "description": "ZooKeeper namespace. If a namespace is set here, all paths will get pre-pended with the namespace.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.nodes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The Zookeeper server hosts (multiple servers can be separated by comma).",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-base-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Initial amount of time to wait between retries.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-base-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectBaseSleepTime TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-max-retries",
+      "type": "java.lang.Integer",
+      "description": "Max number of times to retry.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 3
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-max-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Max time to sleep on each retry. Default is Integer.MAX_VALUE.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-max-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectMaxSleepTimeUnit TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.retry-policy",
+      "type": "org.apache.curator.RetryPolicy",
+      "description": "Retry policy to use.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.cluster.zookeeper.session-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Session timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zookeeper.backoff",
+      "type": "java.lang.Long",
+      "description": "The time interval to backoff for after an error before retrying.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.zookeeper.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.configuration",
+      "type": "org.apache.camel.component.zookeeper.ZooKeeperConfiguration",
+      "description": "To use a shared ZooKeeperConfiguration. The option is a org.apache.camel.component.zookeeper.ZooKeeperConfiguration type.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.create",
+      "type": "java.lang.Boolean",
+      "description": "Should the endpoint create the node if it does not currently exist.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.create-mode",
+      "type": "java.lang.String",
+      "description": "The create mode that should be used for the newly created node",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": "EPHEMERAL"
+    },
+    {
+      "name": "camel.component.zookeeper.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.zookeeper.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zookeeper component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.list-children",
+      "type": "java.lang.Boolean",
+      "description": "Whether the children of the node should be listed",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.repeat",
+      "type": "java.lang.Boolean",
+      "description": "Should changes to the znode be 'watched' and repeatedly processed.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.send-empty-message-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Upon the delete of a znode, should an empty message be send to the consumer",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zookeeper.timeout",
+      "type": "java.lang.Integer",
+      "description": "The time interval to wait on connection before timing out.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": 5000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/core/camel-spring-boot-xml/src/main/docs/spring-boot-xml.json b/core/camel-spring-boot-xml/src/main/docs/spring-boot-xml.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/core/camel-spring-boot-xml/src/main/docs/spring-boot-xml.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/core/camel-spring-boot/src/main/docs/spring-boot.json b/core/camel-spring-boot/src/main/docs/spring-boot.json
new file mode 100644
index 0000000..a68970b
--- /dev/null
+++ b/core/camel-spring-boot/src/main/docs/spring-boot.json
@@ -0,0 +1,1288 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.load-balancer",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$LoadBalancer",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceMethod": "getLoadBalancer()"
+    },
+    {
+      "name": "camel.cloud.service-call",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceMethod": "getServiceCall()"
+    },
+    {
+      "name": "camel.cloud.service-chooser",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceChooser",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceMethod": "getServiceChooser()"
+    },
+    {
+      "name": "camel.cloud.service-discovery",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDiscovery",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceMethod": "getServiceDiscovery()"
+    },
+    {
+      "name": "camel.cloud.service-filter",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceFilter",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceMethod": "getServiceFilter()"
+    },
+    {
+      "name": "camel.cloud.service-registry",
+      "type": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceRegistry",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "sourceMethod": "getServiceRegistry()"
+    },
+    {
+      "name": "camel.clustered.controller",
+      "type": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration",
+      "sourceType": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration"
+    },
+    {
+      "name": "camel.component",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationProperties"
+    },
+    {
+      "name": "camel.component.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationProperties",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.properties",
+      "type": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationProperties"
+    },
+    {
+      "name": "camel.dataformat.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationProperties",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.health",
+      "type": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.config",
+      "type": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.language",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationProperties"
+    },
+    {
+      "name": "camel.language.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationProperties",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.routetemplate",
+      "type": "org.apache.camel.spring.boot.routetemplate.CamelRouteTemplateConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.routetemplate.CamelRouteTemplateConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot",
+      "type": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl",
+      "type": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool",
+      "type": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config",
+      "type": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "management.endpoint.camelroutecontroller",
+      "type": "org.apache.camel.spring.boot.actuate.endpoint.CamelRouteControllerEndpoint",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRouteControllerEndpoint"
+    },
+    {
+      "name": "management.endpoint.camelroutes",
+      "type": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpoint",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpoint"
+    },
+    {
+      "name": "management.endpoint.camelroutes",
+      "type": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpointProperties",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpointProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable Camel cloud support, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.load-balancer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable Camel cloud load balancer, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$LoadBalancer",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.service-call.component",
+      "type": "java.lang.String",
+      "description": "The Camel component to use for calling the service. The default is http component.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-call.default-load-balancer",
+      "type": "java.lang.Boolean",
+      "description": "Determine if the default load balancer should be used instead of any auto discovered one.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.service-call.expression",
+      "type": "java.lang.String",
+      "description": "The expression to use.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-call.expression-language",
+      "type": "java.lang.String",
+      "description": "The expression language to use, default is ref.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall",
+      "defaultValue": "ref"
+    },
+    {
+      "name": "camel.cloud.service-call.load-balancer",
+      "type": "java.lang.String",
+      "description": "A reference to the org.apache.camel.cloud.ServiceLoadBalancer to use.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-call.service-chooser",
+      "type": "java.lang.String",
+      "description": "A reference to the org.apache.camel.cloud.ServiceChooser to use.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-call.service-discovery",
+      "type": "java.lang.String",
+      "description": "A reference to the org.apache.camel.cloud.ServiceDiscovery to use.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-call.service-filter",
+      "type": "java.lang.String",
+      "description": "A reference to the org.apache.camel.cloud.ServiceFilter to use.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-call.uri",
+      "type": "java.lang.String",
+      "description": "The uri of the endpoint to send to. The uri can be dynamic computed using the simple language expression.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceCall"
+    },
+    {
+      "name": "camel.cloud.service-chooser.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable Camel cloud service chooser, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceChooser",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDiscoveryConfiguration>",
+      "description": "Configure the service discovery rules.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDiscovery"
+    },
+    {
+      "name": "camel.cloud.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable Camel cloud service discovery, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDiscovery",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.service-discovery.service-definitions",
+      "type": "java.util.Map<java.lang.String,java.util.List<org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDefinitionConfiguration>>",
+      "description": "Configure static service discovery with distinct id, host, port, and metadata properties.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDiscovery"
+    },
+    {
+      "name": "camel.cloud.service-discovery.services",
+      "type": "java.util.Map<java.lang.String,java.util.List<java.lang.String>>",
+      "description": "Configure static service discovery using simple host:port strings.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceDiscovery"
+    },
+    {
+      "name": "camel.cloud.service-filter.blacklist",
+      "type": "java.util.Map<java.lang.String,java.util.List<java.lang.String>>",
+      "description": "Configure service filter blacklists.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceFilter"
+    },
+    {
+      "name": "camel.cloud.service-filter.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceFilterConfiguration>",
+      "description": "Configure the service filtering rules.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceFilter"
+    },
+    {
+      "name": "camel.cloud.service-filter.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable Camel cloud service filter, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceFilter",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.service-registry.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Configure if service registry should be enabled or not, default true.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceRegistry",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.service-registry.service-host",
+      "type": "java.lang.String",
+      "description": "Configure the service listening address.",
+      "sourceType": "org.apache.camel.spring.boot.cloud.CamelCloudConfigurationProperties$ServiceRegistry"
+    },
+    {
+      "name": "camel.clustered.controller.cluster-service",
+      "type": "org.apache.camel.cluster.CamelClusterService",
+      "description": "The cluster service.",
+      "sourceType": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration"
+    },
+    {
+      "name": "camel.clustered.controller.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable Camel clustered route controller, default is false.",
+      "sourceType": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.clustered.controller.initial-delay",
+      "type": "java.lang.String",
+      "description": "Set the amount of time (in millis) the route controller should wait before to start the routes after the camel context is started or after the route is initialized if the route is created after the camel context is started.",
+      "sourceType": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration"
+    },
+    {
+      "name": "camel.clustered.controller.namespace",
+      "type": "java.lang.String",
+      "description": "The default namespace.",
+      "sourceType": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration"
+    },
+    {
+      "name": "camel.clustered.controller.routes",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration$RouteConfiguration>",
+      "description": "Routes configuration.",
+      "sourceType": "org.apache.camel.spring.boot.cluster.ClusteredRouteControllerConfiguration"
+    },
+    {
+      "name": "camel.component.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable component customizers, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable component auto-configuration, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.properties.auto-discover-properties-sources",
+      "type": "java.lang.Boolean",
+      "description": "Whether to automatically discovery instances of PropertiesSource from registry and service factory.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.properties.default-fallback-enabled",
+      "type": "java.lang.Boolean",
+      "description": "If false, the component does not attempt to find a default for the key by looking after the colon separator.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.properties.encoding",
+      "type": "java.lang.String",
+      "description": "Encoding to use when loading properties file from the file system or classpath. If no encoding has been set, then the properties files is loaded using ISO-8859-1 encoding (latin-1) as documented by java.util.Properties#load(java.io.InputStream)",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.properties.environment-variable-mode",
+      "type": "java.lang.Integer",
+      "description": "Sets the OS environment variables mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to use OS environment variables if present, and override any existing properties. OS environment variable mode is checked before JVM system property mode",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.properties.ignore-missing-location",
+      "type": "java.lang.Boolean",
+      "description": "Whether to silently ignore if a location cannot be located, such as a properties file not found.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.properties.initial-properties",
+      "type": "java.lang.String",
+      "description": "Sets initial properties which will be used before any locations are resolved. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.properties.location",
+      "type": "java.lang.String",
+      "description": "A list of locations to load properties. You can use comma to separate multiple locations. This option will override any default locations and only use the locations from this option.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.properties.override-properties",
+      "type": "java.lang.String",
+      "description": "Sets a special list of override properties that take precedence and will use first, if a property exist. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.properties.properties-parser",
+      "type": "java.lang.String",
+      "description": "To use a custom PropertiesParser. The option is a org.apache.camel.component.properties.PropertiesParser type.",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.properties.system-properties-mode",
+      "type": "java.lang.Integer",
+      "description": "Sets the JVM system property mode (0 = never, 1 = fallback, 2 = override). The default mode (override) is to use system properties if present, and override any existing properties. OS environment variable mode is checked before JVM system property mode",
+      "sourceType": "org.apache.camel.spring.boot.properties.PropertiesComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.dataformat.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable dataformat customizers, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable dataformat auto-configuration, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.health.config",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties>",
+      "description": "Additional health check properties for fine grained configuration of health checks.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.config.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the check associated to this configuration is enabled or not. Is default enabled.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.config.failure-threshold",
+      "type": "java.lang.Integer",
+      "description": "Set the number of failure before reporting the service as un-healthy.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.config.interval",
+      "type": "java.lang.Long",
+      "description": "Set the check interval in milli seconds.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.config.parent",
+      "type": "java.lang.String",
+      "description": "The id of the health check such as routes or registry (can use * as wildcard)",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties$HealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.context-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether context health check is enabled Is default enabled",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether health check is enabled globally",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.registry-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether registry health check is enabled Is default enabled",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.health.routes-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether routes health check is enabled Is default enabled",
+      "sourceType": "org.apache.camel.spring.boot.actuate.health.CamelHealthCheckConfigurationProperties"
+    },
+    {
+      "name": "camel.language.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable language customizers, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable language auto-configuration, default is true.",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.routetemplate.config",
+      "type": "java.util.List<java.util.Map<java.lang.String,java.lang.String>>",
+      "description": "Route template configurations",
+      "sourceType": "org.apache.camel.spring.boot.routetemplate.CamelRouteTemplateConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.allow-use-original-message",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to allow access to the original message from Camel's error handler, or from org.apache.camel.spi.UnitOfWork.getOriginalInMessage(). Turning this off can optimize performance, as defensive copy of the original message is not needed. Default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the object should automatically start when Camel starts. Important: Currently only routes can be disabled, as CamelContext's are always started. Note: When setting auto startup false on CamelContext then that takes precedence and no routes is started. You would need to start CamelContext explicit using the org.apache.camel.CamelContext.start() method, to start the context, and then you would need to start the routes manually using Camelcontext.getRouteController().startRoute(String). Default is true to always start up.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. Default is true.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.backlog-tracing",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether backlog tracing is enabled or not. Default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.bean-introspection-extended-statistics",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether bean introspection uses extended statistics. The default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.bean-introspection-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Sets the logging level used by bean introspection, logging activity of its usage. The default is TRACE.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.bean-post-processor-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Can be used to turn off bean post processing. Be careful to turn this off, as this means that beans that use Camel annotations such as org.apache.camel.EndpointInject, org.apache.camel.ProducerTemplate, org.apache.camel.Produce, org.apache.camel.Consume etc will not be injected and in use. Turning this off should only be done if you are sure you do not use any of these Camel features. Not all runtimes allow turning this off (such as camel-blueprint or camel-cdi with XML). The default value is true (enabled).",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.case-insensitive-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use case sensitive or insensitive headers. Important: When using case sensitive (this is set to false). Then the map is case sensitive which means headers such as content-type and Content-Type are two different keys which can be a problem for some protocols such as HTTP based, which rely on case insensitive headers. However case sensitive implementations can yield faster performance. Therefore use case sensitive implementation with care. Default is true.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.consumer-template-cache-size",
+      "type": "java.lang.Integer",
+      "description": "Consumer template endpoints cache size.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.springboot.dump-routes",
+      "type": "java.lang.Boolean",
+      "description": "If dumping is enabled then Camel will during startup dump all loaded routes (incl rests and route templates) represented as XML DSL into the log. This is intended for trouble shooting or to assist during development. Sensitive information that may be configured in the route endpoints could potentially be included in the dump output and is therefore not recommended to be used for production usage. This requires to have camel-xml-jaxb on the classpath to be able to dump the routes as XML.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.duration-max-idle-seconds",
+      "type": "java.lang.Integer",
+      "description": "To specify for how long time in seconds Camel can be idle before automatic terminating the JVM. You can use this to run Spring Boot for a short while.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.duration-max-messages",
+      "type": "java.lang.Integer",
+      "description": "To specify how many messages to process by Camel before automatic terminating the JVM. You can use this to run Spring Boot for a short while.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.duration-max-seconds",
+      "type": "java.lang.Integer",
+      "description": "To specify for how long time in seconds to keep running the JVM before automatic terminating the JVM. You can use this to run Spring Boot for a short while.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.eager-classloading",
+      "type": "java.lang.Boolean",
+      "description": "Whether to eager load a common set of Camel classes that would otherwise first be loaded on processing the first message. By eager loading these classes then the JVM has already loaded the classes during build phase, which allows Camel to process the first message faster.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.endpoint-bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. <p\/> By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN\/ERROR level and ignored. The default value is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.endpoint-lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. The default value is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.endpoint-runtime-statistics-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints). The default value is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.exchange-factory",
+      "type": "java.lang.String",
+      "description": "Controls whether to pool (reuse) exchanges or create new exchanges (prototype). Using pooled will reduce JVM garbage collection overhead by avoiding to re-create Exchange instances per message each consumer receives. The default is prototype mode.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": "default"
+    },
+    {
+      "name": "camel.springboot.exchange-factory-capacity",
+      "type": "java.lang.Integer",
+      "description": "The capacity the pool (for each consumer) uses for storing exchanges. The default capacity is 100.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.springboot.exchange-factory-statistics-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Configures whether statistics is enabled on exchange factory.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.file-configurations",
+      "type": "java.lang.String",
+      "description": "Directory to load additional configuration files that contains configuration values that takes precedence over any other configuration. This can be used to refer to files that may have secret configuration that has been mounted on the file system for containers. You must use either file: or classpath: as prefix to load from file system or classpath. Then you can specify a pattern to load from sub directories and a name pattern such as file:\/var\/app\/secret\/*.properties",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.global-options",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets global options that can be referenced in the camel context Important: This has nothing to do with property placeholders, and is just a plain set of key\/value pairs which are used to configure global options on CamelContext, such as a maximum debug logging length etc.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.include-non-singletons",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include non-singleton beans (prototypes) when scanning for RouteBuilder instances. By default only singleton beans is included in the context scan.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.inflight-repository-browse-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the inflight repository should allow browsing each inflight exchange. This is by default disabled as there is a very slight performance overhead when enabled.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.java-routes-exclude-pattern",
+      "type": "java.lang.String",
+      "description": "Used for exclusive filtering RouteBuilder classes which are collected from the registry or via classpath scanning. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma. For example to exclude all classes starting with Bar use: &#42;&#42;\/Bar&#42; To exclude all routes form a specific package use: com\/mycompany\/bar\/&#42; To exclude all routes form a specific package and its sub-packages use double wildcards: com\/mycompany\/bar\/&#42;&#42; And to exclude all routes from two specific packages use: com\/mycompany\/bar\/&#42;,com\/mycompany\/stuff\/&#42;",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.java-routes-include-pattern",
+      "type": "java.lang.String",
+      "description": "Used for inclusive filtering RouteBuilder classes which are collected from the registry or via classpath scanning. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma. Multiple patterns can be specified separated by comma. For example to include all classes starting with Foo use: &#42;&#42;\/Foo* To include all routes form a specific package use: com\/mycompany\/foo\/&#42; To include all routes form a specific package and its sub-packages use double wildcards: com\/mycompany\/foo\/&#42;&#42; And to include all routes from two specific packages use: com\/mycompany\/foo\/&#42;,com\/mycompany\/stuff\/&#42;",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.jmx-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable JMX in your Camel application.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.jmx-management-name-pattern",
+      "type": "java.lang.String",
+      "description": "The naming pattern for creating the CamelContext JMX management name. The default pattern is #name#",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": "#name#"
+    },
+    {
+      "name": "camel.springboot.jmx-management-statistics-level",
+      "type": "org.apache.camel.ManagementStatisticsLevel",
+      "description": "Sets the JMX statistics level The level can be set to Extended to gather additional information The default value is Default.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.lightweight",
+      "type": "java.lang.Boolean",
+      "description": "Experimental: Configure the context to be lightweight. This will trigger some optimizations and memory reduction options. Lightweight context has some limitations. At this moment, dynamic endpoint destinations are not supported.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.load-type-converters",
+      "type": "java.lang.Boolean",
+      "description": "Whether to load custom type converters by scanning classpath. This is used for backwards compatibility with Camel 2.x. Its recommended to migrate to use fast type converter loading by setting <tt>@Converter(generateLoader = true)<\/tt> on your custom type converter classes.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.log-debug-max-chars",
+      "type": "java.lang.Integer",
+      "description": "Is used to limit the maximum length of the logging Camel message bodies. If the message body is longer than the limit, the log message is clipped. Use -1 to have unlimited length. Use for example 1000 to log at most 1000 characters.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.log-exhausted-message-body",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to log exhausted message body with message history. Default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.log-mask",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether log mask is enabled or not. Default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.main-run-controller",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use the main run controller to ensure the Spring-Boot application keeps running until being stopped or the JVM terminated. You typically only need this if you run Spring-Boot standalone. If you run Spring-Boot with spring-boot-starter-web then the web container keeps the JVM running.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.mdc-logging-keys-pattern",
+      "type": "java.lang.String",
+      "description": "Sets the pattern used for determining which custom MDC keys to propagate during message routing when the routing engine continues routing asynchronously for the given message. Setting this pattern to * will propagate all custom keys. Or setting the pattern to foo*,bar* will propagate any keys starting with either foo or bar. Notice that a set of standard Camel MDC keys are always propagated which starts with camel. as key name. The match rules are applied in this order (case insensitive): 1. exact match, returns true 2. wildcard match (pattern ends with a * and the name starts with the pattern), returns true 3. regular expression match, returns true 4. otherwise returns false",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.message-history",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether message history is enabled or not. Default is true.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the CamelContext.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.producer-template-cache-size",
+      "type": "java.lang.Integer",
+      "description": "Producer template endpoints cache size.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.springboot.route-controller-back-off-delay",
+      "type": "java.lang.Long",
+      "description": "Backoff delay in millis when restarting a route that failed to startup.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 2000
+    },
+    {
+      "name": "camel.springboot.route-controller-back-off-max-attempts",
+      "type": "java.lang.Long",
+      "description": "Backoff maximum number of attempts to restart a route that failed to startup. When this threshold has been exceeded then the controller will give up attempting to restart the route, and the route will remain as stopped.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.route-controller-back-off-max-delay",
+      "type": "java.lang.Long",
+      "description": "Backoff maximum delay in millis when restarting a route that failed to startup.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.route-controller-back-off-max-elapsed-time",
+      "type": "java.lang.Long",
+      "description": "Backoff maximum elapsed time in millis, after which the backoff should be considered exhausted and no more attempts should be made.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.route-controller-back-off-multiplier",
+      "type": "java.lang.Double",
+      "description": "Backoff multiplier to use for exponential backoff. This is used to extend the delay between restart attempts.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.springboot.route-controller-exclude-routes",
+      "type": "java.lang.String",
+      "description": "Pattern for filtering routes to be included as supervised. The pattern is matching on route id, and endpoint uri for the route. Multiple patterns can be separated by comma. For example to include all kafka routes, you can say <tt>kafka:*<\/tt>. And to include routes with specific route ids <tt>myRoute,myOtherRoute<\/tt>. The pattern supports wildcards and uses the matcher from org.apache.camel.support.PatternHelper#matchPattern.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.route-controller-include-routes",
+      "type": "java.lang.String",
+      "description": "Pattern for filtering routes to be excluded as supervised. The pattern is matching on route id, and endpoint uri for the route. Multiple patterns can be separated by comma. For example to exclude all JMS routes, you can say <tt>jms:*<\/tt>. And to exclude routes with specific route ids <tt>mySpecialRoute,myOtherSpecialRoute<\/tt>. The pattern supports wildcards and uses the matcher from org.apache.camel.support.PatternHelper#matchPattern.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.route-controller-initial-delay",
+      "type": "java.lang.Long",
+      "description": "Initial delay in milli seconds before the route controller starts, after CamelContext has been started.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.route-controller-supervise-enabled",
+      "type": "java.lang.Boolean",
+      "description": "To enable using supervising route controller which allows Camel to startup and then the controller takes care of starting the routes in a safe manner. This can be used when you want to startup Camel despite a route may otherwise fail fast during startup and cause Camel to fail to startup as well. By delegating the route startup to the supervising route controller then it manages the startup using a background thread. The controller allows to be configured with various settings to attempt to restart failing routes.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.route-controller-thread-pool-size",
+      "type": "java.lang.Integer",
+      "description": "The number of threads used by the route controller scheduled thread pool that are used for restarting routes. The pool uses 1 thread by default, but you can increase this to allow the controller to concurrently attempt to restart multiple routes in case more than one route has problems starting.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.springboot.route-controller-unhealthy-on-exhausted",
+      "type": "java.lang.Boolean",
+      "description": "Whether to mark the route as unhealthy (down) when all restarting attempts (backoff) have failed and the route is not successfully started and the route manager is giving up. Setting this to true allows health checks to know about this and can report the Camel application as DOWN. The default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.route-filter-exclude-pattern",
+      "type": "java.lang.String",
+      "description": "Used for filtering routes routes matching the given pattern, which follows the following rules: - Match by route id - Match by route input endpoint uri The matching is using exact match, by wildcard and regular expression. For example to only include routes which starts with foo in their route id's, use: include=foo&#42; And to exclude routes which starts from JMS endpoints, use: exclude=jms:&#42; Multiple patterns can be separated by comma, for example to exclude both foo and bar routes, use: exclude=foo&#42;,bar&#42; Exclude takes precedence over include.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.route-filter-include-pattern",
+      "type": "java.lang.String",
+      "description": "Used for filtering routes matching the given pattern, which follows the following rules: - Match by route id - Match by route input endpoint uri The matching is using exact match, by wildcard and regular expression. For example to only include routes which starts with foo in their route id's, use: include=foo&#42; And to exclude routes which starts from JMS endpoints, use: exclude=jms:&#42; Multiple patterns can be separated by comma, for example to exclude both foo and bar routes, use: exclude=foo&#42;,bar&#42; Exclude takes precedence over include.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.routes-collector-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether the routes collector is enabled or not. When enabled Camel will auto-discover routes (RouteBuilder instances from the registry and also load additional routes from the file system). The routes collector is default enabled.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.routes-exclude-pattern",
+      "type": "java.lang.String",
+      "description": "Used for exclusive filtering of routes from directories. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma, as example, to exclude all the routes from a directory whose name contains foo use: &#42;&#42;\/*foo*.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.routes-include-pattern",
+      "type": "java.lang.String",
+      "description": "Used for inclusive filtering of routes from directories. The exclusive filtering takes precedence over inclusive filtering. The pattern is using Ant-path style pattern. Multiple patterns can be specified separated by comma, as example, to include all the routes from a directory whose name contains foo use: &#42;&#42;\/*foo*.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": "classpath:camel\/*,classpath:camel-template\/*,classpath:camel-rest\/*"
+    },
+    {
+      "name": "camel.springboot.shutdown-log-inflight-exchanges-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to log information about the inflight Exchanges which are still running during a shutdown which didn't complete without the given timeout. This requires to enable the option inflightRepositoryExchangeEnabled.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.shutdown-now-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to force shutdown of all consumers when a timeout occurred and thus not all consumers was shutdown within that period. You should have good reasons to set this option to false as it means that the routes keep running and is halted abruptly when CamelContext has been shutdown.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.shutdown-routes-in-reverse-order",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether routes should be shutdown in reverse or the same order as they where started.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.shutdown-suppress-logging-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "Whether Camel should try to suppress logging during shutdown and timeout was triggered, meaning forced shutdown is happening. And during forced shutdown we want to avoid logging errors\/warnings et all in the logs as a side-effect of the forced timeout. Notice the suppress is a best effort as there may still be some logs coming from 3rd party libraries and whatnot, which Camel cannot control. This option is default false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.shutdown-timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in seconds to graceful shutdown Camel.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.springboot.startup-recorder",
+      "type": "java.lang.String",
+      "description": "To use startup recorder for capturing execution time during starting Camel. The recorder can be one of: false (or off), logging, java-flight-recorder (or jfr).",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.startup-recorder-dir",
+      "type": "java.lang.String",
+      "description": "Directory to store the recording. By default the user home directory will be used. Use false to turn off saving recording to disk.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.startup-recorder-duration",
+      "type": "java.lang.Long",
+      "description": "How long time to run the startup recorder. Use 0 (default) to keep the recorder running until the JVM is exited. Use -1 to stop the recorder right after Camel has been started (to only focus on potential Camel startup performance bottlenecks) Use a positive value to keep recording for N seconds. When the recorder is stopped then the recording is auto saved to disk (note: save to disk can be disabled by setting startupRecorderDir to false)",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.startup-recorder-max-depth",
+      "type": "java.lang.Integer",
+      "description": "To filter our sub steps at a maximum depth. Use -1 for no maximum. Use 0 for no sub steps. Use 1 for max 1 sub step, and so forth. The default is -1.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.springboot.startup-recorder-profile",
+      "type": "java.lang.String",
+      "description": "To use a specific Java Flight Recorder profile configuration, such as default or profile. The default is default.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": "default"
+    },
+    {
+      "name": "camel.springboot.startup-recorder-recording",
+      "type": "java.lang.Boolean",
+      "description": "To enable Java Flight Recorder to start a recording and automatic dump the recording to disk after startup is complete. This requires that camel-jfr is on the classpath, and to enable this option.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.startup-summary-level",
+      "type": "org.apache.camel.StartupSummaryLevel",
+      "description": "Controls the level of information logged during startup (and shutdown) of CamelContext.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.stream-caching-any-spool-rules",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether if just any of the org.apache.camel.spi.StreamCachingStrategy.SpoolRule rules returns true then shouldSpoolCache(long) returns true, to allow spooling to disk. If this option is false, then all the org.apache.camel.spi.StreamCachingStrategy.SpoolRule must return true. The default value is false which means that all the rules must return true.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.stream-caching-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the stream caching buffer size to use when allocating in-memory buffers used for in-memory stream caches. The default size is 4096.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.stream-caching-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether stream caching is enabled or not. Default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.stream-caching-remove-spool-directory-when-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Whether to remove stream caching temporary directory when stopping. This option is default true.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.stream-caching-spool-cipher",
+      "type": "java.lang.String",
+      "description": "Sets a stream caching cipher name to use when spooling to disk to write with encryption. By default the data is not encrypted.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.stream-caching-spool-directory",
+      "type": "java.lang.String",
+      "description": "Sets the stream caching spool (temporary) directory to use for overflow and spooling to disk. If no spool directory has been explicit configured, then a temporary directory is created in the java.io.tmpdir directory.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.stream-caching-spool-threshold",
+      "type": "java.lang.Long",
+      "description": "Stream caching threshold in bytes when overflow to disk is activated. The default threshold is 128kb. Use -1 to disable overflow to disk.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.stream-caching-spool-used-heap-memory-limit",
+      "type": "java.lang.String",
+      "description": "Sets what the upper bounds should be when streamCachingSpoolUsedHeapMemoryThreshold is in use.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.stream-caching-spool-used-heap-memory-threshold",
+      "type": "java.lang.Integer",
+      "description": "Sets a percentage (1-99) of used heap memory threshold to activate stream caching spooling to disk.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.springboot.stream-caching-statistics-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether stream caching statistics is enabled.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.thread-name-pattern",
+      "type": "java.lang.String",
+      "description": "Sets the thread name pattern used for creating the full thread name. The default pattern is: Camel (#camelId#) thread ##counter# - #name# Where #camelId# is the name of the CamelContext. and #counter# is a unique incrementing counter. and #name# is the regular thread name. You can also use #longName# which is the long thread name which can includes endpoint parameters etc.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.tracing",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether tracing is enabled or not. Default is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.tracing-pattern",
+      "type": "java.lang.String",
+      "description": "Tracing pattern to match which node EIPs to trace. For example to match all To EIP nodes, use to*. The pattern matches by node and route id's Multiple patterns can be separated by comma.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties"
+    },
+    {
+      "name": "camel.springboot.use-breadcrumb",
+      "type": "java.lang.Boolean",
+      "description": "Set whether breadcrumb is enabled. The default value is false.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.use-data-type",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable using data type on Camel messages. Data type are automatic turned on if one or more routes has been explicit configured with input and output types. Otherwise data type is default off.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.use-mdc-logging",
+      "type": "java.lang.Boolean",
+      "description": "To turn on MDC logging",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.springboot.uuid-generator",
+      "type": "java.lang.String",
+      "description": "UUID generator to use. default (32 bytes), short (16 bytes), classic (32 bytes or longer), simple (long incrementing counter), off (turned off for exchanges - only intended for performance profiling)",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": "default"
+    },
+    {
+      "name": "camel.springboot.warn-on-early-shutdown",
+      "type": "java.lang.Boolean",
+      "description": "Whether to log a WARN if Camel on Spring Boot was immediately shutdown after starting which very likely is because there is no JVM thread to keep the application running.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.ssl.cert-alias",
+      "type": "java.lang.String",
+      "description": "An optional certificate alias to use. This is useful when the keystore has multiple certificates.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.cipher-suites",
+      "type": "org.apache.camel.support.jsse.CipherSuitesParameters",
+      "description": "The optional explicitly configured cipher suites for this configuration.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.cipher-suites-filter",
+      "type": "org.apache.camel.support.jsse.FilterParameters",
+      "description": "The optional cipher suite filter configuration for this configuration.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.client-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextClientParameters",
+      "description": "The optional configuration options to be applied purely to the client side settings of the SSLContext. Settings specified here override any duplicate settings provided at the overall level by this class. These parameters apply to SSLSocketFactory and SSLEngine produced by the SSLContext produced from this class as well as to the SSLContext itself.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.config",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Global Camel security configuration.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.key-managers",
+      "type": "org.apache.camel.support.jsse.KeyManagersParameters",
+      "description": "The optional key manager configuration for creating the KeyManager used in constructing an SSLContext.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.provider",
+      "type": "java.lang.String",
+      "description": "The optional provider identifier for the JSSE implementation to use when constructing an SSLContext.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.secure-random",
+      "type": "org.apache.camel.support.jsse.SecureRandomParameters",
+      "description": "The optional secure random configuration options to use for constructing the SecureRandom used in the creation of an SSLContext.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.secure-socket-protocol",
+      "type": "java.lang.String",
+      "description": "The optional protocol for the secure sockets created by the SSLContext represented by this instance's configuration. See Appendix A in the Java Secure Socket Extension Reference Guide for information about standard protocol names.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.secure-socket-protocols",
+      "type": "org.apache.camel.support.jsse.SecureSocketProtocolsParameters",
+      "description": "The optional explicitly configured secure socket protocol names for this configuration.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.secure-socket-protocols-filter",
+      "type": "org.apache.camel.support.jsse.FilterParameters",
+      "description": "The option secure socket protocol name filter configuration for this configuration.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.server-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextServerParameters",
+      "description": "The optional configuration options to be applied purely to the server side settings of the SSLContext. Settings specified here override any duplicate settings provided at the overall level by this class. These parameters apply to SSLServerSocketFactory and SSLEngine produced by the SSLContext produced from this class as well as to the SSLContext itself.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.session-timeout",
+      "type": "java.lang.String",
+      "description": "The optional SSLSessionContext timeout time for javax.net.ssl.SSLSession in seconds.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.ssl.trust-managers",
+      "type": "org.apache.camel.support.jsse.TrustManagersParameters",
+      "description": "The optional trust manager configuration for creating the TrustManager used in constructing an SSLContext.",
+      "sourceType": "org.apache.camel.spring.boot.security.CamelSSLConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.allow-core-thread-time-out",
+      "type": "java.lang.Boolean",
+      "description": "Sets default whether to allow core threads to timeout",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties>",
+      "description": "Adds a configuration for a specific thread pool profile (inherits default values)",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.allow-core-thread-time-out",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to allow core threads to timeout",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.id",
+      "type": "java.lang.String",
+      "description": "Sets the id of this thread pool",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.keep-alive-time",
+      "type": "java.lang.Long",
+      "description": "Sets the keep alive time for inactive threads",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.max-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the maximum pool size",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the maximum number of tasks in the work queue. Use -1 or an unbounded queue",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the core pool size (threads to keep minimum in pool)",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.rejected-policy",
+      "type": "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy",
+      "description": "Sets the handler for tasks which cannot be executed by the thread pool.",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.config.time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Sets the time unit used for keep alive time",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties$ThreadPoolProfileConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.keep-alive-time",
+      "type": "java.lang.Long",
+      "description": "Sets the default keep alive time for inactive threads",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.max-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum pool size",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum number of tasks in the work queue. Use -1 or an unbounded queue",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default core pool size (threads to keep minimum in pool)",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.rejected-policy",
+      "type": "org.apache.camel.util.concurrent.ThreadPoolRejectedPolicy",
+      "description": "Sets the default handler for tasks which cannot be executed by the thread pool.",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "camel.threadpool.time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Sets the default time unit used for keep alive time",
+      "sourceType": "org.apache.camel.spring.boot.threadpool.CamelThreadPoolConfigurationProperties"
+    },
+    {
+      "name": "management.endpoint.camelroutecontroller.cache.time-to-live",
+      "type": "java.time.Duration",
+      "description": "Maximum time that a response can be cached.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRouteControllerEndpoint",
+      "defaultValue": "0ms"
+    },
+    {
+      "name": "management.endpoint.camelroutecontroller.enabled",
+      "type": "java.lang.Boolean",
+      "description": "To turn on or off information about Camel Route Controller via actuator endpoint.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRouteControllerEndpoint",
+      "defaultValue": true
+    },
+    {
+      "name": "management.endpoint.camelroutes.cache.time-to-live",
+      "type": "java.time.Duration",
+      "description": "Maximum time that a response can be cached.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpoint",
+      "defaultValue": "0ms"
+    },
+    {
+      "name": "management.endpoint.camelroutes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "To turn on or off information about Camel Routes via actuator endpoint.",
+      "defaultValue": true
+    },
+    {
+      "name": "management.endpoint.camelroutes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable the camelroutes endpoint.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpoint",
+      "defaultValue": true
+    },
+    {
+      "name": "management.endpoint.camelroutes.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpointProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "management.endpoint.camelroutes.read-only",
+      "type": "java.lang.Boolean",
+      "description": "Whether Camel Routes actuator is in read-only mode. If not in read-only mode then operations to start\/stop routes would be enabled.",
+      "sourceType": "org.apache.camel.spring.boot.actuate.endpoint.CamelRoutesEndpointProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "management.info.camel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable Camel info.",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.springboot.route-controller-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Sets the logging level used for logging route activity (such as starting and stopping routes). The default logging level is DEBUG.",
+      "sourceType": "org.apache.camel.spring.boot.CamelConfigurationProperties",
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/activemq.json b/docs/components/modules/spring-boot/examples/json/activemq.json
new file mode 100644
index 0000000..4161548
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/activemq.json
@@ -0,0 +1,706 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.activemq",
+      "type": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.activemq.accept-messages-while-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on the JMS broker. To avoid this its recommended to enable this option.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.acknowledgement-mode-name",
+      "type": "java.lang.String",
+      "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": "AUTO_ACKNOWLEDGE"
+    },
+    {
+      "name": "camel.component.activemq.allow-additional-headers",
+      "type": "java.lang.String",
+      "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.allow-auto-wired-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.allow-auto-wired-destination-resolver",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.allow-reply-manager-quick-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.always-copy-message",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set)",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.artemis-consumer-priority",
+      "type": "java.lang.Integer",
+      "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.artemis-streaming-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.async-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been enabled, then asyncConsumer=true does not run asynchronously, as transaction must be executed synchronously (Camel 3.0 may support async transactions).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.async-start-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.async-stop-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.broker-url",
+      "type": "java.lang.String",
+      "description": "Sets the broker URL to use to connect to ActiveMQ. If none configured then localhost:61616 is used by default (however can be overridden by configuration from environment variables)",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.cache-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": "CACHE_AUTO"
+    },
+    {
+      "name": "camel.component.activemq.client-id",
+      "type": "java.lang.String",
+      "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.configuration",
+      "type": "org.apache.camel.component.jms.JmsConfiguration",
+      "description": "To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.consumer-type",
+      "type": "org.apache.camel.component.jms.ConsumerType",
+      "description": "The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.correlation-property",
+      "type": "java.lang.String",
+      "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.activemq.default-task-executor-type",
+      "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+      "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsync for reply consumers. The use of ThreadPool is recommended to reduce thread trash in elastic configurations with dynamically increasing and decreasing concurrent consumers.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.delivery-delay",
+      "type": "java.lang.Long",
+      "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.delivery-mode",
+      "type": "java.lang.Integer",
+      "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether persistent delivery is used by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.destination-resolver",
+      "type": "org.springframework.jms.support.destination.DestinationResolver",
+      "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.disable-reply-to",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you want to route message from one system to another.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.disable-time-to-live",
+      "type": "java.lang.Boolean",
+      "description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire on the receiver system. See below in section About time to live for more details.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.durable-subscription-name",
+      "type": "java.lang.String",
+      "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.eager-loading-of-properties",
+      "type": "java.lang.Boolean",
+      "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.eager-poison-body",
+      "type": "java.lang.String",
+      "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": "Poison JMS message due to ${exception.message}"
+    },
+    {
+      "name": "camel.component.activemq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the activemq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.error-handler-log-stack-trace",
+      "type": "java.lang.Boolean",
+      "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.error-handler-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.exception-listener",
+      "type": "javax.jms.ExceptionListener",
+      "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.explicit-qos-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.expose-listener-session",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the listener session should be exposed when consuming messages.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.force-send-original-message",
+      "type": "java.lang.Boolean",
+      "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.format-date-headers-to-iso8601",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.idle-consumer-limit",
+      "type": "java.lang.Integer",
+      "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.idle-task-execution-limit",
+      "type": "java.lang.Integer",
+      "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.include-all-jmsx-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.include-sent-jms-message-id",
+      "type": "java.lang.Boolean",
+      "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.jms-key-format-strategy",
+      "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.jms-message-type",
+      "type": "org.apache.camel.component.jms.JmsMessageType",
+      "description": "Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.lazy-create-transaction-manager",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.map-jms-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.max-messages-per-task",
+      "type": "java.lang.Integer",
+      "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.message-converter",
+      "type": "org.springframework.jms.support.converter.MessageConverter",
+      "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.message-created-strategy",
+      "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.message-id-enabled",
+      "type": "java.lang.Boolean",
+      "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.message-listener-container-factory",
+      "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+      "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.message-timestamp-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.password",
+      "type": "java.lang.String",
+      "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.preserve-message-qos",
+      "type": "java.lang.Boolean",
+      "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by contrast, will only use options set on the endpoint, and not values from the message header.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.priority",
+      "type": "java.lang.Integer",
+      "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 4
+    },
+    {
+      "name": "camel.component.activemq.pub-sub-no-local",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to inhibit the delivery of messages published by its own connection.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.queue-browse-strategy",
+      "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+      "description": "To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.receive-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for receiving messages (in milliseconds). The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.activemq.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.activemq.reply-to",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w\/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE_NONE is not allowed, and you must use a higher value such as CACHE_CONSUMER or CACHE_SESSION.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.reply-to-delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use persistent delivery by default for replies.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.reply-to-destination-selector-name",
+      "type": "java.lang.String",
+      "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.activemq.reply-to-override",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.reply-to-same-destination-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.reply-to-type",
+      "type": "org.apache.camel.component.jms.ReplyToType",
+      "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running in a clustered environment, and the fact that Shared reply queues has lower performance than its alternatives Temporary and Exclusive.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.request-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.activemq.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.activemq.selector",
+      "type": "java.lang.String",
+      "description": "Sets the JMS selector to use",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.stream-message-type-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no more data.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.subscription-durable",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.subscription-name",
+      "type": "java.lang.String",
+      "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.subscription-shared",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscriptionDurable as well. Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well. Requires a JMS 2.0 compatible message broker.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.task-executor",
+      "type": "org.springframework.core.task.TaskExecutor",
+      "description": "Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.time-to-live",
+      "type": "java.lang.Long",
+      "description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.transacted",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use transacted mode",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.transacted-in-out",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.transaction-name",
+      "type": "java.lang.String",
+      "description": "The name of the transaction to use.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.transaction-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout value of the transaction (in seconds), if using transacted mode.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.activemq.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an Exchange and not a regular payload. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.trust-all-packages",
+      "type": "java.lang.Boolean",
+      "description": "Define if all Java packages are trusted or not (for Java object JMS message types). Notice its not recommended practice to send Java serialized objects over network. Setting this to true can expose security risks, so use this with care.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.use-message-id-as-correlation-id",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.use-pooled-connection",
+      "type": "java.lang.Boolean",
+      "description": "Enables or disables whether a PooledConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is true.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.activemq.use-single-connection",
+      "type": "java.lang.Boolean",
+      "description": "Enables or disables whether a Spring SingleConnectionFactory will be used so that when messages are sent to ActiveMQ from outside of a message consuming thread, pooling will be used rather than the default with the Spring JmsTemplate which will create a new connection, session, producer for each message then close them all down again. The default value is false and a pooled connection is used by default.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.activemq.username",
+      "type": "java.lang.String",
+      "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.activemq.wait-for-provision-correlation-to-be-updated-counter",
+      "type": "java.lang.Integer",
+      "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.activemq.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+      "type": "java.lang.Long",
+      "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type.",
+      "sourceType": "org.apache.camel.component.activemq.springboot.ActiveMQComponentConfiguration",
+      "defaultValue": 100
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ahc-ws.json b/docs/components/modules/spring-boot/examples/json/ahc-ws.json
new file mode 100644
index 0000000..97d36e2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ahc-ws.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ahc-ws",
+      "type": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ahc-ws.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc-ws.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ahc-ws.binding",
+      "type": "org.apache.camel.component.ahc.AhcBinding",
+      "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc-ws.client",
+      "type": "org.asynchttpclient.AsyncHttpClient",
+      "description": "To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.client-config",
+      "type": "org.asynchttpclient.AsyncHttpClientConfig",
+      "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ahc-ws.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ahc-ws component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc-ws.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc-ws.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.ahc.ws.springboot.WsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ahc.json b/docs/components/modules/spring-boot/examples/json/ahc.json
new file mode 100644
index 0000000..dac99f4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ahc.json
@@ -0,0 +1,87 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ahc",
+      "type": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ahc.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ahc.binding",
+      "type": "org.apache.camel.component.ahc.AhcBinding",
+      "description": "To use a custom AhcBinding which allows to control how to bind between AHC and Camel. The option is a org.apache.camel.component.ahc.AhcBinding type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.client",
+      "type": "org.asynchttpclient.AsyncHttpClient",
+      "description": "To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.client-config",
+      "type": "org.asynchttpclient.AsyncHttpClientConfig",
+      "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ahc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ahc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ahc.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL\/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ahc.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.ahc.springboot.AhcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/amqp.json b/docs/components/modules/spring-boot/examples/json/amqp.json
new file mode 100644
index 0000000..fbcf11a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/amqp.json
@@ -0,0 +1,686 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.amqp",
+      "type": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.amqp.accept-messages-while-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on the JMS broker. To avoid this its recommended to enable this option.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.acknowledgement-mode-name",
+      "type": "java.lang.String",
+      "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": "AUTO_ACKNOWLEDGE"
+    },
+    {
+      "name": "camel.component.amqp.allow-additional-headers",
+      "type": "java.lang.String",
+      "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.allow-auto-wired-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.allow-auto-wired-destination-resolver",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.allow-reply-manager-quick-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.always-copy-message",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set)",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.artemis-consumer-priority",
+      "type": "java.lang.Integer",
+      "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.artemis-streaming-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.async-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been enabled, then asyncConsumer=true does not run asynchronously, as transaction must be executed synchronously (Camel 3.0 may support async transactions).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.async-start-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.async-stop-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.cache-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": "CACHE_AUTO"
+    },
+    {
+      "name": "camel.component.amqp.client-id",
+      "type": "java.lang.String",
+      "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.configuration",
+      "type": "org.apache.camel.component.jms.JmsConfiguration",
+      "description": "To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.consumer-type",
+      "type": "org.apache.camel.component.jms.ConsumerType",
+      "description": "The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.correlation-property",
+      "type": "java.lang.String",
+      "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.amqp.default-task-executor-type",
+      "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+      "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsync for reply consumers. The use of ThreadPool is recommended to reduce thread trash in elastic configurations with dynamically increasing and decreasing concurrent consumers.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.delivery-delay",
+      "type": "java.lang.Long",
+      "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.delivery-mode",
+      "type": "java.lang.Integer",
+      "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether persistent delivery is used by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.destination-resolver",
+      "type": "org.springframework.jms.support.destination.DestinationResolver",
+      "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.disable-reply-to",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you want to route message from one system to another.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.disable-time-to-live",
+      "type": "java.lang.Boolean",
+      "description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire on the receiver system. See below in section About time to live for more details.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.durable-subscription-name",
+      "type": "java.lang.String",
+      "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.eager-loading-of-properties",
+      "type": "java.lang.Boolean",
+      "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.eager-poison-body",
+      "type": "java.lang.String",
+      "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": "Poison JMS message due to ${exception.message}"
+    },
+    {
+      "name": "camel.component.amqp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the amqp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.error-handler-log-stack-trace",
+      "type": "java.lang.Boolean",
+      "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.error-handler-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.exception-listener",
+      "type": "javax.jms.ExceptionListener",
+      "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.explicit-qos-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.expose-listener-session",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the listener session should be exposed when consuming messages.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.force-send-original-message",
+      "type": "java.lang.Boolean",
+      "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.format-date-headers-to-iso8601",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.idle-consumer-limit",
+      "type": "java.lang.Integer",
+      "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.idle-task-execution-limit",
+      "type": "java.lang.Integer",
+      "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.include-all-jmsx-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.include-amqp-annotations",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include AMQP annotations when mapping from AMQP to Camel Message. Setting this to true maps AMQP message annotations that contain a JMS_AMQP_MA_ prefix to message headers. Due to limitations in Apache Qpid JMS API, currently delivery annotations are ignored.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.include-sent-jms-message-id",
+      "type": "java.lang.Boolean",
+      "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.jms-key-format-strategy",
+      "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.jms-message-type",
+      "type": "org.apache.camel.component.jms.JmsMessageType",
+      "description": "Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.lazy-create-transaction-manager",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.map-jms-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.max-messages-per-task",
+      "type": "java.lang.Integer",
+      "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.message-converter",
+      "type": "org.springframework.jms.support.converter.MessageConverter",
+      "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.message-created-strategy",
+      "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.message-id-enabled",
+      "type": "java.lang.Boolean",
+      "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.message-listener-container-factory",
+      "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+      "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.message-timestamp-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.password",
+      "type": "java.lang.String",
+      "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.preserve-message-qos",
+      "type": "java.lang.Boolean",
+      "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by contrast, will only use options set on the endpoint, and not values from the message header.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.priority",
+      "type": "java.lang.Integer",
+      "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 4
+    },
+    {
+      "name": "camel.component.amqp.pub-sub-no-local",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to inhibit the delivery of messages published by its own connection.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.queue-browse-strategy",
+      "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+      "description": "To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.receive-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for receiving messages (in milliseconds). The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.amqp.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.amqp.reply-to",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w\/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE_NONE is not allowed, and you must use a higher value such as CACHE_CONSUMER or CACHE_SESSION.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.reply-to-delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use persistent delivery by default for replies.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.amqp.reply-to-destination-selector-name",
+      "type": "java.lang.String",
+      "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.amqp.reply-to-override",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.reply-to-same-destination-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.reply-to-type",
+      "type": "org.apache.camel.component.jms.ReplyToType",
+      "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running in a clustered environment, and the fact that Shared reply queues has lower performance than its alternatives Temporary and Exclusive.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.request-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.amqp.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.amqp.selector",
+      "type": "java.lang.String",
+      "description": "Sets the JMS selector to use",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.stream-message-type-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no more data.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.subscription-durable",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.subscription-name",
+      "type": "java.lang.String",
+      "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.subscription-shared",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscriptionDurable as well. Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well. Requires a JMS 2.0 compatible message broker.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.task-executor",
+      "type": "org.springframework.core.task.TaskExecutor",
+      "description": "Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.time-to-live",
+      "type": "java.lang.Long",
+      "description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.transacted",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use transacted mode",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.transacted-in-out",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.transaction-name",
+      "type": "java.lang.String",
+      "description": "The name of the transaction to use.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.transaction-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout value of the transaction (in seconds), if using transacted mode.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.amqp.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an Exchange and not a regular payload. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.use-message-id-as-correlation-id",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.amqp.username",
+      "type": "java.lang.String",
+      "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.amqp.wait-for-provision-correlation-to-be-updated-counter",
+      "type": "java.lang.Integer",
+      "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.amqp.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+      "type": "java.lang.Long",
+      "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type.",
+      "sourceType": "org.apache.camel.component.amqp.springboot.AMQPComponentConfiguration",
+      "defaultValue": 100
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/any23.json b/docs/components/modules/spring-boot/examples/json/any23.json
new file mode 100644
index 0000000..9c8cd56
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/any23.json
@@ -0,0 +1,53 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.any23",
+      "type": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.any23.base-u-r-i",
+      "type": "java.lang.String",
+      "description": "The URI to use as base for building RDF entities if only relative paths are provided.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.configuration",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "Configurations for Apache Any23 as key-value pairs in order to customize the extraction process. The list of supported parameters can be found here. If not provided, a default configuration is used.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.any23.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the any23 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.extractors",
+      "type": "java.util.List<java.lang.String>",
+      "description": "List of Any23 extractors to be used in the unmarshal operation. A list of the available extractors can be found here here. If not provided, all the available extractors are used.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.any23.output-format",
+      "type": "org.apache.camel.dataformat.any23.Any23OutputFormat",
+      "description": "What RDF syntax to unmarshal as, can be: NTRIPLES, TURTLE, NQUADS, RDFXML, JSONLD, RDFJSON, RDF4JMODEL. It is by default: RDF4JMODEL.",
+      "sourceType": "org.apache.camel.dataformat.any23.springboot.Any23DataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/arangodb.json b/docs/components/modules/spring-boot/examples/json/arangodb.json
new file mode 100644
index 0000000..f4e4b0b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/arangodb.json
@@ -0,0 +1,103 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.arangodb",
+      "type": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.arangodb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.arangodb.configuration",
+      "type": "org.apache.camel.component.arangodb.ArangoDbConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.arangodb.ArangoDbConfiguration type.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.arangodb.document-collection",
+      "type": "java.lang.String",
+      "description": "Collection name, when using ArangoDb as a Document Database. Set the documentCollection name when using the CRUD operation on the document database collections (SAVE_DOCUMENT , FIND_DOCUMENT_BY_KEY, UPDATE_DOCUMENT, DELETE_DOCUMENT).",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.edge-collection",
+      "type": "java.lang.String",
+      "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the edgeCollection name to perform CRUD operation on edges using these operations : SAVE_VERTEX, FIND_VERTEX_BY_KEY, UPDATE_VERTEX, DELETE_VERTEX. The graph attribute is mandatory.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the arangodb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.graph",
+      "type": "java.lang.String",
+      "description": "Graph name, when using ArangoDb as a Graph Database. Combine this attribute with one of the two attributes vertexCollection and edgeCollection.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.host",
+      "type": "java.lang.String",
+      "description": "ArangoDB host. If host and port are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.arangodb.operation",
+      "type": "org.apache.camel.component.arangodb.ArangoDbOperation",
+      "description": "Operations to perform on ArangoDb. For the operation AQL_QUERY, no need to specify a collection or graph.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.password",
+      "type": "java.lang.String",
+      "description": "ArangoDB password. If user and password are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.port",
+      "type": "java.lang.Integer",
+      "description": "ArangoDB exposed port. If host and port are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.user",
+      "type": "java.lang.String",
+      "description": "ArangoDB user. If user and password are default, this field is Optional.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.arangodb.vertex-collection",
+      "type": "java.lang.String",
+      "description": "Collection name of vertices, when using ArangoDb as a Graph Database. Set the vertexCollection name to perform CRUD operation on vertices using these operations : SAVE_EDGE, FIND_EDGE_BY_KEY, UPDATE_EDGE, DELETE_EDGE. The graph attribute is mandatory.",
+      "sourceType": "org.apache.camel.component.arangodb.springboot.ArangoDbComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/as2.json b/docs/components/modules/spring-boot/examples/json/as2.json
new file mode 100644
index 0000000..9f15fa7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/as2.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.as2",
+      "type": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.as2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.as2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.as2.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.as2.configuration",
+      "type": "org.apache.camel.component.as2.AS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.as2.AS2Configuration type.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.as2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.as2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the as2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.as2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.as2.springboot.AS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/asn1.json b/docs/components/modules/spring-boot/examples/json/asn1.json
new file mode 100644
index 0000000..dda23c4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/asn1.json
@@ -0,0 +1,42 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.asn1",
+      "type": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.asn1.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.asn1.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.asn1.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the asn1 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.asn1.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class to use when unmarshalling.",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.asn1.using-iterator",
+      "type": "java.lang.Boolean",
+      "description": "If the asn1 file has more then one entry, the setting this option to true, allows to work with the splitter EIP, to split the data using an iterator in a streaming mode.",
+      "sourceType": "org.apache.camel.dataformat.asn1.springboot.ASN1DataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/asterisk.json b/docs/components/modules/spring-boot/examples/json/asterisk.json
new file mode 100644
index 0000000..619735c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/asterisk.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.asterisk",
+      "type": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.asterisk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.asterisk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.asterisk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.asterisk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.asterisk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the asterisk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.asterisk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.asterisk.springboot.AsteriskComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/atlasmap.json b/docs/components/modules/spring-boot/examples/json/atlasmap.json
new file mode 100644
index 0000000..23d9276
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/atlasmap.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atlasmap",
+      "type": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atlasmap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atlasmap.atlas-context-factory",
+      "type": "io.atlasmap.api.AtlasContextFactory",
+      "description": "To use the AtlasContextFactory otherwise a new engine is created. The option is a io.atlasmap.api.AtlasContextFactory type.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atlasmap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atlasmap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atlasmap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atlasmap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atlasmap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atlasmap.properties-file",
+      "type": "java.lang.String",
+      "description": "The URI of the properties file which is used for AtlasContextFactory initialization.",
+      "sourceType": "org.apache.camel.component.atlasmap.springboot.AtlasMapComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/atmos.json b/docs/components/modules/spring-boot/examples/json/atmos.json
new file mode 100644
index 0000000..962ff5f6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/atmos.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atmos",
+      "type": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atmos.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atmos.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmos.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atmos.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atmos component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.full-token-id",
+      "type": "java.lang.String",
+      "description": "The token id to pass to the Atmos client",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmos.secret-key",
+      "type": "java.lang.String",
+      "description": "The secret key to pass to the Atmos client (should be base64 encoded)",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmos.ssl-validation",
+      "type": "java.lang.Boolean",
+      "description": "Whether the Atmos client should perform SSL validation",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmos.uri",
+      "type": "java.lang.String",
+      "description": "The URI of the server for the Atmos client to connect to",
+      "sourceType": "org.apache.camel.component.atmos.springboot.AtmosComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/atmosphere-websocket.json b/docs/components/modules/spring-boot/examples/json/atmosphere-websocket.json
new file mode 100644
index 0000000..744a897
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/atmosphere-websocket.json
@@ -0,0 +1,101 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atmosphere-websocket",
+      "type": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atmosphere-websocket.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.attachment-multipart-binding",
+      "type": "java.lang.Boolean",
+      "description": "Whether to automatic bind multipart\/form-data as attachments on the Camel Exchange. The options attachmentMultipartBinding=true and disableStreamCache=false cannot work together. Remove disableStreamCache to use AttachmentMultipartBinding. This is turn off by default as this may require servlet specific configuration to enable this when using Servlet's.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atmosphere-websocket component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.file-name-ext-whitelist",
+      "type": "java.lang.String",
+      "description": "Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.http-registry",
+      "type": "org.apache.camel.http.common.HttpRegistry",
+      "description": "To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.http.common.HttpRegistry type.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atmosphere-websocket.servlet-name",
+      "type": "java.lang.String",
+      "description": "Default name of servlet to use. The default name is CamelServlet.",
+      "sourceType": "org.apache.camel.component.atmosphere.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": "CamelServlet"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/atom.json b/docs/components/modules/spring-boot/examples/json/atom.json
new file mode 100644
index 0000000..5d7d267
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/atom.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.atom",
+      "type": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atom.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.atom.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atom.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atom.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atom.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atom component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atom.springboot.AtomComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/atomix.json b/docs/components/modules/spring-boot/examples/json/atomix.json
new file mode 100644
index 0000000..be49cda
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/atomix.json
@@ -0,0 +1,864 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.atomix",
+      "type": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map",
+      "type": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-messaging",
+      "type": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-multimap",
+      "type": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-queue",
+      "type": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-set",
+      "type": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.atomix-value",
+      "type": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.atomix.address",
+      "type": "java.lang.String",
+      "description": "The address of the node - node only.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The Atomix configuration uri.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the atomix cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.atomix.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not (node only).",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.id",
+      "type": "java.lang.String",
+      "description": "The cluster id.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.mode",
+      "type": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration$Mode",
+      "description": "Sets the cluster mode.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.nodes",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "The address of the nodes composing the cluster.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.storage-level",
+      "type": "io.atomix.copycat.server.storage.StorageLevel",
+      "description": "The storage mode - node only.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.atomix.storage-path",
+      "type": "java.lang.String",
+      "description": "The storage directory - node only.",
+      "sourceType": "org.apache.camel.component.atomix.cluster.springboot.AtomixClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-map.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-map.configuration",
+      "type": "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.map.AtomixMapConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-map.default-action",
+      "type": "org.apache.camel.component.atomix.client.map.AtomixMap$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-map component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-map.key",
+      "type": "java.lang.Object",
+      "description": "The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-map.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-map.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-map.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.map.springboot.AtomixMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-messaging.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-messaging.broadcast-type",
+      "type": "org.apache.camel.component.atomix.client.messaging.AtomixMessaging$BroadcastType",
+      "description": "The broadcast type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.channel-name",
+      "type": "java.lang.String",
+      "description": "The messaging channel name",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.configuration",
+      "type": "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-messaging.default-action",
+      "type": "org.apache.camel.component.atomix.client.messaging.AtomixMessaging$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-messaging component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-messaging.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-messaging.member-name",
+      "type": "java.lang.String",
+      "description": "The Atomix Group member name",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-messaging.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.messaging.springboot.AtomixMessagingComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-multimap.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-multimap.configuration",
+      "type": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-multimap.default-action",
+      "type": "org.apache.camel.component.atomix.client.multimap.AtomixMultiMap$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-multimap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-multimap.key",
+      "type": "java.lang.Object",
+      "description": "The key to use if none is set in the header or to listen for events for a specific key. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-multimap.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-multimap.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-multimap.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.multimap.springboot.AtomixMultiMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-queue.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-queue.configuration",
+      "type": "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-queue.default-action",
+      "type": "org.apache.camel.component.atomix.client.queue.AtomixQueue$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-queue.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-queue.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.queue.springboot.AtomixQueueComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-set.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-set.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-set.configuration",
+      "type": "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.set.AtomixSetConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-set.default-action",
+      "type": "org.apache.camel.component.atomix.client.set.AtomixSet$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-set component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-set.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-set.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-set.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-set.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.set.springboot.AtomixSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.atomix",
+      "type": "io.atomix.Atomix",
+      "description": "The Atomix instance to use. The option is a io.atomix.Atomix type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.atomix-value.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-value.configuration",
+      "type": "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration",
+      "description": "The shared component configuration. The option is a org.apache.camel.component.atomix.client.value.AtomixValueConfiguration type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.configuration-uri",
+      "type": "java.lang.String",
+      "description": "The path to the AtomixClient configuration",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.atomix-value.default-action",
+      "type": "org.apache.camel.component.atomix.client.value.AtomixValue$Action",
+      "description": "The default action.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.default-resource-config",
+      "type": "java.util.Properties",
+      "description": "The cluster wide default resource configuration. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.default-resource-options",
+      "type": "java.util.Properties",
+      "description": "The local default resource options. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the atomix-value component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.ephemeral",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the local member should join groups as PersistentMember or not. If set to ephemeral the local member will receive an auto generated ID thus the local one is ignored.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-value.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.atomix-value.nodes",
+      "type": "java.util.List<io.atomix.catalyst.transport.Address>",
+      "description": "The nodes the AtomixClient should connect to",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.read-consistency",
+      "type": "io.atomix.resource.ReadConsistency",
+      "description": "The read consistency level.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.resource-configs",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Cluster wide resources configuration.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.resource-options",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Local resources configurations",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.result-header",
+      "type": "java.lang.String",
+      "description": "The header that wil carry the result.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.atomix-value.transport-class-name",
+      "type": "java.lang.String",
+      "description": "The class name (fqn) of the Atomix transport",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration",
+      "defaultValue": "io.atomix.catalyst.transport.netty.NettyTransport"
+    },
+    {
+      "name": "camel.component.atomix-value.ttl",
+      "type": "java.lang.Long",
+      "description": "The resource ttl. The option is a long type.",
+      "sourceType": "org.apache.camel.component.atomix.client.value.springboot.AtomixValueComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/avro-rpc.json b/docs/components/modules/spring-boot/examples/json/avro-rpc.json
new file mode 100644
index 0000000..e4207c4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/avro-rpc.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.avro",
+      "type": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.avro.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.avro.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.configuration",
+      "type": "org.apache.camel.component.avro.AvroConfiguration",
+      "description": "To use a shared AvroConfiguration to configure options once. The option is a org.apache.camel.component.avro.AvroConfiguration type.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.avro.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the avro component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.protocol",
+      "type": "org.apache.avro.Protocol",
+      "description": "Avro protocol to use. The option is a org.apache.avro.Protocol type.",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.protocol-class-name",
+      "type": "java.lang.String",
+      "description": "Avro protocol to use defined by the FQN class name",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.protocol-location",
+      "type": "java.lang.String",
+      "description": "Avro protocol location",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    },
+    {
+      "name": "camel.component.avro.reflection-protocol",
+      "type": "java.lang.Boolean",
+      "description": "If protocol object provided is reflection protocol. Should be used only with protocol parameter because for protocolClassName protocol type will be auto detected",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.single-parameter",
+      "type": "java.lang.Boolean",
+      "description": "If true, consumer parameter won't be wrapped into array. Will fail if protocol specifies more then 1 parameter for the message",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.avro.uri-authority",
+      "type": "java.lang.String",
+      "description": "Authority to use (username and password)",
+      "sourceType": "org.apache.camel.component.avro.springboot.AvroComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/avro.json b/docs/components/modules/spring-boot/examples/json/avro.json
new file mode 100644
index 0000000..856d9e5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/avro.json
@@ -0,0 +1,35 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.avro",
+      "type": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.avro.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.avro.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the avro data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro.instance-class-name",
+      "type": "java.lang.String",
+      "description": "Class name to use for marshal and unmarshalling",
+      "sourceType": "org.apache.camel.dataformat.avro.springboot.AvroDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws-secrets-manager.json b/docs/components/modules/spring-boot/examples/json/aws-secrets-manager.json
new file mode 100644
index 0000000..e3fcebe
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws-secrets-manager.json
@@ -0,0 +1,138 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws-secrets-manager",
+      "type": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws-secrets-manager.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.binary-payload",
+      "type": "java.lang.Boolean",
+      "description": "Set if the secret is binary or not",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.configuration",
+      "type": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration type.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws-secrets-manager component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.operation",
+      "type": "org.apache.camel.component.aws.secretsmanager.SecretsManagerOperations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Secrets Manager client",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Secrets Manager client",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Secrets Manager client",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.region",
+      "type": "java.lang.String",
+      "description": "The region in which Secrets Manager client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.secrets-manager-client",
+      "type": "software.amazon.awssdk.services.secretsmanager.SecretsManagerClient",
+      "description": "To use a existing configured AWS Secrets Manager as client. The option is a software.amazon.awssdk.services.secretsmanager.SecretsManagerClient type.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws-secrets-manager.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws.secretsmanager.springboot.SecretsManagerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws-xray.json b/docs/components/modules/spring-boot/examples/json/aws-xray.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws-xray.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-athena.json b/docs/components/modules/spring-boot/examples/json/aws2-athena.json
new file mode 100644
index 0000000..2c02fb4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-athena.json
@@ -0,0 +1,219 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-athena",
+      "type": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-athena.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.amazon-athena-client",
+      "type": "software.amazon.awssdk.services.athena.AthenaClient",
+      "description": "The AmazonAthena instance to use as the client. The option is a software.amazon.awssdk.services.athena.AthenaClient type.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-athena.client-request-token",
+      "type": "java.lang.String",
+      "description": "A unique string to ensure issues queries are idempotent. It is unlikely you will need to set this.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.configuration",
+      "type": "org.apache.camel.component.aws2.athena.Athena2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.athena.Athena2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-athena.database",
+      "type": "java.lang.String",
+      "description": "The Athena database to use.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.delay",
+      "type": "java.lang.Long",
+      "description": "Milliseconds before the next poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 2000
+    },
+    {
+      "name": "camel.component.aws2-athena.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-athena component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.encryption-option",
+      "type": "software.amazon.awssdk.services.athena.model.EncryptionOption",
+      "description": "The encryption type to use when storing query results in S3. One of SSE_S3, SSE_KMS, or CSE_KMS.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.include-trace",
+      "type": "java.lang.Boolean",
+      "description": "Include useful trace information at the beginning of queries as an SQL comment (prefixed with --).",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-athena.initial-delay",
+      "type": "java.lang.Long",
+      "description": "Milliseconds before the first poll for query execution status. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.aws2-athena.kms-key",
+      "type": "java.lang.String",
+      "description": "For SSE-KMS and CSE-KMS, this is the KMS key ARN or ID.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-athena.max-attempts",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of times to attempt a query. Set to 1 to disable retries. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.aws2-athena.max-results",
+      "type": "java.lang.Integer",
+      "description": "Max number of results to return for the given operation (if supported by the Athena API endpoint). If not set, will use the Athena API default for the given operation.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.next-token",
+      "type": "java.lang.String",
+      "description": "Pagination token to use in the case where the response from the previous request was truncated.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.operation",
+      "type": "org.apache.camel.component.aws2.athena.Athena2Operations",
+      "description": "The Athena API function to call.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.output-location",
+      "type": "java.lang.String",
+      "description": "The location in Amazon S3 where query results are stored, such as s3:\/\/path\/to\/query\/bucket\/. Ensure this value ends with a forward slash ('\/').",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.output-type",
+      "type": "org.apache.camel.component.aws2.athena.Athena2OutputType",
+      "description": "How query results should be returned. One of StreamList (default - return a GetQueryResultsIterable that can page through all results), SelectList (returns at most 1,000 rows at a time, plus a NextToken value as a header than can be used for manual pagination of results), S3Pointer (return an S3 path pointing to the results).",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Athena client.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Athena client.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Athena client.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.query-execution-id",
+      "type": "java.lang.String",
+      "description": "The unique ID identifying the query execution.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.query-string",
+      "type": "java.lang.String",
+      "description": "The SQL query to run. Except for simple queries, prefer setting this as the body of the Exchange or as a header using Athena2Constants.QUERY_STRING to avoid having to deal with URL encoding issues.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.region",
+      "type": "java.lang.String",
+      "description": "The region in which Athena client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1). You'll need to use the name Region.EU_WEST_1.id().",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.reset-wait-timeout-on-retry",
+      "type": "java.lang.Boolean",
+      "description": "Reset the waitTimeout countdown in the event of a query retry. If set to true, potential max time spent waiting for queries is equal to waitTimeout x maxAttempts. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-athena.retry",
+      "type": "java.lang.String",
+      "description": "Optional comma separated list of error types to retry the query for. Use 'retryable' to retry all retryable failure conditions (e.g. generic errors and resources exhausted), 'generic' to retry 'GENERIC_INTERNAL_ERROR' failures, 'exhausted' to retry queries that have exhausted resource limits, 'always' to always retry regardless of failure condition, or 'never' or null to never retry (default). See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": "never"
+    },
+    {
+      "name": "camel.component.aws2-athena.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-athena.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Athena client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-athena.wait-timeout",
+      "type": "java.lang.Long",
+      "description": "Optional max wait time in millis to wait for a successful query completion. See the section 'Waiting for Query Completion and Retrying Failed Queries' to learn more.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.aws2-athena.work-group",
+      "type": "java.lang.String",
+      "description": "The workgroup to use for running the query.",
+      "sourceType": "org.apache.camel.component.aws2.athena.springboot.Athena2ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-cw.json b/docs/components/modules/spring-boot/examples/json/aws2-cw.json
new file mode 100644
index 0000000..b0760f6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-cw.json
@@ -0,0 +1,142 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-cw",
+      "type": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-cw.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.amazon-cw-client",
+      "type": "software.amazon.awssdk.services.cloudwatch.CloudWatchClient",
+      "description": "To use the AmazonCloudWatch as the client. The option is a software.amazon.awssdk.services.cloudwatch.CloudWatchClient type.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-cw.configuration",
+      "type": "org.apache.camel.component.aws2.cw.Cw2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.cw.Cw2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-cw.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-cw component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.name",
+      "type": "java.lang.String",
+      "description": "The metric name",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the CW client",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the CW client",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the CW client",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.region",
+      "type": "java.lang.String",
+      "description": "The region in which CW client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.timestamp",
+      "type": "java.time.Instant",
+      "description": "The metric timestamp. The option is a java.time.Instant type.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.unit",
+      "type": "java.lang.String",
+      "description": "The metric unit",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-cw.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-cw.value",
+      "type": "java.lang.Double",
+      "description": "The metric value",
+      "sourceType": "org.apache.camel.component.aws2.cw.springboot.Cw2ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-ddb.json b/docs/components/modules/spring-boot/examples/json/aws2-ddb.json
new file mode 100644
index 0000000..748ed15
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-ddb.json
@@ -0,0 +1,284 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ddb",
+      "type": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream",
+      "type": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ddb.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.amazon-d-d-b-client",
+      "type": "software.amazon.awssdk.services.dynamodb.DynamoDbClient",
+      "description": "To use the AmazonDynamoDB as the client. The option is a software.amazon.awssdk.services.dynamodb.DynamoDbClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ddb.configuration",
+      "type": "org.apache.camel.component.aws2.ddb.Ddb2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.ddb.Ddb2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.consistent-read",
+      "type": "java.lang.Boolean",
+      "description": "Determines whether or not strong consistency should be enforced when data is read.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ddb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ddb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.key-attribute-name",
+      "type": "java.lang.String",
+      "description": "Attribute name when creating table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.key-attribute-type",
+      "type": "java.lang.String",
+      "description": "Attribute type when creating table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.key-scalar-type",
+      "type": "java.lang.String",
+      "description": "The key scalar type, it can be S (String), N (Number) and B (Bytes)",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.operation",
+      "type": "org.apache.camel.component.aws2.ddb.Ddb2Operations",
+      "description": "What operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the DDB client",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The region in which DynamoDB client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the DDB client",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.read-capacity",
+      "type": "java.lang.Long",
+      "description": "The provisioned throughput to reserve for reading resources from your table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.region",
+      "type": "java.lang.String",
+      "description": "The region in which DDB client needs to work",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddb.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddb.write-capacity",
+      "type": "java.lang.Long",
+      "description": "The provisioned throughput to reserved for writing resources to your table",
+      "sourceType": "org.apache.camel.component.aws2.ddb.springboot.Ddb2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.amazon-dynamo-db-streams-client",
+      "type": "software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient",
+      "description": "Amazon DynamoDB client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.configuration",
+      "type": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ddbstream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.max-results-per-request",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of records that will be fetched in each poll",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the DDBStreams client",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the DDBStreams client",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the DDBStreams client",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.region",
+      "type": "java.lang.String",
+      "description": "The region in which DDBStreams client needs to work",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.stream-iterator-type",
+      "type": "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration$StreamIteratorType",
+      "description": "Defines where in the DynamoDB stream to start getting records. Note that using FROM_START can cause a significant delay before the stream has caught up to real-time.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ddbstream.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the DynamoDB Streams client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ddbstream.springboot.Ddb2StreamComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-ec2.json b/docs/components/modules/spring-boot/examples/json/aws2-ec2.json
new file mode 100644
index 0000000..7890e32
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-ec2.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ec2",
+      "type": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ec2.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.amazon-ec2-client",
+      "type": "software.amazon.awssdk.services.ec2.Ec2Client",
+      "description": "To use a existing configured AmazonEC2Client as client. The option is a software.amazon.awssdk.services.ec2.Ec2Client type.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ec2.configuration",
+      "type": "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.ec2.AWS2EC2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ec2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ec2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.operation",
+      "type": "org.apache.camel.component.aws2.ec2.AWS2EC2Operations",
+      "description": "The operation to perform. It can be createAndRunInstances, startInstances, stopInstances, terminateInstances, describeInstances, describeInstancesStatus, rebootInstances, monitorInstances, unmonitorInstances, createTags or deleteTags",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the EC2 client",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the EC2 client",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the EC2 client",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.region",
+      "type": "java.lang.String",
+      "description": "The region in which EC2 client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ec2.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ec2.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the EC2 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ec2.springboot.AWS2EC2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-ecs.json b/docs/components/modules/spring-boot/examples/json/aws2-ecs.json
new file mode 100644
index 0000000..920e31c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-ecs.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ecs",
+      "type": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ecs.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ecs.configuration",
+      "type": "org.apache.camel.component.aws2.ecs.ECS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.ecs.ECS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ecs.ecs-client",
+      "type": "software.amazon.awssdk.services.ecs.EcsClient",
+      "description": "To use a existing configured AWS ECS as client. The option is a software.amazon.awssdk.services.ecs.EcsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ecs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.operation",
+      "type": "org.apache.camel.component.aws2.ecs.ECS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the ECS client",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the ECS client",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the ECS client",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.region",
+      "type": "java.lang.String",
+      "description": "The region in which ECS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ecs.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ecs.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the ECS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ecs.springboot.ECS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-eks.json b/docs/components/modules/spring-boot/examples/json/aws2-eks.json
new file mode 100644
index 0000000..a744201
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-eks.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-eks",
+      "type": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-eks.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-eks.configuration",
+      "type": "org.apache.camel.component.aws2.eks.EKS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.eks.EKS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-eks.eks-client",
+      "type": "software.amazon.awssdk.services.eks.EksClient",
+      "description": "To use a existing configured AWS EKS as client. The option is a software.amazon.awssdk.services.eks.EksClient type.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-eks component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.operation",
+      "type": "org.apache.camel.component.aws2.eks.EKS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the EKS client",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the EKS client",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the EKS client",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.region",
+      "type": "java.lang.String",
+      "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eks.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eks.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the EKS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.eks.springboot.EKS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-eventbridge.json b/docs/components/modules/spring-boot/examples/json/aws2-eventbridge.json
new file mode 100644
index 0000000..ac9f1e5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-eventbridge.json
@@ -0,0 +1,137 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-eventbridge",
+      "type": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-eventbridge.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.configuration",
+      "type": "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration type.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-eventbridge component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.event-pattern-file",
+      "type": "java.lang.String",
+      "description": "EventPattern File",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.eventbridge-client",
+      "type": "software.amazon.awssdk.services.eventbridge.EventBridgeClient",
+      "description": "To use a existing configured AWS Eventbridge as client. The option is a software.amazon.awssdk.services.eventbridge.EventBridgeClient type.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.operation",
+      "type": "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Eventbridge client",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Eventbridge client",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Eventbridge client",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.region",
+      "type": "java.lang.String",
+      "description": "The region in which Eventbridge client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-eventbridge.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Eventbridge client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.eventbridge.springboot.EventbridgeComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-iam.json b/docs/components/modules/spring-boot/examples/json/aws2-iam.json
new file mode 100644
index 0000000..df72eae
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-iam.json
@@ -0,0 +1,132 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-iam",
+      "type": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-iam.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-iam.configuration",
+      "type": "org.apache.camel.component.aws2.iam.IAM2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.iam.IAM2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-iam.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-iam component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.iam-client",
+      "type": "software.amazon.awssdk.services.iam.IamClient",
+      "description": "To use a existing configured AWS IAM as client. The option is a software.amazon.awssdk.services.iam.IamClient type.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.operation",
+      "type": "org.apache.camel.component.aws2.iam.IAM2Operations",
+      "description": "The operation to perform. You can configure a default operation on the component level, or the operation as part of the endpoint, or via a message header with the key CamelAwsIAMOperation.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the IAM client",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the IAM client",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the IAM client",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.region",
+      "type": "java.lang.String",
+      "description": "The region in which IAM client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": "aws-global"
+    },
+    {
+      "name": "camel.component.aws2-iam.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-iam.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-iam.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the IAM client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.iam.springboot.IAM2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-kinesis.json b/docs/components/modules/spring-boot/examples/json/aws2-kinesis.json
new file mode 100644
index 0000000..ee68f55
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-kinesis.json
@@ -0,0 +1,287 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-kinesis",
+      "type": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose",
+      "type": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-kinesis-firehose.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.amazon-kinesis-firehose-client",
+      "type": "software.amazon.awssdk.services.firehose.FirehoseClient",
+      "description": "Amazon Kinesis Firehose client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.firehose.FirehoseClient type.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.cbor-enabled",
+      "type": "java.lang.Boolean",
+      "description": "This option will set the CBOR_ENABLED property during the execution",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.configuration",
+      "type": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-kinesis-firehose component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.operation",
+      "type": "org.apache.camel.component.aws2.firehose.KinesisFirehose2Operations",
+      "description": "The operation to do in case the user don't want to send only a record",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Kinesis Firehose client",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Kinesis Firehose client",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Kinesis Firehose client",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.region",
+      "type": "java.lang.String",
+      "description": "The region in which Kinesis Firehose client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis-firehose.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Kinesis Firehose client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.firehose.springboot.KinesisFirehose2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.amazon-kinesis-client",
+      "type": "software.amazon.awssdk.services.kinesis.KinesisClient",
+      "description": "Amazon Kinesis client to use for all requests for this endpoint. The option is a software.amazon.awssdk.services.kinesis.KinesisClient type.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.cbor-enabled",
+      "type": "java.lang.Boolean",
+      "description": "This option will set the CBOR_ENABLED property during the execution",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kinesis.configuration",
+      "type": "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.kinesis.Kinesis2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-kinesis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.iterator-type",
+      "type": "software.amazon.awssdk.services.kinesis.model.ShardIteratorType",
+      "description": "Defines where in the Kinesis stream to start getting records",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.max-results-per-request",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of records that will be fetched in each poll",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.aws2-kinesis.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Kinesis client",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Kinesis client",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Kinesis client",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.region",
+      "type": "java.lang.String",
+      "description": "The region in which Kinesis Firehose client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.sequence-number",
+      "type": "java.lang.String",
+      "description": "The sequence number to start polling from. Required if iteratorType is set to AFTER_SEQUENCE_NUMBER or AT_SEQUENCE_NUMBER",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.shard-closed",
+      "type": "org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum",
+      "description": "Define what will be the behavior in case of shard closed. Possible value are ignore, silent and fail. In case of ignore a message will be logged and the consumer will restart from the beginning,in case of silent there will be no logging and the consumer will start from the beginning,in case of fail a ReachedClosedStateException will be raised",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.shard-id",
+      "type": "java.lang.String",
+      "description": "Defines which shardId in the Kinesis stream to get records from",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kinesis.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kinesis.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Kinesis client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.kinesis.springboot.Kinesis2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-kms.json b/docs/components/modules/spring-boot/examples/json/aws2-kms.json
new file mode 100644
index 0000000..e44364c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-kms.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-kms",
+      "type": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-kms.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-kms.configuration",
+      "type": "org.apache.camel.component.aws2.kms.KMS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.kms.KMS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-kms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-kms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.kms-client",
+      "type": "software.amazon.awssdk.services.kms.KmsClient",
+      "description": "To use a existing configured AWS KMS as client. The option is a software.amazon.awssdk.services.kms.KmsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.operation",
+      "type": "org.apache.camel.component.aws2.kms.KMS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the KMS client",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the KMS client",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the KMS client",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.region",
+      "type": "java.lang.String",
+      "description": "The region in which EKS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-kms.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-kms.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the KMS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.kms.springboot.KMS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-lambda.json b/docs/components/modules/spring-boot/examples/json/aws2-lambda.json
new file mode 100644
index 0000000..f9fa409
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-lambda.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-lambda",
+      "type": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-lambda.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-lambda.aws-lambda-client",
+      "type": "software.amazon.awssdk.services.lambda.LambdaClient",
+      "description": "To use a existing configured AwsLambdaClient as client. The option is a software.amazon.awssdk.services.lambda.LambdaClient type.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.configuration",
+      "type": "org.apache.camel.component.aws2.lambda.Lambda2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.lambda.Lambda2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-lambda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-lambda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.operation",
+      "type": "org.apache.camel.component.aws2.lambda.Lambda2Operations",
+      "description": "The operation to perform. It can be listFunctions, getFunction, createFunction, deleteFunction or invokeFunction",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Lambda client",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Lambda client",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Lambda client",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.region",
+      "type": "java.lang.String",
+      "description": "The region in which Lambda client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-lambda.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-lambda.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Lambda client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.lambda.springboot.Lambda2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-mq.json b/docs/components/modules/spring-boot/examples/json/aws2-mq.json
new file mode 100644
index 0000000..630657c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-mq.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-mq",
+      "type": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-mq.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.amazon-mq-client",
+      "type": "software.amazon.awssdk.services.mq.MqClient",
+      "description": "To use a existing configured AmazonMQClient as client. The option is a software.amazon.awssdk.services.mq.MqClient type.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-mq.configuration",
+      "type": "org.apache.camel.component.aws2.mq.MQ2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.mq.MQ2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-mq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-mq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.operation",
+      "type": "org.apache.camel.component.aws2.mq.MQ2Operations",
+      "description": "The operation to perform. It can be listBrokers,createBroker,deleteBroker",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the MQ client",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the MQ client",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the MQ client",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.region",
+      "type": "java.lang.String",
+      "description": "The region in which MQ client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-mq.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-mq.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the MQ client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.mq.springboot.MQ2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-msk.json b/docs/components/modules/spring-boot/examples/json/aws2-msk.json
new file mode 100644
index 0000000..5f89a4d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-msk.json
@@ -0,0 +1,131 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-msk",
+      "type": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-msk.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-msk.configuration",
+      "type": "org.apache.camel.component.aws2.msk.MSK2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.msk.MSK2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-msk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-msk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.msk-client",
+      "type": "software.amazon.awssdk.services.kafka.KafkaClient",
+      "description": "To use a existing configured AWS MSK as client. The option is a software.amazon.awssdk.services.kafka.KafkaClient type.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.operation",
+      "type": "org.apache.camel.component.aws2.msk.MSK2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the MSK client",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the MSK client",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the MSK client",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.region",
+      "type": "java.lang.String",
+      "description": "The region in which MSK client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-msk.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-msk.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Kafka client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.msk.springboot.MSK2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-s3.json b/docs/components/modules/spring-boot/examples/json/aws2-s3.json
new file mode 100644
index 0000000..020d3a2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-s3.json
@@ -0,0 +1,351 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-s3",
+      "type": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-s3.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.amazon-s3-client",
+      "type": "software.amazon.awssdk.services.s3.S3Client",
+      "description": "Reference to a com.amazonaws.services.s3.AmazonS3 in the registry. The option is a software.amazon.awssdk.services.s3.S3Client type.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.amazon-s3-presigner",
+      "type": "software.amazon.awssdk.services.s3.presigner.S3Presigner",
+      "description": "An S3 Presigner for Request, used mainly in createDownloadLink operation. The option is a software.amazon.awssdk.services.s3.presigner.S3Presigner type.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.auto-create-bucket",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the S3 bucket bucketName. This will apply also in case of moveAfterRead option enabled and it will create the destinationBucket if it doesn't exist already.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.autoclose-body",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true and includeBody is false, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to false and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.aws-k-m-s-key-id",
+      "type": "java.lang.String",
+      "description": "Define the id of KMS key to use in case KMS is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.batch-message-number",
+      "type": "java.lang.Integer",
+      "description": "The number of messages composing a batch in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.aws2-s3.batch-size",
+      "type": "java.lang.Integer",
+      "description": "The batch size (in bytes) in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": 1000000
+    },
+    {
+      "name": "camel.component.aws2-s3.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.configuration",
+      "type": "org.apache.camel.component.aws2.s3.AWS2S3Configuration",
+      "description": "The component configuration. The option is a org.apache.camel.component.aws2.s3.AWS2S3Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customer-algorithm",
+      "type": "java.lang.String",
+      "description": "Define the customer algorithm to use in case CustomerKey is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customer-key-id",
+      "type": "java.lang.String",
+      "description": "Define the id of Customer key to use in case CustomerKey is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customer-key-m-d5",
+      "type": "java.lang.String",
+      "description": "Define the MD5 of Customer key to use in case CustomerKey is enabled",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-s3.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete objects from S3 after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the AWS2S3Constants#BUCKET_NAME and AWS2S3Constants#KEY headers, or only the AWS2S3Constants#KEY header.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.delete-after-write",
+      "type": "java.lang.Boolean",
+      "description": "Delete file object after the S3 file has been uploaded",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.destination-bucket",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket where an object must be moved when moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.destination-bucket-prefix",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket prefix to use when an object must be moved and moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.destination-bucket-suffix",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket suffix to use when an object must be moved and moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.done-file-name",
+      "type": "java.lang.String",
+      "description": "If provided, Camel will only consume files if a done file exists.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-s3 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.file-name",
+      "type": "java.lang.String",
+      "description": "To get the object from the bucket with the given file name",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.ignore-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the S3 Object Body will be ignored completely, if it is set to false the S3 Object will be put in the body. Setting this to true, will override any behavior defined by includeBody option.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.include-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the S3Object exchange will be consumed and put into the body and closed. If false the S3Object stream will be put raw into the body and the headers will be set with the S3 object metadata. This option is strongly related to autocloseBody option. In case of setting includeBody to true because the S3Object stream will be consumed then it will also be closed, while in case of includeBody false then it will be up to the caller to close the S3Object stream. However setting autocloseBody to true when includeBody is false it will schedule to close the S3Object stream automatically on exchange completion.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.include-folders",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the folders\/directories will be consumed. If it is false, they will be ignored, and Exchanges will not be created for those",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-s3.key-name",
+      "type": "java.lang.String",
+      "description": "Setting the key name for an element in the bucket through endpoint parameter",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.move-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.multi-part-upload",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.naming-strategy",
+      "type": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum",
+      "description": "The naming strategy to use in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.operation",
+      "type": "org.apache.camel.component.aws2.s3.AWS2S3Operations",
+      "description": "The operation to do in case the user don't want to do only an upload",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.part-size",
+      "type": "java.lang.Long",
+      "description": "Setup the partSize which is used in multi part upload, the default size is 25M.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": 26214400
+    },
+    {
+      "name": "camel.component.aws2-s3.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this queue to set in the com.amazonaws.services.s3.AmazonS3#setBucketPolicy() method.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.prefix",
+      "type": "java.lang.String",
+      "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "Specify a proxy port to be used inside the client definition.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the S3 client",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.region",
+      "type": "java.lang.String",
+      "description": "The region in which S3 client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.restarting-policy",
+      "type": "org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum",
+      "description": "The restarting policy to use in streaming upload mode",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.storage-class",
+      "type": "java.lang.String",
+      "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.streaming-upload-mode",
+      "type": "java.lang.Boolean",
+      "description": "When stream mode is true the upload to bucket will be done in streaming",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.streaming-upload-timeout",
+      "type": "java.lang.Long",
+      "description": "While streaming upload mode is true, this option set the timeout to complete upload",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-s3.use-aws-k-m-s",
+      "type": "java.lang.Boolean",
+      "description": "Define if KMS must be used or not",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.use-customer-key",
+      "type": "java.lang.Boolean",
+      "description": "Define if Customer Key must be used or not",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-s3.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the S3 client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.s3.springboot.AWS2S3ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-ses.json b/docs/components/modules/spring-boot/examples/json/aws2-ses.json
new file mode 100644
index 0000000..c752261
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-ses.json
@@ -0,0 +1,142 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-ses",
+      "type": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-ses.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.amazon-s-e-s-client",
+      "type": "software.amazon.awssdk.services.ses.SesClient",
+      "description": "To use the AmazonSimpleEmailService as the client. The option is a software.amazon.awssdk.services.ses.SesClient type.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-ses.configuration",
+      "type": "org.apache.camel.component.aws2.ses.Ses2Configuration",
+      "description": "component configuration. The option is a org.apache.camel.component.aws2.ses.Ses2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-ses.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-ses component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ses.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ses.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SES client",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the SES client",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the SES client",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.region",
+      "type": "java.lang.String",
+      "description": "The region in which SES client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.reply-to-addresses",
+      "type": "java.util.List<java.lang.String>",
+      "description": "List of reply-to email address(es) for the message, override it using 'CamelAwsSesReplyToAddresses' header.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.return-path",
+      "type": "java.lang.String",
+      "description": "The email address to which bounce notifications are to be forwarded, override it using 'CamelAwsSesReturnPath' header.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.subject",
+      "type": "java.lang.String",
+      "description": "The subject which is used if the message header 'CamelAwsSesSubject' is not present.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.to",
+      "type": "java.util.List<java.lang.String>",
+      "description": "List of destination email address. Can be overriden with 'CamelAwsSesTo' header.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-ses.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-ses.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Ses client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.ses.springboot.Ses2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-sns.json b/docs/components/modules/spring-boot/examples/json/aws2-sns.json
new file mode 100644
index 0000000..b6bca04
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-sns.json
@@ -0,0 +1,182 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-sns",
+      "type": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-sns.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.amazon-s-n-s-client",
+      "type": "software.amazon.awssdk.services.sns.SnsClient",
+      "description": "To use the AmazonSNS as the client. The option is a software.amazon.awssdk.services.sns.SnsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.auto-create-topic",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the topic",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sns.configuration",
+      "type": "org.apache.camel.component.aws2.sns.Sns2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.sns.Sns2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-sns.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-sns component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.kms-master-key-id",
+      "type": "java.lang.String",
+      "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SNS or a custom CMK.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.message-deduplication-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO Topic. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": "useExchangeId"
+    },
+    {
+      "name": "camel.component.aws2-sns.message-group-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO Topic. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.message-structure",
+      "type": "java.lang.String",
+      "description": "The message structure to use such as json",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this topic. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SNS client",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the SNS client",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the SNS client",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.queue-url",
+      "type": "java.lang.String",
+      "description": "The queueUrl to subscribe to",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.region",
+      "type": "java.lang.String",
+      "description": "The region in which SNS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.server-side-encryption-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Define if Server Side Encryption is enabled or not on the topic",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.subject",
+      "type": "java.lang.String",
+      "description": "The subject which is used if the message header 'CamelAwsSnsSubject' is not present.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.subscribe-s-n-sto-s-q-s",
+      "type": "java.lang.Boolean",
+      "description": "Define if the subscription between SNS Topic and SQS must be done or not",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sns.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sns.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the SNS client should expect to load credentials on an AWS infra instance or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.sns.springboot.Sns2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-sqs.json b/docs/components/modules/spring-boot/examples/json/aws2-sqs.json
new file mode 100644
index 0000000..1024c44
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-sqs.json
@@ -0,0 +1,304 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-sqs",
+      "type": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-sqs.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.amazon-a-w-s-host",
+      "type": "java.lang.String",
+      "description": "The hostname of the Amazon AWS cloud.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": "amazonaws.com"
+    },
+    {
+      "name": "camel.component.aws2-sqs.amazon-s-q-s-client",
+      "type": "software.amazon.awssdk.services.sqs.SqsClient",
+      "description": "To use the AmazonSQS as client. The option is a software.amazon.awssdk.services.sqs.SqsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.attribute-names",
+      "type": "java.lang.String",
+      "description": "A list of attribute names to receive when consuming. Multiple names can be separated by comma.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.auto-create-queue",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the queue",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sqs.batch-separator",
+      "type": "java.lang.String",
+      "description": "Set the separator when passing a String to send batch message operation",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": ","
+    },
+    {
+      "name": "camel.component.aws2-sqs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Allows you to use multiple threads to poll the sqs queue to increase throughput",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.aws2-sqs.configuration",
+      "type": "org.apache.camel.component.aws2.sqs.Sqs2Configuration",
+      "description": "The AWS SQS default configuration. The option is a org.apache.camel.component.aws2.sqs.Sqs2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-sqs.default-visibility-timeout",
+      "type": "java.lang.Integer",
+      "description": "The default visibility timeout (in seconds)",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.delay-queue",
+      "type": "java.lang.Boolean",
+      "description": "Define if you want to apply delaySeconds option to the queue or on single messages",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.delay-seconds",
+      "type": "java.lang.Integer",
+      "description": "Delay sending messages for a number of seconds.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete message from SQS after it has been read",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sqs.delete-if-filtered",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to send the DeleteMessage to the SQS queue if the exchange has property with key Sqs2Constants#SQS_DELETE_FILTERED (CamelAwsSqsDeleteFiltered) set to true.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sqs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-sqs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.extend-message-visibility",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then a scheduled background task will keep extending the message visibility on SQS. This is needed if it takes a long time to process the message. If set to true defaultVisibilityTimeout must be set. See details at Amazon docs.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.kms-data-key-reuse-period-seconds",
+      "type": "java.lang.Integer",
+      "description": "The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). Default: 300 (5 minutes).",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.kms-master-key-id",
+      "type": "java.lang.String",
+      "description": "The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.maximum-message-size",
+      "type": "java.lang.Integer",
+      "description": "The maximumMessageSize (in bytes) an SQS message can contain for this queue.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-attribute-names",
+      "type": "java.lang.String",
+      "description": "A list of message attribute names to receive when consuming. Multiple names can be separated by comma.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-deduplication-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO queues. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": "useExchangeId"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-group-id-strategy",
+      "type": "java.lang.String",
+      "description": "Only for FIFO queues. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.message-retention-period",
+      "type": "java.lang.Integer",
+      "description": "The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.operation",
+      "type": "org.apache.camel.component.aws2.sqs.Sqs2Operations",
+      "description": "The operation to do in case the user don't want to send only a message",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this queue. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.protocol",
+      "type": "java.lang.String",
+      "description": "The underlying protocol used to communicate with SQS",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": "https"
+    },
+    {
+      "name": "camel.component.aws2-sqs.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the SQS client",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.queue-owner-a-w-s-account-id",
+      "type": "java.lang.String",
+      "description": "Specify the queue owner aws account id when you need to connect the queue with different account owner.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.queue-url",
+      "type": "java.lang.String",
+      "description": "To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.receive-message-wait-time-seconds",
+      "type": "java.lang.Integer",
+      "description": "If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.redrive-policy",
+      "type": "java.lang.String",
+      "description": "Specify the policy that send message to DeadLetter queue. See detail at Amazon docs.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.region",
+      "type": "java.lang.String",
+      "description": "The region in which SQS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.server-side-encryption-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Define if Server Side Encryption is enabled or not on the queue",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the SQS client should expect to load credentials on an AWS infra instance or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sqs.visibility-timeout",
+      "type": "java.lang.Integer",
+      "description": "The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request to set in the com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only make sense if its different from defaultVisibilityTimeout. It changes the queue visibility timeout attribute permanently.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sqs.wait-time-seconds",
+      "type": "java.lang.Integer",
+      "description": "Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response.",
+      "sourceType": "org.apache.camel.component.aws2.sqs.springboot.Sqs2ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-sts.json b/docs/components/modules/spring-boot/examples/json/aws2-sts.json
new file mode 100644
index 0000000..2404664
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-sts.json
@@ -0,0 +1,132 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-sts",
+      "type": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-sts.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-sts.configuration",
+      "type": "org.apache.camel.component.aws2.sts.STS2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.sts.STS2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-sts.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-sts component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.operation",
+      "type": "org.apache.camel.component.aws2.sts.STS2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the STS client",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the STS client",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the STS client",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.region",
+      "type": "java.lang.String",
+      "description": "The region in which STS client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": "aws-global"
+    },
+    {
+      "name": "camel.component.aws2-sts.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.sts-client",
+      "type": "software.amazon.awssdk.services.sts.StsClient",
+      "description": "To use a existing configured AWS STS as client. The option is a software.amazon.awssdk.services.sts.StsClient type.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-sts.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-sts.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the STS client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.sts.springboot.STS2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/aws2-translate.json b/docs/components/modules/spring-boot/examples/json/aws2-translate.json
new file mode 100644
index 0000000..b08a70a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/aws2-translate.json
@@ -0,0 +1,150 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.aws2-translate",
+      "type": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.aws2-translate.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.autodetect-source-language",
+      "type": "java.lang.Boolean",
+      "description": "Being able to autodetect the source language",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.aws2-translate.configuration",
+      "type": "org.apache.camel.component.aws2.translate.Translate2Configuration",
+      "description": "Component configuration. The option is a org.apache.camel.component.aws2.translate.Translate2Configuration type.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.aws2-translate.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the aws2-translate component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.operation",
+      "type": "org.apache.camel.component.aws2.translate.Translate2Operations",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.override-endpoint",
+      "type": "java.lang.Boolean",
+      "description": "Set the need for overidding the endpoint. This option needs to be used in combination with uriEndpointOverride option",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.proxy-host",
+      "type": "java.lang.String",
+      "description": "To define a proxy host when instantiating the Translate client",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To define a proxy port when instantiating the Translate client",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.proxy-protocol",
+      "type": "software.amazon.awssdk.core.Protocol",
+      "description": "To define a proxy protocol when instantiating the Translate client",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.region",
+      "type": "java.lang.String",
+      "description": "The region in which Translate client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1) You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Key",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.source-language",
+      "type": "java.lang.String",
+      "description": "Source language to use",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.target-language",
+      "type": "java.lang.String",
+      "description": "Target language to use",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.translate-client",
+      "type": "software.amazon.awssdk.services.translate.TranslateClient",
+      "description": "To use a existing configured AWS Translate as client. The option is a software.amazon.awssdk.services.translate.TranslateClient type.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.trust-all-certificates",
+      "type": "java.lang.Boolean",
+      "description": "If we want to trust all certificates in case of overriding the endpoint",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.aws2-translate.uri-endpoint-override",
+      "type": "java.lang.String",
+      "description": "Set the overriding uri endpoint. This option needs to be used in combination with overrideEndpoint option",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.aws2-translate.use-default-credentials-provider",
+      "type": "java.lang.Boolean",
+      "description": "Set whether the Translate client should expect to load credentials through a default credentials provider or to expect static credentials to be passed in.",
+      "sourceType": "org.apache.camel.component.aws2.translate.springboot.Translate2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/azure-cosmosdb.json b/docs/components/modules/spring-boot/examples/json/azure-cosmosdb.json
new file mode 100644
index 0000000..d038047
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/azure-cosmosdb.json
@@ -0,0 +1,216 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-cosmosdb",
+      "type": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-cosmosdb.account-key",
+      "type": "java.lang.String",
+      "description": "Sets either a master or readonly key used to perform authentication for accessing resource.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.change-feed-processor-options",
+      "type": "com.azure.cosmos.models.ChangeFeedProcessorOptions",
+      "description": "Sets the ChangeFeedProcessorOptions to be used. Unless specifically set the default values that will be used are: maximum items per page or FeedResponse: 100 lease renew interval: 17 seconds lease acquire interval: 13 seconds lease expiration interval: 60 seconds feed poll delay: 5 seconds maximum scale count: unlimited. The option is a com.azure.cosmos.models.ChangeFeedProcessorOptions type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.client-telemetry-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets the flag to enable client telemetry which will periodically collect database operations aggregation statistics, system information like cpu\/memory and send it to cosmos monitoring service, which will be helpful during debugging. DEFAULT value is false indicating this is opt in feature, by default no telemetry collection.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.configuration",
+      "type": "org.apache.camel.component.azure.cosmosdb.CosmosDbConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.cosmosdb.CosmosDbConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.connection-sharing-across-clients-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables connections sharing across multiple Cosmos Clients. The default is false. When you have multiple instances of Cosmos Client in the same JVM interacting to multiple Cosmos accounts, enabling this allows connection sharing in Direct mode if possible between instances of Cosmos Client. Please note, when setting this option, the connection configuration (e.g., socket timeout config, idle timeout config) of the first instantiated client will be used for all other client instances.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.consistency-level",
+      "type": "com.azure.cosmos.ConsistencyLevel",
+      "description": "Sets the consistency levels supported for Azure Cosmos DB client operations in the Azure Cosmos DB service. The requested ConsistencyLevel must match or be weaker than that provisioned for the database account. Consistency levels by order of strength are STRONG, BOUNDED_STALENESS, SESSION and EVENTUAL. Refer to consistency level documentation for additional details: https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/consistency-levels",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.container-partition-key-path",
+      "type": "java.lang.String",
+      "description": "Sets the container partition key path.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.content-response-on-write-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets the boolean to only return the headers and status code in Cosmos DB response in case of Create, Update and Delete operations on CosmosItem. In Consumer, it is enabled by default because of the ChangeFeed in the consumer that needs this flag to be enabled and thus is shouldn't be overridden. In Producer, it advised to disable it since it reduces the network overhead",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.cosmos-async-client",
+      "type": "com.azure.cosmos.CosmosAsyncClient",
+      "description": "Inject an external CosmosAsyncClient into the component which provides a client-side logical representation of the Azure Cosmos DB service. This asynchronous client is used to configure and execute requests against the service. The option is a com.azure.cosmos.CosmosAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-container-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos container automatically in case it doesn't exist in Cosmos database",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-database-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos database automatically in case it doesn't exist in Cosmos account",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-lease-container-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos lease container for the consumer automatically in case it doesn't exist in Cosmos database",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.create-lease-database-if-not-exists",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the component should create Cosmos lease database for the consumer automatically in case it doesn't exist in Cosmos account",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.database-endpoint",
+      "type": "java.lang.String",
+      "description": "Sets the Azure Cosmos database endpoint the component will connect to.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-cosmosdb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.host-name",
+      "type": "java.lang.String",
+      "description": "Sets the hostname. The host: a host is an application instance that uses the change feed processor to listen for changes. Multiple instances with the same lease configuration can run in parallel, but each instance should have a different instance name. If not specified, this will be a generated random hostname.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.item-id",
+      "type": "java.lang.String",
+      "description": "Sets the itemId in case needed for operation on item like delete, replace",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.item-partition-key",
+      "type": "com.azure.cosmos.models.PartitionKey",
+      "description": "Sets partition key. Represents a partition key value in the Azure Cosmos DB database service. A partition key identifies the partition where the item is stored in. The option is a com.azure.cosmos.models.PartitionKey type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.lease-container-name",
+      "type": "java.lang.String",
+      "description": "Sets the lease container which acts as a state storage and coordinates processing the change feed across multiple workers. The lease container can be stored in the same account as the monitored container or in a separate account. It will be auto created if createLeaseContainerIfNotExists is set to true.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": "camel-lease"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.lease-database-name",
+      "type": "java.lang.String",
+      "description": "Sets the lease database where the leaseContainerName will be stored. If it is not specified, this component will store the lease container in the same database that is specified in databaseName. It will be auto created if createLeaseDatabaseIfNotExists is set to true.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.multiple-write-regions-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets the flag to enable writes on any regions for geo-replicated database accounts in the Azure Cosmos DB service. When the value of this property is true, the SDK will direct write operations to available writable regions of geo-replicated database account. Writable regions are ordered by PreferredRegions property. Setting the property value to true has no effect until EnableMultipleWriteRegions in DatabaseAccount is also set to true. DEFAULT value is true indicating that writes are directed to available writable regions of geo-replicated database account.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.operation",
+      "type": "org.apache.camel.component.azure.cosmosdb.CosmosDbOperationsDefinition",
+      "description": "The CosmosDB operation that can be used with this component on the producer.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.preferred-regions",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Sets the preferred regions for geo-replicated database accounts. For example, East US as the preferred region. When EnableEndpointDiscovery is true and PreferredRegions is non-empty, the SDK will prefer to use the regions in the container in the order they are specified to perform operations.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.query",
+      "type": "java.lang.String",
+      "description": "An SQL query to execute on a given resources. To learn more about Cosmos SQL API, check this link {link https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/sql-query-getting-started}",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.query-request-options",
+      "type": "com.azure.cosmos.models.CosmosQueryRequestOptions",
+      "description": "Set additional QueryRequestOptions that can be used with queryItems, queryContainers, queryDatabases, listDatabases, listItems, listContainers operations. The option is a com.azure.cosmos.models.CosmosQueryRequestOptions type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.read-requests-fallback-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to allow for reads to go to multiple regions configured on an account of Azure Cosmos DB service. DEFAULT value is true. If this property is not set, the default is true for all Consistency Levels other than Bounded Staleness, The default is false for Bounded Staleness. 1. endpointDiscoveryEnabled is true 2. the Azure Cosmos DB account has more than one region",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-cosmosdb.throughput-properties",
+      "type": "com.azure.cosmos.models.ThroughputProperties",
+      "description": "Sets throughput of the resources in the Azure Cosmos DB service. The option is a com.azure.cosmos.models.ThroughputProperties type.",
+      "sourceType": "org.apache.camel.component.azure.cosmosdb.springboot.CosmosDbComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/azure-eventhubs.json b/docs/components/modules/spring-boot/examples/json/azure-eventhubs.json
new file mode 100644
index 0000000..360defd
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/azure-eventhubs.json
@@ -0,0 +1,154 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-eventhubs",
+      "type": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-eventhubs.amqp-retry-options",
+      "type": "com.azure.core.amqp.AmqpRetryOptions",
+      "description": "Sets the retry policy for EventHubAsyncClient. If not specified, the default retry options are used. The option is a com.azure.core.amqp.AmqpRetryOptions type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.amqp-transport-type",
+      "type": "com.azure.core.amqp.AmqpTransportType",
+      "description": "Sets the transport type by which all the communication with Azure Event Hubs occurs. Default value is AmqpTransportType#AMQP.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-access-key",
+      "type": "java.lang.String",
+      "description": "In case you chose the default BlobCheckpointStore, this sets access key for the associated azure account name to be used for authentication with azure blob services",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-account-name",
+      "type": "java.lang.String",
+      "description": "In case you chose the default BlobCheckpointStore, this sets Azure account name to be used for authentication with azure blob services.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-container-name",
+      "type": "java.lang.String",
+      "description": "In case you chose the default BlobCheckpointStore, this sets the blob container that shall be used by the BlobCheckpointStore to store the checkpoint offsets",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.blob-storage-shared-key-credential",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "In case you chose the default BlobCheckpointStore, StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-eventhubs.checkpoint-store",
+      "type": "com.azure.messaging.eventhubs.CheckpointStore",
+      "description": "Sets the CheckpointStore the EventProcessorClient will use for storing partition ownership and checkpoint information. Users can, optionally, provide their own implementation of CheckpointStore which will store ownership and checkpoint information. By default it set to use com.azure.messaging.eventhubs.checkpointstore.blob.BlobCheckpointStore which stores all checkpoint offsets into Azure Blob Storage. The option is a com.azure.messaging.eventhubs.CheckpointStore type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.configuration",
+      "type": "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.eventhubs.EventHubsConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.connection-string",
+      "type": "java.lang.String",
+      "description": "Instead of supplying namespace, sharedAccessKey, sharedAccessName ... etc, you can just supply the connection string for your eventHub. The connection string for EventHubs already include all the necessary information to connection to your EventHub. To learn on how to generate the connection string, take a look at this documentation: https:\/\/docs.microsoft.com\/en-us\/azure\/event-hubs\/event-hubs-get-connection-string",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.consumer-group-name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the consumer group this consumer is associated with. Events are read in the context of this group. The name of the consumer group that is created by default is {link #DEFAULT_CONSUMER_GROUP_NAME $Default}.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": "$Default"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-eventhubs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.event-position",
+      "type": "java.util.Map<java.lang.String,com.azure.messaging.eventhubs.models.EventPosition>",
+      "description": "Sets the map containing the event position to use for each partition if a checkpoint for the partition does not exist in CheckpointStore. This map is keyed off of the partition id. If there is no checkpoint in CheckpointStore and there is no entry in this map, the processing of the partition will start from {link EventPosition#latest() latest} position.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-eventhubs.partition-id",
+      "type": "java.lang.String",
+      "description": "Sets the identifier of the Event Hub partition that the events will be sent to. If the identifier is not specified, the Event Hubs service will be responsible for routing events that are sent to an available partition.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.partition-key",
+      "type": "java.lang.String",
+      "description": "Sets a hashing key to be provided for the batch of events, which instructs the Event Hubs service to map this key to a specific partition. The selection of a partition is stable for a given partition hashing key. Should any other batches of events be sent using the same exact partition hashing key, the Event Hubs service will route them all to the same partition. This should be specified only when there is a need to group events by partition, but there is flexibility into which partition they are routed. If ensuring that a batch of events is sent only to a specific partition, it is recommended that the {link #setPartitionId(String) identifier of the position be specified directly} when sending the batch.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "Sets the count used by the receiver to control the number of events the Event Hub consumer will actively receive and queue locally without regard to whether a receive operation is currently active.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.azure-eventhubs.producer-async-client",
+      "type": "com.azure.messaging.eventhubs.EventHubProducerAsyncClient",
+      "description": "Sets the EventHubProducerAsyncClient.An asynchronous producer responsible for transmitting EventData to a specific Event Hub, grouped together in batches. Depending on the options specified when creating an {linkEventDataBatch}, the events may be automatically routed to an available partition or specific to a partition. Use by this component to produce the data in camel producer. The option is a com.azure.messaging.eventhubs.EventHubProducerAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.shared-access-key",
+      "type": "java.lang.String",
+      "description": "The generated value for the SharedAccessName",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-eventhubs.shared-access-name",
+      "type": "java.lang.String",
+      "description": "The name you chose for your EventHubs SAS keys",
+      "sourceType": "org.apache.camel.component.azure.eventhubs.springboot.EventHubsComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/azure-servicebus.json b/docs/components/modules/spring-boot/examples/json/azure-servicebus.json
new file mode 100644
index 0000000..c44902e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/azure-servicebus.json
@@ -0,0 +1,172 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-servicebus",
+      "type": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-servicebus.amqp-retry-options",
+      "type": "com.azure.core.amqp.AmqpRetryOptions",
+      "description": "Sets the retry options for Service Bus clients. If not specified, the default retry options are used. The option is a com.azure.core.amqp.AmqpRetryOptions type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.amqp-transport-type",
+      "type": "com.azure.core.amqp.AmqpTransportType",
+      "description": "Sets the transport type by which all the communication with Azure Service Bus occurs. Default value is AmqpTransportType#AMQP.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-servicebus.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-servicebus.client-options",
+      "type": "com.azure.core.util.ClientOptions",
+      "description": "Sets the ClientOptions to be sent from the client built from this builder, enabling customization of certain properties, as well as support the addition of custom header information. Refer to the ClientOptions documentation for more information. The option is a com.azure.core.util.ClientOptions type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.configuration",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.servicebus.ServiceBusConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.connection-string",
+      "type": "java.lang.String",
+      "description": "Sets the connection string for a Service Bus namespace or a specific Service Bus resource.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.consumer-operation",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusConsumerOperationDefinition",
+      "description": "Sets the desired operation to be used in the consumer",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-servicebus.disable-auto-complete",
+      "type": "java.lang.Boolean",
+      "description": "Disables auto-complete and auto-abandon of received messages. By default, a successfully processed message is {link ServiceBusReceiverAsyncClient#complete(ServiceBusReceivedMessage) completed}. If an error happens when the message is processed, it is {link ServiceBusReceiverAsyncClient#abandon(ServiceBusReceivedMessage) abandoned}.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-servicebus.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-servicebus component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-servicebus.max-auto-lock-renew-duration",
+      "type": "java.time.Duration",
+      "description": "Sets the amount of time to continue auto-renewing the lock. Setting Duration#ZERO or null disables auto-renewal. For {link ServiceBusReceiveMode#RECEIVE_AND_DELETE RECEIVE_AND_DELETE} mode, auto-renewal is disabled. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.peek-num-max-messages",
+      "type": "java.lang.Integer",
+      "description": "Set the max number of messages to be peeked during the peek operation.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "Sets the prefetch count of the receiver. For both {link ServiceBusReceiveMode#PEEK_LOCK PEEK_LOCK} and {link ServiceBusReceiveMode#RECEIVE_AND_DELETE RECEIVE_AND_DELETE} modes the default value is 1. Prefetch speeds up the message flow by aiming to have a message readily available for local retrieval when and before the application asks for one using ServiceBusReceiverAsyncClient#receiveMessages(). Setting a non-zero value will prefetch that number of messages. Setting the value to zero turns prefetch off.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-servicebus.producer-operation",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusProducerOperationDefinition",
+      "description": "Sets the desired operation to be used in the producer",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.proxy-options",
+      "type": "com.azure.core.amqp.ProxyOptions",
+      "description": "Sets the proxy configuration to use for ServiceBusSenderAsyncClient. When a proxy is configured, AmqpTransportType#AMQP_WEB_SOCKETS must be used for the transport type. The option is a com.azure.core.amqp.ProxyOptions type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.receiver-async-client",
+      "type": "com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient",
+      "description": "Sets the receiverAsyncClient in order to consume messages in the Consumer. The option is a com.azure.messaging.servicebus.ServiceBusReceiverAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.scheduled-enqueue-time",
+      "type": "java.time.OffsetDateTime",
+      "description": "Sets OffsetDateTime at which the message should appear in the Service Bus queue or topic. The option is a java.time.OffsetDateTime type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.sender-async-client",
+      "type": "com.azure.messaging.servicebus.ServiceBusSenderAsyncClient",
+      "description": "Sets SenderAsyncClient to be used in the producer. The option is a com.azure.messaging.servicebus.ServiceBusSenderAsyncClient type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.service-bus-receive-mode",
+      "type": "com.azure.messaging.servicebus.models.ServiceBusReceiveMode",
+      "description": "Sets the receive mode for the receiver.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.service-bus-transaction-context",
+      "type": "com.azure.messaging.servicebus.ServiceBusTransactionContext",
+      "description": "Represents transaction in service. This object just contains transaction id. The option is a com.azure.messaging.servicebus.ServiceBusTransactionContext type.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.service-bus-type",
+      "type": "org.apache.camel.component.azure.servicebus.ServiceBusType",
+      "description": "The service bus type of connection to execute. Queue is for typical queue option and topic for subscription based model.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.sub-queue",
+      "type": "com.azure.messaging.servicebus.models.SubQueue",
+      "description": "Sets the type of the SubQueue to connect to.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-servicebus.subscription-name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the subscription in the topic to listen to. topicOrQueueName and serviceBusType=topic must also be set.",
+      "sourceType": "org.apache.camel.component.azure.servicebus.springboot.ServiceBusComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/azure-storage-blob.json b/docs/components/modules/spring-boot/examples/json/azure-storage-blob.json
new file mode 100644
index 0000000..17c0bfa
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/azure-storage-blob.json
@@ -0,0 +1,221 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-storage-blob",
+      "type": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-storage-blob.access-key",
+      "type": "java.lang.String",
+      "description": "Access key for the associated azure account name to be used for authentication with azure blob services",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-name",
+      "type": "java.lang.String",
+      "description": "The blob name, to consume specific blob from a container. However on producer, is only required for the operations on the blob level",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-offset",
+      "type": "java.lang.Long",
+      "description": "Set the blob offset for the upload or download operations, default is 0",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-sequence-number",
+      "type": "java.lang.Long",
+      "description": "A user-controlled value that you can use to track requests. The value of the sequence number must be between 0 and 263 - 1.The default value is 0.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-storage-blob.blob-type",
+      "type": "org.apache.camel.component.azure.storage.blob.BlobType",
+      "description": "The blob type in order to initiate the appropriate settings for each blob type",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.block-list-type",
+      "type": "com.azure.storage.blob.models.BlockListType",
+      "description": "Specifies which type of blocks to return.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-blob.change-feed-context",
+      "type": "com.azure.core.util.Context",
+      "description": "When using getChangeFeed producer operation, this gives additional context that is passed through the Http pipeline during the service call. The option is a com.azure.core.util.Context type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.change-feed-end-time",
+      "type": "java.time.OffsetDateTime",
+      "description": "When using getChangeFeed producer operation, this filters the results to return events approximately before the end time. Note: A few events belonging to the next hour can also be returned. A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the end time up by an hour. The option is a java.time.OffsetDateTime type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.change-feed-start-time",
+      "type": "java.time.OffsetDateTime",
+      "description": "When using getChangeFeed producer operation, this filters the results to return events approximately after the start time. Note: A few events belonging to the previous hour can also be returned. A few events belonging to this hour can be missing; to ensure all events from the hour are returned, round the start time down by an hour. The option is a java.time.OffsetDateTime type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.close-stream-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Close the stream after read or keep it open, default is true",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.close-stream-after-write",
+      "type": "java.lang.Boolean",
+      "description": "Close the stream after write or keep it open, default is true",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.commit-block-list-later",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the staged blocks will not be committed directly.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.configuration",
+      "type": "org.apache.camel.component.azure.storage.blob.BlobConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.storage.blob.BlobConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.create-append-blob",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the append blocks will be created when committing append blocks.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.create-page-blob",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the page blob will be created when uploading page blob.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-blob.credentials",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.data-count",
+      "type": "java.lang.Long",
+      "description": "How many bytes to include in the range. Must be greater than or equal to 0 if specified.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.download-link-expiration",
+      "type": "java.lang.Long",
+      "description": "Override the default expiration (millis) of URL download link.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-storage-blob component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.file-dir",
+      "type": "java.lang.String",
+      "description": "The file directory where the downloaded blobs will be saved to, this can be used in both, producer and consumer",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-blob.max-results-per-page",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of blobs to return, including all BlobPrefix elements. If the request does not specify maxResultsPerPage or specifies a value greater than 5,000, the server will return up to 5,000 items.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.max-retry-requests",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of additional HTTP Get requests that will be made while reading the data from a response body.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.azure-storage-blob.operation",
+      "type": "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition",
+      "description": "The blob operation that can be used with this component on the producer",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.page-blob-size",
+      "type": "java.lang.Long",
+      "description": "Specifies the maximum size for the page blob, up to 8 TB. The page blob size must be aligned to a 512-byte boundary.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration",
+      "defaultValue": 512
+    },
+    {
+      "name": "camel.component.azure-storage-blob.prefix",
+      "type": "java.lang.String",
+      "description": "Filters the results to return only blobs whose names begin with the specified prefix. May be null to return all blobs.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.regex",
+      "type": "java.lang.String",
+      "description": "Filters the results to return only blobs whose names match the specified regular expression. May be null to return all if both prefix and regex are set, regex takes the priority and prefix is ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.service-client",
+      "type": "com.azure.storage.blob.BlobServiceClient",
+      "description": "Client to a storage account. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. It may also be used to construct URLs to blobs and containers. This client contains operations on a service account. Operations on a container are available on BlobContainerClient through BlobServiceClient#getBlobContainerClient(String), and operations on a blob are available on BlobClient through BlobContainerClient#getBlobClient(String). The option is a com.azure.storage.blob.BlobServiceClient type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-blob.timeout",
+      "type": "java.time.Duration",
+      "description": "An optional timeout value beyond which a RuntimeException will be raised. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.blob.springboot.BlobComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/azure-storage-datalake.json b/docs/components/modules/spring-boot/examples/json/azure-storage-datalake.json
new file mode 100644
index 0000000..14a8a91
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/azure-storage-datalake.json
@@ -0,0 +1,230 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-storage-datalake",
+      "type": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-storage-datalake.account-key",
+      "type": "java.lang.String",
+      "description": "account key for authentication",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.client-id",
+      "type": "java.lang.String",
+      "description": "client id for azure account",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.client-secret",
+      "type": "java.lang.String",
+      "description": "client secret for azure account",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.client-secret-credential",
+      "type": "com.azure.identity.ClientSecretCredential",
+      "description": "client secret credential for authentication. The option is a com.azure.identity.ClientSecretCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.close",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not a file changed event raised indicates completion (true) or modification (false)",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.close-stream-after-read",
+      "type": "java.lang.Boolean",
+      "description": "check for closing stream after read",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.configuration",
+      "type": "org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration",
+      "description": "configuration object for datalake. The option is a org.apache.camel.component.azure.storage.datalake.DataLakeConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.data-count",
+      "type": "java.lang.Long",
+      "description": "count number of bytes to download",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.directory-name",
+      "type": "java.lang.String",
+      "description": "directory of the file to be handled in component",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.download-link-expiration",
+      "type": "java.lang.Long",
+      "description": "download link expiration time",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-storage-datalake component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.expression",
+      "type": "java.lang.String",
+      "description": "expression for queryInputStream",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.file-dir",
+      "type": "java.lang.String",
+      "description": "directory of file to do operations in the local system",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.file-name",
+      "type": "java.lang.String",
+      "description": "name of file to be handled in component",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.file-offset",
+      "type": "java.lang.Long",
+      "description": "offset position in file for different operations",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.max-results",
+      "type": "java.lang.Integer",
+      "description": "maximum number of results to show at a time",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.max-retry-requests",
+      "type": "java.lang.Integer",
+      "description": "no of retries to a given request",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.open-options",
+      "type": "java.util.Set<java.nio.file.OpenOption>",
+      "description": "set open options for creating file",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.operation",
+      "type": "org.apache.camel.component.azure.storage.datalake.DataLakeOperationsDefinition",
+      "description": "operation to be performed",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.path",
+      "type": "java.lang.String",
+      "description": "path in azure datalake for operations",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.permission",
+      "type": "java.lang.String",
+      "description": "permission string for the file",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.position",
+      "type": "java.lang.Long",
+      "description": "This parameter allows the caller to upload data in parallel and control the order in which it is appended to the file.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.recursive",
+      "type": "java.lang.Boolean",
+      "description": "recursively include all paths",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.regex",
+      "type": "java.lang.String",
+      "description": "regular expression for matching file names",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.retain-uncommited-data",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not uncommitted data is to be retained after the operation",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.service-client",
+      "type": "com.azure.storage.file.datalake.DataLakeServiceClient",
+      "description": "datalake service client for azure storage datalake. The option is a com.azure.storage.file.datalake.DataLakeServiceClient type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.shared-key-credential",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "shared key credential for azure datalake gen2. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.tenant-id",
+      "type": "java.lang.String",
+      "description": "tenant id for azure account",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.timeout",
+      "type": "java.time.Duration",
+      "description": "Timeout for operation. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.umask",
+      "type": "java.lang.String",
+      "description": "umask permission for file",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-datalake.user-principal-name-returned",
+      "type": "java.lang.Boolean",
+      "description": "whether or not to use upn",
+      "sourceType": "org.apache.camel.component.azure.storage.datalake.springboot.DataLakeComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/azure-storage-queue.json b/docs/components/modules/spring-boot/examples/json/azure-storage-queue.json
new file mode 100644
index 0000000..3a0039d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/azure-storage-queue.json
@@ -0,0 +1,124 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.azure-storage-queue",
+      "type": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.azure-storage-queue.access-key",
+      "type": "java.lang.String",
+      "description": "Access key for the associated azure account name to be used for authentication with azure queue services",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.azure-storage-queue.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-queue.configuration",
+      "type": "org.apache.camel.component.azure.storage.queue.QueueConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.azure.storage.queue.QueueConfiguration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.create-queue",
+      "type": "java.lang.Boolean",
+      "description": "When is set to true, the queue will be automatically created when sending messages to the queue.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-queue.credentials",
+      "type": "com.azure.storage.common.StorageSharedKeyCredential",
+      "description": "StorageSharedKeyCredential can be injected to create the azure client, this holds the important authentication information. The option is a com.azure.storage.common.StorageSharedKeyCredential type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the azure-storage-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.azure-storage-queue.max-messages",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of messages to get, if there are less messages exist in the queue than requested all the messages will be returned. If left empty only 1 message will be retrieved, the allowed range is 1 to 32 messages.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.azure-storage-queue.message-id",
+      "type": "java.lang.String",
+      "description": "The ID of the message to be deleted or updated.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.operation",
+      "type": "org.apache.camel.component.azure.storage.queue.QueueOperationDefinition",
+      "description": "Queue service operation hint to the producer",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.pop-receipt",
+      "type": "java.lang.String",
+      "description": "Unique identifier that must match for the message to be deleted or updated.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.service-client",
+      "type": "com.azure.storage.queue.QueueServiceClient",
+      "description": "Service client to a storage account to interact with the queue service. This client does not hold any state about a particular storage account but is instead a convenient way of sending off appropriate requests to the resource on the service. This client contains all the operations for interacting with a queue account in Azure Storage. Operations allowed by the client are creating, listing, and deleting queues, retrieving and updating properties of the account, and retrieving statistics of the account. The option is a com.azure.storage.queue.QueueServiceClient type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.time-to-live",
+      "type": "java.time.Duration",
+      "description": "How long the message will stay alive in the queue. If unset the value will default to 7 days, if -1 is passed the message will not expire. The time to live must be -1 or any positive number. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl\/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs are typesafe. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.timeout",
+      "type": "java.time.Duration",
+      "description": "An optional timeout applied to the operation. If a response is not returned before the timeout concludes a RuntimeException will be thrown. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.azure-storage-queue.visibility-timeout",
+      "type": "java.time.Duration",
+      "description": "The timeout period for how long the message is invisible in the queue. The timeout must be between 1 seconds and 7 days. The format should be in this form: PnDTnHnMn.nS., e.g: PT20.345S -- parses as 20.345 seconds, P2D -- parses as 2 days However, in case you are using EndpointDsl\/ComponentDsl, you can do something like Duration.ofSeconds() since these Java APIs are typesafe. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.azure.storage.queue.springboot.QueueComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/barcode.json b/docs/components/modules/spring-boot/examples/json/barcode.json
new file mode 100644
index 0000000..c9805e6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/barcode.json
@@ -0,0 +1,53 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.barcode",
+      "type": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.barcode.barcode-format",
+      "type": "java.lang.String",
+      "description": "Barcode format such as QR-Code",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.barcode.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the barcode data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.height",
+      "type": "java.lang.Integer",
+      "description": "Height of the barcode",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.image-type",
+      "type": "java.lang.String",
+      "description": "Image type of the barcode such as png",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.barcode.width",
+      "type": "java.lang.Integer",
+      "description": "Width of the barcode",
+      "sourceType": "org.apache.camel.dataformat.barcode.springboot.BarcodeDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/base64.json b/docs/components/modules/spring-boot/examples/json/base64.json
new file mode 100644
index 0000000..e6a168e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/base64.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.base64",
+      "type": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.base64.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.base64.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.base64.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the base64 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.base64.line-length",
+      "type": "java.lang.Integer",
+      "description": "To specific a maximum line length for the encoded data. By default 76 is used.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "defaultValue": 76
+    },
+    {
+      "name": "camel.dataformat.base64.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separators to use. Uses new line characters (CRLF) by default.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.base64.url-safe",
+      "type": "java.lang.Boolean",
+      "description": "Instead of emitting '' and '\/' we emit '-' and '_' respectively. urlSafe is only applied to encode operations. Decoding seamlessly handles both modes. Is by default false.",
+      "sourceType": "org.apache.camel.dataformat.base64.springboot.Base64DataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/bean-validator.json b/docs/components/modules/spring-boot/examples/json/bean-validator.json
new file mode 100644
index 0000000..08a9ce1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/bean-validator.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.bean-validator",
+      "type": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.bean-validator.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bean-validator.constraint-validator-factory",
+      "type": "javax.validation.ConstraintValidatorFactory",
+      "description": "To use a custom ConstraintValidatorFactory. The option is a javax.validation.ConstraintValidatorFactory type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.bean-validator.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bean-validator component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.ignore-xml-configuration",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore data from the META-INF\/validation.xml file.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.bean-validator.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.bean-validator.message-interpolator",
+      "type": "javax.validation.MessageInterpolator",
+      "description": "To use a custom MessageInterpolator. The option is a javax.validation.MessageInterpolator type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.traversable-resolver",
+      "type": "javax.validation.TraversableResolver",
+      "description": "To use a custom TraversableResolver. The option is a javax.validation.TraversableResolver type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.validation-provider-resolver",
+      "type": "javax.validation.ValidationProviderResolver",
+      "description": "To use a a custom ValidationProviderResolver. The option is a javax.validation.ValidationProviderResolver type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean-validator.validator-factory",
+      "type": "javax.validation.ValidatorFactory",
+      "description": "To use a custom ValidatorFactory. The option is a javax.validation.ValidatorFactory type.",
+      "sourceType": "org.apache.camel.component.bean.validator.springboot.BeanValidatorComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/bean.json b/docs/components/modules/spring-boot/examples/json/bean.json
new file mode 100644
index 0000000..61cd01a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/bean.json
@@ -0,0 +1,145 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.bean",
+      "type": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.class",
+      "type": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration"
+    },
+    {
+      "name": "camel.component.class.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.bean",
+      "type": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.bean.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.bean.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.bean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bean component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bean.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.bean.scope",
+      "type": "org.apache.camel.BeanScope",
+      "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using delegate scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. so when using prototype then this depends on the delegated registry.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.class.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.class.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.class.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the class component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration"
+    },
+    {
+      "name": "camel.component.class.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.class.scope",
+      "type": "org.apache.camel.BeanScope",
+      "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using delegate scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. so when using prototype then this depends on the delegated registry.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration"
+    },
+    {
+      "name": "camel.language.bean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.bean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bean language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.bean.scope",
+      "type": "java.lang.String",
+      "description": "Scope of bean. When using singleton scope (default) the bean is created or looked up only once and reused for the lifetime of the endpoint. The bean should be thread-safe in case concurrent threads is calling the bean at the same time. When using request scope the bean is created or looked up once per request (exchange). This can be used if you want to store state on a bean while processing a request and you want to call the same bean instance multiple times while processing the request. The bean does not have to be thread-safe as the instance is only called from the same request. When using prototype scope, then the bean will be looked up or created per call. However in case of lookup then this is delegated to the bean registry such as Spring or CDI (if in use), which depends on their configuration can act as either singleton or prototype scope. So when using prototype scope then this depends on the bean registry implementation.",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "defaultValue": "Singleton"
+    },
+    {
+      "name": "camel.language.bean.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.bean.springboot.BeanLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bean.cache",
+      "type": "java.lang.Boolean",
+      "description": "Use singleton option instead.",
+      "sourceType": "org.apache.camel.component.bean.springboot.BeanComponentConfiguration",
+      "defaultValue": true,
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.class.cache",
+      "type": "java.lang.Boolean",
+      "description": "Use singleton option instead.",
+      "sourceType": "org.apache.camel.component.beanclass.springboot.ClassComponentConfiguration",
+      "defaultValue": true,
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/beanio.json b/docs/components/modules/spring-boot/examples/json/beanio.json
new file mode 100644
index 0000000..27bf242
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/beanio.json
@@ -0,0 +1,81 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.beanio",
+      "type": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.beanio.bean-reader-error-handler-type",
+      "type": "java.lang.String",
+      "description": "To use a custom org.apache.camel.dataformat.beanio.BeanIOErrorHandler as error handler while parsing. Configure the fully qualified class name of the error handler. Notice the options ignoreUnidentifiedRecords, ignoreUnexpectedRecords, and ignoreInvalidRecords may not be in use when you use a custom error handler.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.beanio.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the beanio data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.encoding",
+      "type": "java.lang.String",
+      "description": "The charset to use. Is by default the JVM platform default charset.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.ignore-invalid-records",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore invalid records.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.beanio.ignore-unexpected-records",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore unexpected records.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.beanio.ignore-unidentified-records",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore unidentified records.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.beanio.mapping",
+      "type": "java.lang.String",
+      "description": "The BeanIO mapping file. Is by default loaded from the classpath. You can prefix with file:, http:, or classpath: to denote from where to load the mapping file.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.stream-name",
+      "type": "java.lang.String",
+      "description": "The name of the stream to use.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.beanio.unmarshal-single-object",
+      "type": "java.lang.Boolean",
+      "description": "This options controls whether to unmarshal as a list of objects or as a single object only. The former is the default mode, and the latter is only intended in special use-cases where beanio maps the Camel message to a single POJO bean.",
+      "sourceType": "org.apache.camel.dataformat.beanio.springboot.BeanIODataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/beanstalk.json b/docs/components/modules/spring-boot/examples/json/beanstalk.json
new file mode 100644
index 0000000..f15ed3b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/beanstalk.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.beanstalk",
+      "type": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.beanstalk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.beanstalk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.beanstalk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.beanstalk.connection-settings-factory",
+      "type": "org.apache.camel.component.beanstalk.ConnectionSettingsFactory",
+      "description": "Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for unit testing without beanstalkd daemon (you can mock ConnectionSettings). The option is a org.apache.camel.component.beanstalk.ConnectionSettingsFactory type.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.beanstalk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.beanstalk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the beanstalk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.beanstalk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.beanstalk.springboot.BeanstalkComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/bindy.json b/docs/components/modules/spring-boot/examples/json/bindy.json
new file mode 100644
index 0000000..1440e82
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/bindy.json
@@ -0,0 +1,169 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.bindy-csv",
+      "type": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed",
+      "type": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp",
+      "type": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.bindy-csv.allow-empty-stream",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without records is provided.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.class-type",
+      "type": "java.lang.String",
+      "description": "Name of model class to use.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bindy-csv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.locale",
+      "type": "java.lang.String",
+      "description": "To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the name default",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.type",
+      "type": "java.lang.String",
+      "description": "Whether to use Csv, Fixed, or KeyValue.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-csv.unwrap-single-instance",
+      "type": "java.lang.Boolean",
+      "description": "When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List.",
+      "sourceType": "org.apache.camel.dataformat.bindy.csv.springboot.BindyCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.allow-empty-stream",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without records is provided.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.class-type",
+      "type": "java.lang.String",
+      "description": "Name of model class to use.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bindy-fixed data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.locale",
+      "type": "java.lang.String",
+      "description": "To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the name default",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.type",
+      "type": "java.lang.String",
+      "description": "Whether to use Csv, Fixed, or KeyValue.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-fixed.unwrap-single-instance",
+      "type": "java.lang.Boolean",
+      "description": "When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List.",
+      "sourceType": "org.apache.camel.dataformat.bindy.fixed.springboot.BindyFixedLengthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.allow-empty-stream",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow empty streams in the unmarshal process. If true, no exception will be thrown when a body without records is provided.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.class-type",
+      "type": "java.lang.String",
+      "description": "Name of model class to use.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bindy-kvp data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.locale",
+      "type": "java.lang.String",
+      "description": "To configure a default locale to use, such as us for united states. To use the JVM platform default locale then use the name default",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.type",
+      "type": "java.lang.String",
+      "description": "Whether to use Csv, Fixed, or KeyValue.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.bindy-kvp.unwrap-single-instance",
+      "type": "java.lang.Boolean",
+      "description": "When unmarshalling should a single instance be unwrapped and returned instead of wrapped in a java.util.List.",
+      "sourceType": "org.apache.camel.dataformat.bindy.kvp.springboot.BindyKeyValuePairDataFormatConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/bonita.json b/docs/components/modules/spring-boot/examples/json/bonita.json
new file mode 100644
index 0000000..8c4d4ac
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/bonita.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.bonita",
+      "type": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bonita.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.bonita.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.bonita.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.bonita.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the bonita component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.bonita.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.bonita.springboot.BonitaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/box.json b/docs/components/modules/spring-boot/examples/json/box.json
new file mode 100644
index 0000000..5f6b817
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/box.json
@@ -0,0 +1,148 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.box",
+      "type": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.box.access-token-cache",
+      "type": "com.box.sdk.IAccessTokenCache",
+      "description": "Custom Access Token Cache for storing and retrieving access tokens. The option is a com.box.sdk.IAccessTokenCache type.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.authentication-type",
+      "type": "java.lang.String",
+      "description": "The type of authentication for connection. Types of Authentication: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - OAuth 2.0 with JSON Web Tokens",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": "APP_USER_AUTHENTICATION"
+    },
+    {
+      "name": "camel.component.box.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.box.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.box.client-id",
+      "type": "java.lang.String",
+      "description": "Box application client ID",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.client-secret",
+      "type": "java.lang.String",
+      "description": "Box application client secret",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.configuration",
+      "type": "org.apache.camel.component.box.BoxConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.box.BoxConfiguration type.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.box.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the box component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.encryption-algorithm",
+      "type": "com.box.sdk.EncryptionAlgorithm",
+      "description": "The type of encryption algorithm for JWT. Supported Algorithms: RSA_SHA_256 RSA_SHA_384 RSA_SHA_512",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.enterprise-id",
+      "type": "java.lang.String",
+      "description": "The enterprise ID to use for an App Enterprise.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.http-params",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom HTTP params for settings like proxy host",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.box.max-cache-entries",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of access tokens in cache.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.box.private-key-file",
+      "type": "java.lang.String",
+      "description": "The private key for generating the JWT signature.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.private-key-password",
+      "type": "java.lang.String",
+      "description": "The password for the private key.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.public-key-id",
+      "type": "java.lang.String",
+      "description": "The ID for public key for validating the JWT signature.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.user-id",
+      "type": "java.lang.String",
+      "description": "The user ID to use for an App User.",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.user-name",
+      "type": "java.lang.String",
+      "description": "Box user name, MUST be provided",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.box.user-password",
+      "type": "java.lang.String",
+      "description": "Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call",
+      "sourceType": "org.apache.camel.component.box.springboot.BoxComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/braintree.json b/docs/components/modules/spring-boot/examples/json/braintree.json
new file mode 100644
index 0000000..f818be3
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/braintree.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.braintree",
+      "type": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.braintree.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.braintree.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.braintree.configuration",
+      "type": "org.apache.camel.component.braintree.BraintreeConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.braintree.BraintreeConfiguration type.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.braintree.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.braintree.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the braintree component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.braintree.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.braintree.springboot.BraintreeComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/browse.json b/docs/components/modules/spring-boot/examples/json/browse.json
new file mode 100644
index 0000000..b44403a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/browse.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.browse",
+      "type": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.browse.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.browse.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.browse.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.browse.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.browse.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the browse component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.browse.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.browse.springboot.BrowseComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/caffeine-lrucache.json b/docs/components/modules/spring-boot/examples/json/caffeine-lrucache.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/caffeine-lrucache.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/caffeine.json b/docs/components/modules/spring-boot/examples/json/caffeine.json
new file mode 100644
index 0000000..8ca9ca7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/caffeine.json
@@ -0,0 +1,271 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.caffeine-cache",
+      "type": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache",
+      "type": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.caffeine-cache.action",
+      "type": "java.lang.String",
+      "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-cache.cache-loader",
+      "type": "com.github.benmanes.caffeine.cache.CacheLoader",
+      "description": "To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.configuration",
+      "type": "org.apache.camel.component.caffeine.CaffeineConfiguration",
+      "description": "Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.create-cache-if-not-exist",
+      "type": "java.lang.Boolean",
+      "description": "Configure if a cache need to be created if it does exist or can't be pre-configured.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-cache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.caffeine-cache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the caffeine-cache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.eviction-type",
+      "type": "org.apache.camel.component.caffeine.EvictionType",
+      "description": "Set the eviction Type for this cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.expire-after-access-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Time in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-cache.expire-after-write-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Write in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-cache.initial-capacity",
+      "type": "java.lang.Integer",
+      "description": "Set the initial Capacity for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-cache.key",
+      "type": "java.lang.Object",
+      "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.key-type",
+      "type": "java.lang.String",
+      "description": "The cache key type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-cache.maximum-size",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum size for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-cache.removal-listener",
+      "type": "com.github.benmanes.caffeine.cache.RemovalListener",
+      "description": "Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.stats-counter",
+      "type": "com.github.benmanes.caffeine.cache.stats.StatsCounter",
+      "description": "Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type.",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-cache.stats-enabled",
+      "type": "java.lang.Boolean",
+      "description": "To enable stats on the cache",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-cache.value-type",
+      "type": "java.lang.String",
+      "description": "The cache value type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.cache.springboot.CaffeineCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.action",
+      "type": "java.lang.String",
+      "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.cache-loader",
+      "type": "com.github.benmanes.caffeine.cache.CacheLoader",
+      "description": "To configure a CacheLoader in case of a LoadCache use. The option is a com.github.benmanes.caffeine.cache.CacheLoader type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.configuration",
+      "type": "org.apache.camel.component.caffeine.CaffeineConfiguration",
+      "description": "Sets the global component configuration. The option is a org.apache.camel.component.caffeine.CaffeineConfiguration type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.create-cache-if-not-exist",
+      "type": "java.lang.Boolean",
+      "description": "Configure if a cache need to be created if it does exist or can't be pre-configured.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the caffeine-loadcache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.eviction-type",
+      "type": "org.apache.camel.component.caffeine.EvictionType",
+      "description": "Set the eviction Type for this cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.expire-after-access-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Time in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.expire-after-write-time",
+      "type": "java.lang.Integer",
+      "description": "Set the expire After Access Write in case of time based Eviction (in seconds)",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.initial-capacity",
+      "type": "java.lang.Integer",
+      "description": "Set the initial Capacity for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.key",
+      "type": "java.lang.Object",
+      "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.key-type",
+      "type": "java.lang.String",
+      "description": "The cache key type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.maximum-size",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum size for the cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.removal-listener",
+      "type": "com.github.benmanes.caffeine.cache.RemovalListener",
+      "description": "Set a specific removal Listener for the cache. The option is a com.github.benmanes.caffeine.cache.RemovalListener type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.stats-counter",
+      "type": "com.github.benmanes.caffeine.cache.stats.StatsCounter",
+      "description": "Set a specific Stats Counter for the cache stats. The option is a com.github.benmanes.caffeine.cache.stats.StatsCounter type.",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.stats-enabled",
+      "type": "java.lang.Boolean",
+      "description": "To enable stats on the cache",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.caffeine-loadcache.value-type",
+      "type": "java.lang.String",
+      "description": "The cache value type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.caffeine.load.springboot.CaffeineLoadCacheComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cassandraql.json b/docs/components/modules/spring-boot/examples/json/cassandraql.json
new file mode 100644
index 0000000..af4a63f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cassandraql.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cql",
+      "type": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cassandra.springboot.CassandraComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cbor.json b/docs/components/modules/spring-boot/examples/json/cbor.json
new file mode 100644
index 0000000..fa798cf
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cbor.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.cbor",
+      "type": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.cbor.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.cbor.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson CBOR is allowed to attempt to use the CamelCBORUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.cbor.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.cbor.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cbor data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing CBOR ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.cbor.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.cbor.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson CBOR ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.cbor.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.cbor.springboot.CBORDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/chatscript.json b/docs/components/modules/spring-boot/examples/json/chatscript.json
new file mode 100644
index 0000000..c02e8e5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/chatscript.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.chatscript",
+      "type": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chatscript.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.chatscript.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.chatscript.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.chatscript.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the chatscript component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chatscript.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.chatscript.springboot.ChatScriptComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/chunk.json b/docs/components/modules/spring-boot/examples/json/chunk.json
new file mode 100644
index 0000000..651f475
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/chunk.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.chunk",
+      "type": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chunk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.chunk.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.chunk.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.chunk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.chunk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.chunk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the chunk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.chunk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.chunk.springboot.ChunkComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cm-sms.json b/docs/components/modules/spring-boot/examples/json/cm-sms.json
new file mode 100644
index 0000000..d89576f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cm-sms.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cm-sms",
+      "type": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cm-sms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cm-sms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cm-sms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cm-sms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cm-sms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cm-sms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cm.springboot.CMComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cmis.json b/docs/components/modules/spring-boot/examples/json/cmis.json
new file mode 100644
index 0000000..4ede0a7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cmis.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cmis",
+      "type": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cmis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cmis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cmis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cmis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cmis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cmis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cmis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cmis.session-facade-factory",
+      "type": "org.apache.camel.component.cmis.CMISSessionFacadeFactory",
+      "description": "To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances. The option is a org.apache.camel.component.cmis.CMISSessionFacadeFactory type.",
+      "sourceType": "org.apache.camel.component.cmis.springboot.CMISComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/coap.json b/docs/components/modules/spring-boot/examples/json/coap.json
new file mode 100644
index 0000000..6dd8024
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/coap.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.coap",
+      "type": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.coap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.coap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.coap.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.coap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.coap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the coap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration"
+    },
+    {
+      "name": "camel.component.coap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.coap.springboot.CoAPComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cometd.json b/docs/components/modules/spring-boot/examples/json/cometd.json
new file mode 100644
index 0000000..f2d9337
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cometd.json
@@ -0,0 +1,93 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cometd",
+      "type": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cometd.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cometd.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cometd.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cometd.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cometd component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.extensions",
+      "type": "java.util.List<org.cometd.bayeux.server.BayeuxServer$Extension>",
+      "description": "To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cometd.security-policy",
+      "type": "org.cometd.bayeux.server.SecurityPolicy",
+      "description": "To use a custom configured SecurityPolicy to control authorization. The option is a org.cometd.bayeux.server.SecurityPolicy type.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password for the keystore when using SSL.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-keystore",
+      "type": "java.lang.String",
+      "description": "The path to the keystore.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.ssl-password",
+      "type": "java.lang.String",
+      "description": "The password when using SSL.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cometd.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.cometd.springboot.CometdComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/consul.json b/docs/components/modules/spring-boot/examples/json/consul.json
new file mode 100644
index 0000000..ee9cfdf
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/consul.json
@@ -0,0 +1,610 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud.consul",
+      "type": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul",
+      "type": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.consul",
+      "type": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.consul.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The time (in seconds) to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.cloud.consul.check-interval",
+      "type": "java.lang.Integer",
+      "description": "How often (in seconds) a service has to be marked as healthy if its check is TTL or how often the check should run. Default is 5 seconds.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.cloud.consul.check-ttl",
+      "type": "java.lang.Integer",
+      "description": "The time (in seconds) to live for TTL checks. Default is 1 minute.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.cloud.consul.connect-timeout",
+      "type": "java.time.Duration",
+      "description": "Connect timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use connectTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.consistency-mode",
+      "type": "com.orbitz.consul.option.ConsistencyMode",
+      "description": "The consistencyMode used for queries, default ConsistencyMode.DEFAULT",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.deregister-after",
+      "type": "java.lang.Integer",
+      "description": "How long (in seconds) to wait to deregister a service in case of unclean shutdown. Default is 1 hour.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 3600
+    },
+    {
+      "name": "camel.cloud.consul.deregister-services-on-stop",
+      "type": "java.lang.Boolean",
+      "description": "Should we remove all the registered services know by this registry on stop?",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the consul service registry should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.consul.first-index",
+      "type": "java.math.BigInteger",
+      "description": "The first index for watch for, default 0",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cloud.consul.id",
+      "type": "java.lang.String",
+      "description": "Service Registry ID",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.near-node",
+      "type": "java.lang.String",
+      "description": "The near node to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.node-meta",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The note meta-data to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.override-service-host",
+      "type": "java.lang.Boolean",
+      "description": "Should we override the service host if given ?",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.ping-instance",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.read-timeout",
+      "type": "java.time.Duration",
+      "description": "Read timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use readTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.recursive",
+      "type": "java.lang.Boolean",
+      "description": "Recursively watch, default false",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.consul.service-host",
+      "type": "java.lang.String",
+      "description": "Service host.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.tags",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Set tags. You can separate multiple tags by comma.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.write-timeout",
+      "type": "java.time.Duration",
+      "description": "Write timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use writeTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The time (in seconds) to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.cluster.consul.connect-timeout",
+      "type": "java.time.Duration",
+      "description": "Connect timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use connectTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.consistency-mode",
+      "type": "com.orbitz.consul.option.ConsistencyMode",
+      "description": "The consistencyMode used for queries, default ConsistencyMode.DEFAULT",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the consul cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.consul.first-index",
+      "type": "java.math.BigInteger",
+      "description": "The first index for watch for, default 0",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cluster.consul.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.near-node",
+      "type": "java.lang.String",
+      "description": "The near node to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.node-meta",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The note meta-data to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.ping-instance",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cluster.consul.read-timeout",
+      "type": "java.time.Duration",
+      "description": "Read timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use readTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.recursive",
+      "type": "java.lang.Boolean",
+      "description": "Recursively watch, default false",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.consul.root-path",
+      "type": "java.lang.String",
+      "description": "Consul root path",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": "\/camel"
+    },
+    {
+      "name": "camel.cluster.consul.session-lock-delay",
+      "type": "java.lang.Integer",
+      "description": "The value for lockDelay",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.cluster.consul.session-refresh-interval",
+      "type": "java.lang.Integer",
+      "description": "The value of wait attribute",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.cluster.consul.session-ttl",
+      "type": "java.lang.Integer",
+      "description": "The value of TTL",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.cluster.consul.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.tags",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Set tags. You can separate multiple tags by comma.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.write-timeout",
+      "type": "java.time.Duration",
+      "description": "Write timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.consul.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Use writeTimeout instead.",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.consul.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.action",
+      "type": "java.lang.String",
+      "description": "The default action. Can be overridden by CamelConsulAction",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.consul.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The second to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.consul.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.configuration",
+      "type": "org.apache.camel.component.consul.ConsulConfiguration",
+      "description": "Consul configuration. The option is a org.apache.camel.component.consul.ConsulConfiguration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.connect-timeout",
+      "type": "java.time.Duration",
+      "description": "Connect timeout for OkHttpClient. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.consistency-mode",
+      "type": "com.orbitz.consul.option.ConsistencyMode",
+      "description": "The consistencyMode used for queries, default ConsistencyMode.DEFAULT",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.consul-client",
+      "type": "com.orbitz.consul.Consul",
+      "description": "Reference to a com.orbitz.consul.Consul in the registry. The option is a com.orbitz.consul.Consul type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.consul.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the consul component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.first-index",
+      "type": "java.math.BigInteger",
+      "description": "The first index for watch for, default 0. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.key",
+      "type": "java.lang.String",
+      "description": "The default key. Can be overridden by CamelConsulKey",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.near-node",
+      "type": "java.lang.String",
+      "description": "The near node to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.node-meta",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The note meta-data to use for queries.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.ping-instance",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the AgentClient should attempt a ping before returning the Consul instance",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.consul.read-timeout",
+      "type": "java.time.Duration",
+      "description": "Read timeout for OkHttpClient. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.recursive",
+      "type": "java.lang.Boolean",
+      "description": "Recursively watch, default false",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using an org.apache.camel.support.jsse.SSLContextParameters instance. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.tags",
+      "type": "java.lang.String",
+      "description": "Set tags. You can separate multiple tags by comma.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.component.consul.value-as-string",
+      "type": "java.lang.Boolean",
+      "description": "Default to transform values retrieved from Consul i.e. on KV endpoint to string.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.consul.write-timeout",
+      "type": "java.time.Duration",
+      "description": "Write timeout for OkHttpClient. The option is a java.time.Duration type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration"
+    },
+    {
+      "name": "camel.cloud.consul.dc",
+      "type": "java.lang.String",
+      "description": "Use datacenter instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cloud.ConsulServiceRegistryConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.cluster.consul.dc",
+      "type": "java.lang.String",
+      "description": "Use datacenter instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.cluster.ConsulClusterServiceConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.consul.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Connect timeout for OkHttpClient. Deprecation note: Use connectTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.consul.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Read timeout for OkHttpClient. Deprecation note: Use readTimeout instead",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    },
+    {
+      "name": "camel.component.consul.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Write timeout for OkHttpClient. Deprecation note: Use writeTimeout instead. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.consul.springboot.ConsulComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/controlbus.json b/docs/components/modules/spring-boot/examples/json/controlbus.json
new file mode 100644
index 0000000..d81416c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/controlbus.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.controlbus",
+      "type": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.controlbus.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.controlbus.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.controlbus.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.controlbus.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the controlbus component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.controlbus.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.controlbus.springboot.ControlBusComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/corda.json b/docs/components/modules/spring-boot/examples/json/corda.json
new file mode 100644
index 0000000..4f5bd5b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/corda.json
@@ -0,0 +1,117 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.corda",
+      "type": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.corda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.corda.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.corda.configuration",
+      "type": "org.apache.camel.component.corda.CordaConfiguration",
+      "description": "To use a shared configuration. The option is a org.apache.camel.component.corda.CordaConfiguration type.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.contract-state-class",
+      "type": "java.lang.Class<net.corda.core.contracts.ContractState>",
+      "description": "A contract state (or just state) contains opaque data used by a contract program. It can be thought of as a disk file that the program can use to persist data across transactions. States are immutable: once created they are never updated, instead, any changes must generate a new successor state. States can be updated (consumed) only once: the notary is responsible for ensuring there is no double spending by only signing a transaction if the input states are all free.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.corda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the corda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.flow-logic-arguments",
+      "type": "java.lang.Object[]",
+      "description": "Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.flow-logic-class",
+      "type": "java.lang.Class<net.corda.core.flows.FlowLogic<java.lang.Object>>",
+      "description": "Start the given flow with the given arguments, returning an Observable with a single observation of the result of running the flow. The flowLogicClass must be annotated with net.corda.core.flows.StartableByRPC.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.corda.operation",
+      "type": "java.lang.String",
+      "description": "Operation to use",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.page-specification",
+      "type": "net.corda.core.node.services.vault.PageSpecification",
+      "description": "PageSpecification allows specification of a page number (starting from 1) and page size (defaulting to 200 with a maximum page size of (Integer.MAX_INT) Note: we default the page number to 200 to enable queries without requiring a page specification but enabling detection of large results sets that fall out of the 200 requirement. Max page size should be used with extreme caution as results may exceed your JVM memory footprint. The option is a net.corda.core.node.services.vault.PageSpecification type.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.password",
+      "type": "java.lang.String",
+      "description": "Password for login",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.process-snapshot",
+      "type": "java.lang.Boolean",
+      "description": "Whether to process snapshots or not",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.corda.query-criteria",
+      "type": "net.corda.core.node.services.vault.QueryCriteria",
+      "description": "QueryCriteria assumes underlying schema tables are correctly indexed for performance. The option is a net.corda.core.node.services.vault.QueryCriteria type.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.sort",
+      "type": "net.corda.core.node.services.vault.Sort",
+      "description": "Sort allows specification of a set of entity attribute names and their associated directionality and null handling, to be applied upon processing a query specification.",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.corda.username",
+      "type": "java.lang.String",
+      "description": "Username for login",
+      "sourceType": "org.apache.camel.component.corda.springboot.CordaComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/core.json b/docs/components/modules/spring-boot/examples/json/core.json
new file mode 100644
index 0000000..3d7c7d0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/core.json
@@ -0,0 +1,1123 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud.consul.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery",
+      "type": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer",
+      "type": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.hystrix",
+      "type": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.language.constant",
+      "type": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.constant.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.csimple",
+      "type": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.csimple.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.exchangeproperty",
+      "type": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.exchangeproperty.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.file",
+      "type": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.file.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.header",
+      "type": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.header.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.ref",
+      "type": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ref.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.simple",
+      "type": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.simple.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.tokenize",
+      "type": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.tokenize.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.resilience4j",
+      "type": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest",
+      "type": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.consul.service-discovery.acl-token",
+      "type": "java.lang.String",
+      "description": "Sets the ACL token to be used with Consul",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.block-seconds",
+      "type": "java.lang.Integer",
+      "description": "The seconds to wait for a watch event, default 10 seconds",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.connect-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Connect timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.datacenter",
+      "type": "java.lang.String",
+      "description": "The data center",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to be used for basic authentication",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.read-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Read timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.url",
+      "type": "java.lang.String",
+      "description": "The Consul agent URL",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.user-name",
+      "type": "java.lang.String",
+      "description": "Sets the username to be used for basic authentication",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.consul.service-discovery.write-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Write timeout for OkHttpClient",
+      "sourceType": "org.apache.camel.model.cloud.springboot.ConsulServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.domain",
+      "type": "java.lang.String",
+      "description": "The domain name;",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.dns.service-discovery.proto",
+      "type": "java.lang.String",
+      "description": "The transport protocol of the desired service.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.DnsServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "_tcp"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.type",
+      "type": "java.lang.String",
+      "description": "To set the discovery type, valid values are on-demand and watch.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "on-demand"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.uris",
+      "type": "java.lang.String",
+      "description": "The URIs the client can connect to.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.etcd.service-discovery.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.EtcdServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.api-version",
+      "type": "java.lang.String",
+      "description": "Sets the API version when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.ca-cert-data",
+      "type": "java.lang.String",
+      "description": "Sets the Certificate Authority data when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.ca-cert-file",
+      "type": "java.lang.String",
+      "description": "Sets the Certificate Authority data that are loaded from the file when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-cert-data",
+      "type": "java.lang.String",
+      "description": "Sets the Client Certificate data when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-cert-file",
+      "type": "java.lang.String",
+      "description": "Sets the Client Certificate data that are loaded from the file when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-algo",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore algorithm, such as RSA when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-data",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore data when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-file",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore data that are loaded from the file when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.client-key-passphrase",
+      "type": "java.lang.String",
+      "description": "Sets the Client Keystore passphrase when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.dns-domain",
+      "type": "java.lang.String",
+      "description": "Sets the DNS domain to use for DNS lookup.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.lookup",
+      "type": "java.lang.String",
+      "description": "How to perform service lookup. Possible values: client, dns, environment. When using client, then the client queries the kubernetes master to obtain a list of active pods that provides the service, and then random (or round robin) select a pod. When using dns the service name is resolved as name.namespace.svc.dnsDomain. When using dnssrv the service name is resolved with SRV query for _._...svc... When using environment then environment variables are used to lookup the service. By default environment is used.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": "environment"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.master-url",
+      "type": "java.lang.String",
+      "description": "Sets the URL to the master when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.namespace",
+      "type": "java.lang.String",
+      "description": "Sets the namespace to use. Will by default use namespace from the ENV variable KUBERNETES_MASTER.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.oauth-token",
+      "type": "java.lang.String",
+      "description": "Sets the OAUTH token for authentication (instead of username\/password) when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.password",
+      "type": "java.lang.String",
+      "description": "Sets the password for authentication when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.port-name",
+      "type": "java.lang.String",
+      "description": "Sets the Port Name to use for DNS\/DNSSRV lookup.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.port-protocol",
+      "type": "java.lang.String",
+      "description": "Sets the Port Protocol to use for DNS\/DNSSRV lookup.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.trust-certs",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to turn on trust certificate check when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.kubernetes.service-discovery.username",
+      "type": "java.lang.String",
+      "description": "Sets the username for authentication when using client lookup",
+      "sourceType": "org.apache.camel.model.cloud.springboot.KubernetesServiceCallServiceDiscoveryConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.client-name",
+      "type": "java.lang.String",
+      "description": "Sets the Ribbon client name",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.namespace",
+      "type": "java.lang.String",
+      "description": "The namespace",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.password",
+      "type": "java.lang.String",
+      "description": "The password",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set client properties to use. These properties are specific to what service call implementation are in use. For example if using ribbon, then the client properties are define in com.netflix.client.config.CommonClientConfigKey.",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.cloud.ribbon.load-balancer.username",
+      "type": "java.lang.String",
+      "description": "The username",
+      "sourceType": "org.apache.camel.model.cloud.springboot.RibbonServiceCallServiceLoadBalancerConfigurationProperties"
+    },
+    {
+      "name": "camel.hystrix.allow-maximum-size-to-diverge-from-core-size",
+      "type": "java.lang.Boolean",
+      "description": "Allows the configuration for maximumSize to take effect. That value can then be equal to, or higher, than coreSize",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use a HystrixCircuitBreaker or not. If false no circuit-breaker logic will be used and all requests permitted. This is similar in effect to circuitBreakerForceClosed() except that continues tracking metrics and knowing whether it should be open\/closed, this property results in not even instantiating a circuit-breaker.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-error-threshold-percentage",
+      "type": "java.lang.Integer",
+      "description": "Error percentage threshold (as whole number such as 50) at which point the circuit breaker will trip open and reject requests. It will stay tripped for the duration defined in circuitBreakerSleepWindowInMilliseconds; The error percentage this is compared against comes from HystrixCommandMetrics.getHealthCounts().",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-force-closed",
+      "type": "java.lang.Boolean",
+      "description": "If true the HystrixCircuitBreaker#allowRequest() will always return true to allow requests regardless of the error percentage from HystrixCommandMetrics.getHealthCounts(). The circuitBreakerForceOpen() property takes precedence so if it set to true this property does nothing.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-force-open",
+      "type": "java.lang.Boolean",
+      "description": "If true the HystrixCircuitBreaker.allowRequest() will always return false, causing the circuit to be open (tripped) and reject all requests. This property takes precedence over circuitBreakerForceClosed();",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-request-volume-threshold",
+      "type": "java.lang.Integer",
+      "description": "Minimum number of requests in the metricsRollingStatisticalWindowInMilliseconds() that must exist before the HystrixCircuitBreaker will trip. If below this number the circuit will not trip regardless of error percentage.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.hystrix.circuit-breaker-sleep-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "The time in milliseconds after a HystrixCircuitBreaker trips open that it should wait before trying requests again.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.hystrix.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.springboot.HystrixConfigurationDefinitionCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.hystrix.core-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Core thread-pool size that gets passed to java.util.concurrent.ThreadPoolExecutor#setCorePoolSize(int)",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.execution-isolation-semaphore-max-concurrent-requests",
+      "type": "java.lang.Integer",
+      "description": "Number of concurrent requests permitted to HystrixCommand.run(). Requests beyond the concurrent limit will be rejected. Applicable only when executionIsolationStrategy == SEMAPHORE.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.hystrix.execution-isolation-strategy",
+      "type": "java.lang.String",
+      "description": "What isolation strategy HystrixCommand.run() will be executed with. If THREAD then it will be executed on a separate thread and concurrent requests limited by the number of threads in the thread-pool. If SEMAPHORE then it will be executed on the calling thread and concurrent requests limited by the semaphore count.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": "THREAD"
+    },
+    {
+      "name": "camel.hystrix.execution-isolation-thread-interrupt-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "Whether the execution thread should attempt an interrupt (using Future#cancel ) when a thread times out. Applicable only when executionIsolationStrategy() == THREAD.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.execution-timeout-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether the timeout mechanism is enabled for this command",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.execution-timeout-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Time in milliseconds at which point the command will timeout and halt execution. If executionIsolationThreadInterruptOnTimeout == true and the command is thread-isolated, the executing thread will be interrupted. If the command is semaphore-isolated and a HystrixObservableCommand, that command will get unsubscribed.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.hystrix.fallback-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether HystrixCommand.getFallback() should be attempted when failure occurs.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.fallback-isolation-semaphore-max-concurrent-requests",
+      "type": "java.lang.Integer",
+      "description": "Number of concurrent requests permitted to HystrixCommand.getFallback(). Requests beyond the concurrent limit will fail-fast and not attempt retrieving a fallback.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.group-key",
+      "type": "java.lang.String",
+      "description": "Sets the group key to use. The default value is CamelHystrix.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": "CamelHystrix"
+    },
+    {
+      "name": "camel.hystrix.keep-alive-time",
+      "type": "java.lang.Integer",
+      "description": "Keep-alive time in minutes that gets passed to ThreadPoolExecutor#setKeepAliveTime(long,TimeUnit)",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.hystrix.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Max queue size that gets passed to BlockingQueue in HystrixConcurrencyStrategy.getBlockingQueue(int) This should only affect the instantiation of a threadpool - it is not eliglible to change a queue size on the fly. For that, use queueSizeRejectionThreshold().",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.hystrix.maximum-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum thread-pool size that gets passed to ThreadPoolExecutor#setMaximumPoolSize(int) . This is the maximum amount of concurrency that can be supported without starting to reject HystrixCommands. Please note that this setting only takes effect if you also set allowMaximumSizeToDivergeFromCoreSize",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.metrics-health-snapshot-interval-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Time in milliseconds to wait between allowing health snapshots to be taken that calculate success and error percentages and affect HystrixCircuitBreaker.isOpen() status. On high-volume circuits the continual calculation of error percentage can become CPU intensive thus this controls how often it is calculated.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-bucket-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of values stored in each bucket of the rolling percentile. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether percentile metrics should be captured using HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-window-buckets",
+      "type": "java.lang.Integer",
+      "description": "Number of buckets the rolling percentile window is broken into. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 6
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-percentile-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Duration of percentile rolling window in milliseconds. This is passed into HystrixRollingPercentile inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-statistical-window-buckets",
+      "type": "java.lang.Integer",
+      "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside HystrixCommandMetrics.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.metrics-rolling-statistical-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "This property sets the duration of the statistical rolling window, in milliseconds. This is how long metrics are kept for the thread pool. The window is divided into buckets and rolls by those increments.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.hystrix.queue-size-rejection-threshold",
+      "type": "java.lang.Integer",
+      "description": "Queue size rejection threshold is an artificial max size at which rejections will occur even if maxQueueSize has not been reached. This is done because the maxQueueSize of a BlockingQueue can not be dynamically changed and we want to support dynamically changing the queue size that affects rejections. This is used by HystrixCommand when queuing a thread for execution.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.hystrix.request-log-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether HystrixCommand execution and events should be logged to HystrixRequestLog.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.thread-pool-key",
+      "type": "java.lang.String",
+      "description": "Sets the thread pool key to use. Will by default use the same value as groupKey has been configured to use.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": "CamelHystrix"
+    },
+    {
+      "name": "camel.hystrix.thread-pool-rolling-number-statistical-window-buckets",
+      "type": "java.lang.Integer",
+      "description": "Number of buckets the rolling statistical window is broken into. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.hystrix.thread-pool-rolling-number-statistical-window-in-milliseconds",
+      "type": "java.lang.Integer",
+      "description": "Duration of statistical rolling window in milliseconds. This is passed into HystrixRollingNumber inside each HystrixThreadPoolMetrics instance.",
+      "sourceType": "org.apache.camel.model.springboot.HystrixConfigurationDefinitionProperties",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.language.constant.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.constant.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the constant language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.constant.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.constant.springboot.ConstantLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.csimple.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.csimple.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the csimple language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.csimple.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.csimple.springboot.CSimpleLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.exchangeproperty.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.exchangeproperty.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the exchangeProperty language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.exchangeproperty.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.property.springboot.ExchangePropertyLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.file.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.file.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the file language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.file.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.simple.springboot.FileLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.header.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.header.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the header language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.header.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.header.springboot.HeaderLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.ref.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.ref.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ref language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ref.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.ref.springboot.RefLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.simple.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.simple.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the simple language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.simple.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.simple.springboot.SimpleLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.tokenize.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.tokenize.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tokenize language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.tokenize.group-delimiter",
+      "type": "java.lang.String",
+      "description": "Sets the delimiter to use when grouping. If this has not been set then token will be used as the delimiter.",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.tokenize.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.tokenizer.springboot.TokenizeLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.resilience4j.automatic-transition-from-open-to-half-open-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables automatic transition from OPEN to HALF_OPEN state once the waitDurationInOpenState has passed.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.resilience4j.circuit-breaker-ref",
+      "type": "java.lang.String",
+      "description": "Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreaker instance to lookup and use from the registry. When using this, then any other circuit breaker options are not in use.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.config-ref",
+      "type": "java.lang.String",
+      "description": "Refers to an existing io.github.resilience4j.circuitbreaker.CircuitBreakerConfig instance to lookup and use from the registry.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.configurations",
+      "type": "java.util.Map<java.lang.String,org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionCommon>",
+      "description": "Define additional configuration definitions",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable the component",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.resilience4j.failure-rate-threshold",
+      "type": "java.lang.Float",
+      "description": "Configures the failure rate threshold in percentage. If the failure rate is equal or greater than the threshold the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 50 percentage.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.minimum-number-of-calls",
+      "type": "java.lang.Integer",
+      "description": "Configures the minimum number of calls which are required (per sliding window period) before the CircuitBreaker can calculate the error rate. For example, if minimumNumberOfCalls is 10, then at least 10 calls must be recorded, before the failure rate can be calculated. If only 9 calls have been recorded the CircuitBreaker will not transition to open even if all 9 calls have failed. Default minimumNumberOfCalls is 100",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.resilience4j.permitted-number-of-calls-in-half-open-state",
+      "type": "java.lang.Integer",
+      "description": "Configures the number of permitted calls when the CircuitBreaker is half open. The size must be greater than 0. Default size is 10.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.resilience4j.sliding-window-size",
+      "type": "java.lang.Integer",
+      "description": "Configures the size of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. slidingWindowSize configures the size of the sliding window. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. The slidingWindowSize must be greater than 0. The minimumNumberOfCalls must be greater than 0. If the slidingWindowType is COUNT_BASED, the minimumNumberOfCalls cannot be greater than slidingWindowSize . If the slidingWindowType is TIME_BASED, you can pick whatever you want. Default slidingWindowSize is 100.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.resilience4j.sliding-window-type",
+      "type": "java.lang.String",
+      "description": "Configures the type of the sliding window which is used to record the outcome of calls when the CircuitBreaker is closed. Sliding window can either be count-based or time-based. If slidingWindowType is COUNT_BASED, the last slidingWindowSize calls are recorded and aggregated. If slidingWindowType is TIME_BASED, the calls of the last slidingWindowSize seconds are recorded and aggregated. Default slidingWindowType is COUNT_BASED.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": "COUNT_BASED"
+    },
+    {
+      "name": "camel.resilience4j.slow-call-duration-threshold",
+      "type": "java.lang.Integer",
+      "description": "Configures the duration threshold (seconds) above which calls are considered as slow and increase the slow calls percentage. Default value is 60 seconds.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.resilience4j.slow-call-rate-threshold",
+      "type": "java.lang.Float",
+      "description": "Configures a threshold in percentage. The CircuitBreaker considers a call as slow when the call duration is greater than slowCallDurationThreshold Duration. When the percentage of slow calls is equal or greater the threshold, the CircuitBreaker transitions to open and starts short-circuiting calls. The threshold must be greater than 0 and not greater than 100. Default value is 100 percentage which means that all recorded calls must be slower than slowCallDurationThreshold.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.resilience4j.wait-duration-in-open-state",
+      "type": "java.lang.Integer",
+      "description": "Configures the wait duration (in seconds) which specifies how long the CircuitBreaker should stay open, before it switches to half open. Default value is 60 seconds.",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.resilience4j.writable-stack-trace-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables writable stack traces. When set to false, Exception.getStackTrace returns a zero length array. This may be used to reduce log spam when the circuit breaker is open as the cause of the exceptions is already known (the circuit breaker is short-circuiting calls).",
+      "sourceType": "org.apache.camel.model.springboot.Resilience4jConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.rest.api-component",
+      "type": "java.lang.String",
+      "description": "The name of the Camel component to use as the REST API (such as swagger) If no API Component has been explicit configured, then Camel will lookup if there is a Camel component responsible for servicing and generating the REST API documentation, or if a org.apache.camel.spi.RestApiProcessorFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-context-id-pattern",
+      "type": "java.lang.String",
+      "description": "Sets an CamelContext id pattern to only allow Rest APIs from rest services within CamelContext's which name matches the pattern. The pattern #name# refers to the CamelContext name, to match on the current CamelContext only. For any other value, the pattern uses the rules from PatternHelper#matchPattern(String,String)",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-context-listing",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether listing of all available CamelContext's with REST services in the JVM is enabled. If enabled it allows to discover these contexts, if false then only the current CamelContext is in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.api-context-path",
+      "type": "java.lang.String",
+      "description": "Sets a leading API context-path the REST API services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-context-route-id",
+      "type": "java.lang.String",
+      "description": "Sets the route id to use for the route that services the REST API. The route will by default use an auto assigned route id.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-host",
+      "type": "java.lang.String",
+      "description": "To use an specific hostname for the API documentation (eg swagger) This can be used to override the generated host with this configured hostname",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the api documentation (swagger). For example set property api.title to my cool stuff",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.api-vendor-extension",
+      "type": "java.lang.Boolean",
+      "description": "Whether vendor extension is enabled in the Rest APIs. If enabled then Camel will include additional information as vendor extension (eg keys starting with x-) such as route ids, class names etc. Not all 3rd party API gateways and tools supports vendor-extensions when importing your API docs.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.binding-mode",
+      "type": "org.apache.camel.model.rest.RestBindingMode",
+      "description": "Sets the binding mode to use. The default value is off",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.client-request-validation",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable validation of the client request to check whether the Content-Type and Accept headers from the client is supported by the Rest-DSL configuration of its consumes\/produces settings. This can be turned on, to enable this check. In case of validation error, then HTTP Status codes 415 or 406 is returned. The default value is false.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.component",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for the REST transport (consumer), such as netty-http, jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.component-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the rest component in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.consumer-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the rest consumer in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.context-path",
+      "type": "java.lang.String",
+      "description": "Sets a leading context-path the REST services will be using. This can be used when using components such as camel-servlet where the deployed web application is deployed using a context-path. Or for components such as camel-jetty or camel-netty-http that includes a HTTP server.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.cors-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure custom CORS headers.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.data-format-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the data formats in use. For example set property prettyPrint to true to have json outputted in pretty mode. The properties can be prefixed to denote the option is only for either JSON or XML and for either the IN or the OUT. The prefixes are: json.in. json.out. xml.in. xml.out. For example a key with value xml.out.mustBeJAXBElement is only for the XML data format for the outgoing. A key without a prefix is a common key for all situations.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.enable-cors",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable CORS headers in the HTTP response. The default value is false.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.endpoint-property",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure as many additional properties for the rest endpoint in use.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.host",
+      "type": "java.lang.String",
+      "description": "The hostname to use for exposing the REST service.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.host-name-resolver",
+      "type": "org.apache.camel.model.rest.RestHostNameResolver",
+      "description": "If no hostname has been explicit configured, then this resolver is used to compute the hostname the REST service will be using.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.json-data-format",
+      "type": "java.lang.String",
+      "description": "Name of specific json data format to use. By default json-jackson will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.port",
+      "type": "java.lang.String",
+      "description": "The port number to use for exposing the REST service. Notice if you use servlet component then the port number configured here does not apply, as the port number in use is the actual port number the servlet component is using. eg if using Apache Tomcat its the tomcat http port, if using Apache Karaf its the HTTP service in Karaf that uses port 8181 by default etc. Though in those situations setting the port number here, allows tooling and JMX to know the port number, so its recommended to set the port number to the number that the servlet engine uses.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.producer-api-doc",
+      "type": "java.lang.String",
+      "description": "Sets the location of the api document (swagger api) the REST producer will use to validate the REST uri and query parameters are valid accordingly to the api document. This requires adding camel-swagger-java to the classpath, and any miss configuration will let Camel fail on startup and report the error(s). The location of the api document is loaded from classpath by default, but you can use file: or http: to refer to resources to load from file or http url.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.producer-component",
+      "type": "java.lang.String",
+      "description": "Sets the name of the Camel component to use as the REST producer",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.scheme",
+      "type": "java.lang.String",
+      "description": "The scheme to use for exposing the REST service. Usually http or https is supported. The default value is http",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    },
+    {
+      "name": "camel.rest.skip-binding-on-error-code",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip binding on output if there is a custom HTTP error code header. This allows to build custom error messages that do not bind to json \/ xml etc, as success messages otherwise will do.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.rest.use-x-forward-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use X-Forward headers for Host and related setting. The default value is true.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.rest.xml-data-format",
+      "type": "java.lang.String",
+      "description": "Name of specific XML data format to use. By default jaxb will be used. Important: This option is only for setting a custom name of the data format, not to refer to an existing data format instance.",
+      "sourceType": "org.apache.camel.model.rest.springboot.RestConfigurationDefinitionProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/couchbase.json b/docs/components/modules/spring-boot/examples/json/couchbase.json
new file mode 100644
index 0000000..8c13d78
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/couchbase.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.couchbase",
+      "type": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchbase.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.couchbase.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.couchbase.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.couchbase.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.couchbase.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the couchbase component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchbase.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.couchbase.springboot.CouchbaseComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/couchdb.json b/docs/components/modules/spring-boot/examples/json/couchdb.json
new file mode 100644
index 0000000..9d298c7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/couchdb.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.couchdb",
+      "type": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchdb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.couchdb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.couchdb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.couchdb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.couchdb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the couchdb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.couchdb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.couchdb.springboot.CouchDbComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cron.json b/docs/components/modules/spring-boot/examples/json/cron.json
new file mode 100644
index 0000000..3b2fd18
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cron.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cron",
+      "type": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cron.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cron.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cron.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cron.cron-service",
+      "type": "java.lang.String",
+      "description": "The id of the CamelCronService to use when multiple implementations are provided",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cron.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cron.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cron component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cron.springboot.CronComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/crypto.json b/docs/components/modules/spring-boot/examples/json/crypto.json
new file mode 100644
index 0000000..aa2ec4f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/crypto.json
@@ -0,0 +1,347 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.crypto",
+      "type": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.crypto",
+      "type": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.pgp",
+      "type": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.crypto.algorithm",
+      "type": "java.lang.String",
+      "description": "Sets the JCE name of the Algorithm that should be used for the signer.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": "SHA256withRSA"
+    },
+    {
+      "name": "camel.component.crypto.alias",
+      "type": "java.lang.String",
+      "description": "Sets the alias used to query the KeyStore for keys and {link java.security.cert.Certificate Certificates} to be used in signing and verifying exchanges. This value can be provided at runtime via the message header org.apache.camel.component.crypto.DigitalSignatureConstants#KEYSTORE_ALIAS",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.crypto.buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Set the size of the buffer used to read in the Exchange payload data.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.crypto.certificate",
+      "type": "java.security.cert.Certificate",
+      "description": "Set the Certificate that should be used to verify the signature in the exchange based on its payload. The option is a java.security.cert.Certificate type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.certificate-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a PrivateKey that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.clear-headers",
+      "type": "java.lang.Boolean",
+      "description": "Determines if the Signature specific headers be cleared after signing and verification. Defaults to true, and should only be made otherwise at your extreme peril as vital private information such as Keys and passwords may escape if unset.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.crypto.configuration",
+      "type": "org.apache.camel.component.crypto.DigitalSignatureConfiguration",
+      "description": "To use the shared DigitalSignatureConfiguration as configuration. The option is a org.apache.camel.component.crypto.DigitalSignatureConfiguration type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.crypto.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the crypto component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.key-store-parameters",
+      "type": "org.apache.camel.support.jsse.KeyStoreParameters",
+      "description": "Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges based on the given KeyStoreParameters. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a org.apache.camel.support.jsse.KeyStoreParameters type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.keystore",
+      "type": "java.security.KeyStore",
+      "description": "Sets the KeyStore that can contain keys and Certficates for use in signing and verifying exchanges. A KeyStore is typically used with an alias, either one supplied in the Route definition or dynamically via the message header CamelSignatureKeyStoreAlias. If no alias is supplied and there is only a single entry in the Keystore, then this single entry will be used. The option is a java.security.KeyStore type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.keystore-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a Keystore that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.crypto.password",
+      "type": "java.lang.String",
+      "description": "Sets the password used to access an aliased PrivateKey in the KeyStore.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.private-key",
+      "type": "java.security.PrivateKey",
+      "description": "Set the PrivateKey that should be used to sign the exchange. The option is a java.security.PrivateKey type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.private-key-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a PrivateKey that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.provider",
+      "type": "java.lang.String",
+      "description": "Set the id of the security provider that provides the configured Signature algorithm.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.public-key",
+      "type": "java.security.PublicKey",
+      "description": "Set the PublicKey that should be used to verify the signature in the exchange. The option is a java.security.PublicKey type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.public-key-name",
+      "type": "java.lang.String",
+      "description": "references that should be resolved when the context changes",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.secure-random",
+      "type": "java.security.SecureRandom",
+      "description": "Set the SecureRandom used to initialize the Signature service. The option is a java.security.SecureRandom type.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.secure-random-name",
+      "type": "java.lang.String",
+      "description": "Sets the reference name for a SecureRandom that can be found in the registry.",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.component.crypto.signature-header-name",
+      "type": "java.lang.String",
+      "description": "Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelDigitalSignature'",
+      "sourceType": "org.apache.camel.component.crypto.springboot.DigitalSignatureComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.algorithm",
+      "type": "java.lang.String",
+      "description": "The JCE algorithm name indicating the cryptographic algorithm that will be used.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.algorithm-parameter-ref",
+      "type": "java.lang.String",
+      "description": "A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type using the given name as a java.security.spec.AlgorithmParameterSpec type.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.buffersize",
+      "type": "java.lang.Integer",
+      "description": "The size of the buffer used in the signature process.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.crypto-provider",
+      "type": "java.lang.String",
+      "description": "The name of the JCE Security Provider that should be used.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.crypto.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the crypto data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.init-vector-ref",
+      "type": "java.lang.String",
+      "description": "Refers to a byte array containing the Initialization Vector that will be used to initialize the Cipher.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.inline",
+      "type": "java.lang.Boolean",
+      "description": "Flag indicating that the configured IV should be inlined into the encrypted data stream. Is by default false.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.crypto.key-ref",
+      "type": "java.lang.String",
+      "description": "Refers to the secret key to lookup from the register to use.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.crypto.mac-algorithm",
+      "type": "java.lang.String",
+      "description": "The JCE algorithm name indicating the Message Authentication algorithm.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "defaultValue": "HmacSHA1"
+    },
+    {
+      "name": "camel.dataformat.crypto.should-append-h-m-a-c",
+      "type": "java.lang.Boolean",
+      "description": "Flag indicating that a Message Authentication Code should be calculated and appended to the encrypted data.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.CryptoDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.pgp.algorithm",
+      "type": "java.lang.Integer",
+      "description": "Symmetric key encryption algorithm; possible values are defined in org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags; for example 2 (= TRIPLE DES), 3 (= CAST5), 4 (= BLOWFISH), 6 (= DES), 7 (= AES_128). Only relevant for encrypting.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.armored",
+      "type": "java.lang.Boolean",
+      "description": "This option will cause PGP to base64 encode the encrypted text, making it available for copy\/paste, etc.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.pgp.compression-algorithm",
+      "type": "java.lang.Integer",
+      "description": "Compression algorithm; possible values are defined in org.bouncycastle.bcpg.CompressionAlgorithmTags; for example 0 (= UNCOMPRESSED), 1 (= ZIP), 2 (= ZLIB), 3 (= BZIP2). Only relevant for encrypting.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.pgp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pgp data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.hash-algorithm",
+      "type": "java.lang.Integer",
+      "description": "Signature hash algorithm; possible values are defined in org.bouncycastle.bcpg.HashAlgorithmTags; for example 2 (= SHA1), 8 (= SHA256), 9 (= SHA384), 10 (= SHA512), 11 (=SHA224). Only relevant for signing.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.integrity",
+      "type": "java.lang.Boolean",
+      "description": "Adds an integrity check\/sign into the encryption file. The default value is true.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.pgp.key-file-name",
+      "type": "java.lang.String",
+      "description": "Filename of the keyring; must be accessible as a classpath resource (but you can specify a location in the file system by using the file: prefix).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.key-userid",
+      "type": "java.lang.String",
+      "description": "The user ID of the key in the PGP keyring used during encryption. Can also be only a part of a user ID. For example, if the user ID is Test User then you can use the part Test User or to address the user ID.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.password",
+      "type": "java.lang.String",
+      "description": "Password used when opening the private key (not used for encryption).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.provider",
+      "type": "java.lang.String",
+      "description": "Java Cryptography Extension (JCE) provider, default is Bouncy Castle (BC). Alternatively you can use, for example, the IAIK JCE provider; in this case the provider must be registered beforehand and the Bouncy Castle provider must not be registered beforehand. The Sun JCE provider does not work.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-key-file-name",
+      "type": "java.lang.String",
+      "description": "Filename of the keyring to use for signing (during encryption) or for signature verification (during decryption); must be accessible as a classpath resource (but you can specify a location in the file system by using the file: prefix).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-key-ring",
+      "type": "java.lang.String",
+      "description": "Keyring used for signing\/verifying as byte array. You can not set the signatureKeyFileName and signatureKeyRing at the same time.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-key-userid",
+      "type": "java.lang.String",
+      "description": "User ID of the key in the PGP keyring used for signing (during encryption) or signature verification (during decryption). During the signature verification process the specified User ID restricts the public keys from the public keyring which can be used for the verification. If no User ID is specified for the signature verficiation then any public key in the public keyring can be used for the verification. Can also be only a part of a user ID. For example, if the user ID is Test User then you can use the part Test User or to address the User ID.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-password",
+      "type": "java.lang.String",
+      "description": "Password used when opening the private key used for signing (during encryption).",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.pgp.signature-verification-option",
+      "type": "java.lang.String",
+      "description": "Controls the behavior for verifying the signature during unmarshaling. There are 4 values possible: optional: The PGP message may or may not contain signatures; if it does contain signatures, then a signature verification is executed. required: The PGP message must contain at least one signature; if this is not the case an exception (PGPException) is thrown. A signature verification is executed. ignore: Contained signatures in the PGP message are ignored; no signature verification is executed. no_signature_allowed: The PGP message must not contain a signature; otherwise an exception (PGPException) is thrown.",
+      "sourceType": "org.apache.camel.converter.crypto.springboot.PGPDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/csimple-joor.json b/docs/components/modules/spring-boot/examples/json/csimple-joor.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/csimple-joor.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/csv.json b/docs/components/modules/spring-boot/examples/json/csv.json
new file mode 100644
index 0000000..7f1e29e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/csv.json
@@ -0,0 +1,219 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.csv",
+      "type": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.csv.allow-missing-column-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow missing column names.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.capture-header-record",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should capture the header record and store it in the message header",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.comment-marker",
+      "type": "java.lang.String",
+      "description": "Sets the comment marker of the reference format.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.comment-marker-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables the comment marker of the reference format.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.csv.delimiter",
+      "type": "java.lang.String",
+      "description": "Sets the delimiter to use. The default value is , (comma)",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the csv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.escape",
+      "type": "java.lang.String",
+      "description": "Sets the escape character to use",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.escape-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Use for disabling using escape character",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.format-name",
+      "type": "java.lang.String",
+      "description": "The name of the format to use, the default value is CSVFormat.DEFAULT",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.format-ref",
+      "type": "java.lang.String",
+      "description": "The reference format to use, it will be updated with the other format options, the default value is CSVFormat.DEFAULT",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.header",
+      "type": "java.util.List<java.lang.String>",
+      "description": "To configure the CSV headers",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.header-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Use for disabling headers",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.ignore-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore empty lines.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.ignore-header-case",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether or not to ignore case when accessing header names.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.ignore-surrounding-spaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore surrounding spaces",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.marshaller-factory-ref",
+      "type": "java.lang.String",
+      "description": "Sets the implementation of the CsvMarshallerFactory interface which is able to customize marshalling\/unmarshalling behavior by extending CsvMarshaller or creating it from scratch.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.null-string",
+      "type": "java.lang.String",
+      "description": "Sets the null string",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.null-string-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Used to disable null strings",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.quote",
+      "type": "java.lang.String",
+      "description": "Sets the quote which by default is",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.quote-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Used to disable quotes",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.quote-mode",
+      "type": "java.lang.String",
+      "description": "Sets the quote mode",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.record-converter-ref",
+      "type": "java.lang.String",
+      "description": "Refers to a custom CsvRecordConverter to lookup from the registry to use.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.record-separator",
+      "type": "java.lang.String",
+      "description": "Sets the record separator (aka new line) which by default is new line characters (CRLF)",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.record-separator-disabled",
+      "type": "java.lang.String",
+      "description": "Used for disabling record separator",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.csv.skip-header-record",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip the header record in the output",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.trailing-delimiter",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether or not to add a trailing delimiter.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.trim",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether or not to trim leading and trailing blanks.",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.use-maps",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps (HashMap)for the lines values instead of lists. It requires to have header (either defined or collected).",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.csv.use-ordered-maps",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce ordered maps (LinkedHashMap) for the lines values instead of lists. It requires to have header (either defined or collected).",
+      "sourceType": "org.apache.camel.dataformat.csv.springboot.CsvDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cxf-transport.json b/docs/components/modules/spring-boot/examples/json/cxf-transport.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cxf-transport.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/cxf.json b/docs/components/modules/spring-boot/examples/json/cxf.json
new file mode 100644
index 0000000..fc6a3a0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/cxf.json
@@ -0,0 +1,125 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.cxf",
+      "type": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.cxfrs",
+      "type": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxfrs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.cxf.allow-streaming",
+      "type": "java.lang.Boolean",
+      "description": "This option controls whether the CXF component, when running in PAYLOAD mode, will DOM parse the incoming messages into DOM Elements or keep the payload as a javax.xml.transform.Source object that would allow streaming in some cases.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cxf.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cxf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cxf component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxf.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxf.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.cxf.springboot.CxfComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxfrs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.cxfrs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxfrs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.cxfrs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the cxfrs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxfrs.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.cxfrs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.cxfrs.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.cxf.jaxrs.springboot.CxfRsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/dataformat.json b/docs/components/modules/spring-boot/examples/json/dataformat.json
new file mode 100644
index 0000000..8e7e310
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/dataformat.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dataformat",
+      "type": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataformat.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dataformat.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dataformat.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dataformat.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dataformat component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataformat.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dataformat.springboot.DataFormatComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/dataset.json b/docs/components/modules/spring-boot/examples/json/dataset.json
new file mode 100644
index 0000000..07938f3
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/dataset.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dataset",
+      "type": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test",
+      "type": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.dataset.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dataset-test.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dataset-test.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dataset-test.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dataset-test component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset-test.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset-test.log",
+      "type": "java.lang.Boolean",
+      "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetTestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dataset.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dataset.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dataset component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dataset.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dataset.log",
+      "type": "java.lang.Boolean",
+      "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class.",
+      "sourceType": "org.apache.camel.component.dataset.springboot.DataSetComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/datasonnet.json b/docs/components/modules/spring-boot/examples/json/datasonnet.json
new file mode 100644
index 0000000..0e068af
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/datasonnet.json
@@ -0,0 +1,48 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.datasonnet",
+      "type": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.datasonnet.body-media-type",
+      "type": "java.lang.String",
+      "description": "The String representation of the message's body MediaType",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.datasonnet.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the datasonnet language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.output-media-type",
+      "type": "java.lang.String",
+      "description": "The String representation of the MediaType to output",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.datasonnet.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.datasonnet.springboot.DatasonnetLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/debezium-common.json b/docs/components/modules/spring-boot/examples/json/debezium-common.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/debezium-common.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/debezium-mongodb.json b/docs/components/modules/spring-boot/examples/json/debezium-mongodb.json
new file mode 100644
index 0000000..9479142
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/debezium-mongodb.json
@@ -0,0 +1,418 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-mongodb",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-mongodb.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mongodb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.collection-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the collection names for which changes are to be excluded",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.collection-include-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the collection names for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MongoDbConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.connect-backoff-initial-delay-ms",
+      "type": "java.lang.Long",
+      "description": "The initial delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available, given in milliseconds. Defaults to 1 second (1,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.connect-backoff-max-delay-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum delay when trying to reconnect to a primary after a connection cannot be made or when no primary is available, given in milliseconds. Defaults to 120 second (120,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.connect-max-attempts",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of failed connection attempts to a replica set primary before an exception occurs and task is aborted. Defaults to 16, which with the defaults for 'connect.backoff.initial.delay.ms' and 'connect.backoff.max.delay.ms' results in just over 20 minutes of attempts before failing.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 16
+    },
+    {
+      "name": "camel.component.debezium-mongodb.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.cursor-max-await-time-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum processing time in milliseconds to wait for the oplog cursor to process a single poll request. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.database-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the database names for which changes are to be excluded",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.database-include-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the database names for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-mongodb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.field-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of the fully-qualified names of fields that should be excluded from change event message values",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.field-renames",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of the fully-qualified replacements of fields that should be used to rename fields in change event message values. Fully-qualified replacements for fields are of the form databaseName.collectionName.fieldName.nestedFieldName:newNestedFieldName, where databaseName and collectionName may contain the wildcard () which matches any characters, the colon character (:) is used to determine rename mapping of field.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-mongodb.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-mongodb.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-authsource",
+      "type": "java.lang.String",
+      "description": "Database containing user credentials.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "admin"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-connect-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The connection timeout, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-hosts",
+      "type": "java.lang.String",
+      "description": "The hostname and port pairs (in the form 'host' or 'host:port') of the MongoDB server(s) in the replica set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-members-auto-discover",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the addresses in 'hosts' are seeds that should be used to discover all members of the cluster or replica set ('true'), or whether the address(es) in 'hosts' should be used as is ('false'). The default is 'true'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the MongoDB replica set or cluster and all recorded offsets, andthat is used as a prefix for all schemas and topics. Each distinct MongoDB installation should have a separate namespace and monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-password",
+      "type": "java.lang.String",
+      "description": "Password to be used when connecting to MongoDB, if necessary.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval for looking for new, removed, or changed replica sets, given in milliseconds. Defaults to 30 seconds (30,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-server-selection-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The server selection timeout, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-socket-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The socket timeout, given in milliseconds. Defaults to 0 ms. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-ssl-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Should connector use SSL to connect to MongoDB instances",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-ssl-invalid-hostname-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether invalid host names are allowed when using SSL. If true the connection will not prevent man-in-the-middle attacks",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.mongodb-user",
+      "type": "java.lang.String",
+      "description": "Database user for connecting to MongoDB, if necessary.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-mongodb.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mongodb.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mongodb.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-collection-filter-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of ., for which the initial snapshot may be a subset of data present in the data source. The subset would be defined by mongodb filter query specified as value for property snapshot.collection.filter.override..",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-mongodb.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should always perform an initial sync when required; 'never' to specify the connector should never perform an initial sync",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-mongodb.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMongodbComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/debezium-mysql.json b/docs/components/modules/spring-boot/examples/json/debezium-mysql.json
new file mode 100644
index 0000000..e7f4aa8
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/debezium-mysql.json
@@ -0,0 +1,647 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-mysql",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-mysql.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.bigint-unsigned-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how BIGINT UNSIGNED columns should be represented in change events, including:'precise' uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'long' (the default) represents values using Java's 'long', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "long"
+    },
+    {
+      "name": "camel.component.debezium-mysql.binary-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "bytes"
+    },
+    {
+      "name": "camel.component.debezium-mysql.binlog-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The size of a look-ahead buffer used by the binlog reader to decide whether the transaction in progress is going to be committed or rolled back. Use 0 to disable look-ahead buffering. Defaults to 0 (i.e. buffering is disabled).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-blacklist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-exclude-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-include-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.column-whitelist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events (deprecated, use column.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.MySqlConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.connect-keep-alive",
+      "type": "java.lang.Boolean",
+      "description": "Whether a separate thread should be used to ensure the connection is kept alive.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.connect-keep-alive-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval for connection checking if keep alive thread is used, given in milliseconds Defaults to 1 minute (60,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-mysql.connect-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "Maximum time to wait after trying to connect to the database before timing out, given in milliseconds. Defaults to 30 seconds (30,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.debezium-mysql.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match database names to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history",
+      "type": "java.lang.String",
+      "description": "The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "io.debezium.relational.history.FileDatabaseHistory"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-bootstrap-servers",
+      "type": "java.lang.String",
+      "description": "A list of host\/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-recovery-attempts",
+      "type": "java.lang.Integer",
+      "description": "The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-recovery-poll-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-kafka-topic",
+      "type": "java.lang.String",
+      "description": "The name of the topic for the database schema history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-skip-unparseable-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls the action Debezium will take when it meets a DDL statement in binlog, that it cannot parse.By default the connector will stop operating but by changing the setting it can ignore the statements which it cannot parse. If skipping is enabled then Debezium can miss metadata changes.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-store-only-captured-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a captured table will be stored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-history-store-only-monitored-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a monitored table will be stored (deprecated, use database.history.store.only.captured.tables.ddl instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-hostname",
+      "type": "java.lang.String",
+      "description": "Resolvable hostname or IP address of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-include-list",
+      "type": "java.lang.String",
+      "description": "The databases for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-initial-statements",
+      "type": "java.lang.String",
+      "description": "A semicolon separated list of SQL statements to be executed when a JDBC connection (not binlog reading connection) to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configuration of session parameters only,but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-jdbc-driver",
+      "type": "java.lang.String",
+      "description": "JDBC Driver class name used to connect to the MySQL database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "class com.mysql.cj.jdbc.Driver"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-password",
+      "type": "java.lang.String",
+      "description": "Password of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-port",
+      "type": "java.lang.Integer",
+      "description": "Port of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 3306
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-server-id",
+      "type": "java.lang.Long",
+      "description": "A numeric ID of this database client, which must be unique across all currently-running database processes in the cluster. This connector joins the MySQL database cluster as another server (with this unique ID) so it can read the binlog. By default, a random number is generated between 5400 and 6400.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-server-id-offset",
+      "type": "java.lang.Long",
+      "description": "Only relevant if parallel snapshotting is configured. During parallel snapshotting, multiple (4) connections open to the database client, and they each need their own unique connection ID. This offset is used to generate those IDs from the base configured cluster ID.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-server-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-keystore",
+      "type": "java.lang.String",
+      "description": "Location of the Java keystore file containing an application process's own certificate and private key.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-keystore-password",
+      "type": "java.lang.String",
+      "description": "Password to access the private key from the keystore file specified by 'ssl.keystore' configuration property or the 'javax.net.ssl.keyStore' system or JVM property. This password is used to unlock the keystore file (store password), and to decrypt the private key stored in the keystore (key password).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-mode",
+      "type": "java.lang.String",
+      "description": "Whether to use an encrypted connection to MySQL. Options include'disabled' (the default) to use an unencrypted connection; 'preferred' to establish a secure (encrypted) connection if the server supports secure connections, but fall back to an unencrypted connection otherwise; 'required' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify_ca' like 'required' but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates, or fail if no valid matching CA certificates are found; or'verify_identity' like 'verify_ca' but additionally verify that the server certificate matches the host to which the connection is attempted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "disabled"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-truststore",
+      "type": "java.lang.String",
+      "description": "Location of the Java truststore file containing the collection of CA certificates trusted by this application process (trust store).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-ssl-truststore-password",
+      "type": "java.lang.String",
+      "description": "Password to unlock the keystore file (store password) specified by 'ssl.trustore' configuration property or the 'javax.net.ssl.trustStore' system or JVM property.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.database-user",
+      "type": "java.lang.String",
+      "description": "Name of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.datatype-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.decimal-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "precise"
+    },
+    {
+      "name": "camel.component.debezium-mysql.enable-time-adjuster",
+      "type": "java.lang.Boolean",
+      "description": "MySQL allows user to insert year value as either 2-digit or 4-digit. In case of two digit the value is automatically mapped into 1970 - 2069.false - delegates the implicit conversion to the databasetrue - (the default) Debezium makes the conversion",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-mysql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.event-deserialization-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during deserialization of binlog events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mysql.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mysql.gtid-source-excludes",
+      "type": "java.lang.String",
+      "description": "The source UUIDs used to exclude GTID ranges when determine the starting position in the MySQL server's binlog.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.gtid-source-filter-dml-events",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, we will only produce DML events into Kafka for transactions that were written on mysql servers with UUIDs matching the filters defined by the gtid.source.includes or gtid.source.excludes configuration options, if they are specified.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.gtid-source-includes",
+      "type": "java.lang.String",
+      "description": "The source UUIDs used to include GTID ranges when determine the starting position in the MySQL server's binlog.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-mysql.include-query",
+      "type": "java.lang.Boolean",
+      "description": "Whether the connector should include the original SQL query that generated the change event. Note: This option requires MySQL be configured with the binlog_rows_query_log_events option set to ON. Query will not be present for events generated from snapshot. WARNING: Enabling this option may expose tables or fields explicitly blacklisted or masked by including the original SQL statement in the change event. For this reason the default value is 'false'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.include-schema-changes",
+      "type": "java.lang.Boolean",
+      "description": "Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.inconsistent-schema-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binlog events that belong to a table missing from internal schema representation (i.e. internal representation is not consistent with database) should be handled, including:'fail' (the default) an exception indicating the problematic event and its binlog position is raised, causing the connector to be stopped; 'warn' the problematic event and its binlog position will be logged and the event will be skipped;'skip' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-mysql.incremental-snapshot-chunk-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of chunk for incremental snapshotting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.debezium-mysql.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mysql.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-mysql.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-mysql.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-mysql.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.message-key-columns",
+      "type": "java.lang.String",
+      "description": "A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.min-row-count-to-stream-results",
+      "type": "java.lang.Integer",
+      "description": "The number of rows a table must contain to stream results rather than pull all into memory during snapshots. Defaults to 1,000. Use 0 to stream all results and completely avoid checking the size of each table.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-mysql.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mysql.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-mysql.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-lock-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-locking-mode",
+      "type": "java.lang.String",
+      "description": "Controls how long the connector holds onto the global read lock while it is performing a snapshot. The default is 'minimal', which means the connector holds the global read lock (and thus prevents any updates) for just the initial portion of the snapshot while the database schemas and other metadata are being read. The remaining work in a snapshot involves selecting all rows from each table, and this can be done using the snapshot process' REPEATABLE READ transaction even when the lock is no longer held and other operations are updating the database. However, in some cases it may be desirable to block all writes for the entire duration of the snapshot; in such cases set this property to 'extended'. Using a value of 'none' will prevent the connector from acquiring any table locks during the snapshot process. This mode can only be used in combination with snapshot.mode values of 'schema_only' or 'schema_only_recovery' and is only safe to use if no schema changes are happening while the snapshot is taken.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "minimal"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'when_needed' to specify that the connector run a snapshot upon startup whenever it deems it necessary; 'schema_only' to only take a snapshot of the schema (table structures) but no actual data; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally read the binlog; and'never' to specify the connector should never run a snapshot and that upon first startup the connector should read from the beginning of the binlog. The 'never' mode should be used with care, and only when the binlog is known to contain all history.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-new-tables",
+      "type": "java.lang.String",
+      "description": "BETA FEATURE: On connector restart, the connector will check if there have been any new tables added to the configuration, and snapshot them. There is presently only two options:'off': Default behavior. Do not snapshot new tables.'parallel': The snapshot of the new tables will occur in parallel to the continued binlog reading of the old tables. When the snapshot completes, an independent binlog reader will begin reading the events for the new tables until it catches up to present time. At this point, both old and new binlog readers will be momentarily halted and new binlog reader will start that will read the binlog for all configured tables. The parallel binlog reader will have a configured server id of 10000 the primary binlog reader's server id.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "off"
+    },
+    {
+      "name": "camel.component.debezium-mysql.snapshot-select-statement-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-blacklist",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-ignore-builtin",
+      "type": "java.lang.Boolean",
+      "description": "Flag specifying whether built-in tables should be ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-include-list",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.table-whitelist",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured (deprecated, use table.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-mysql.time-precision-mode",
+      "type": "java.lang.String",
+      "description": "Time, date and timestamps can be represented with different kinds of precisions, including:'adaptive_time_microseconds': the precision of date and timestamp values is based the database column's precision; but time fields always use microseconds precision;'connect': always represents time, date and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": "adaptive_time_microseconds"
+    },
+    {
+      "name": "camel.component.debezium-mysql.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumMySqlComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/debezium-postgres.json b/docs/components/modules/spring-boot/examples/json/debezium-postgres.json
new file mode 100644
index 0000000..82d9e5a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/debezium-postgres.json
@@ -0,0 +1,617 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-postgres",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-postgres.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-postgres.binary-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "bytes"
+    },
+    {
+      "name": "camel.component.debezium-postgres.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-blacklist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-exclude-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-include-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.column-whitelist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events (deprecated, use column.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.PostgresConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-dbname",
+      "type": "java.lang.String",
+      "description": "The name of the database from which the connector should capture changes",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-hostname",
+      "type": "java.lang.String",
+      "description": "Resolvable hostname or IP address of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-initial-statements",
+      "type": "java.lang.String",
+      "description": "A semicolon separated list of SQL statements to be executed when a JDBC connection to the database is established. Note that the connector may establish JDBC connections at its own discretion, so this should typically be used for configurationof session parameters only, but not for executing DML statements. Use doubled semicolon (';;') to use a semicolon as a character and not as a delimiter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-password",
+      "type": "java.lang.String",
+      "description": "Password of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-port",
+      "type": "java.lang.Integer",
+      "description": "Port of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 5432
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-server-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslcert",
+      "type": "java.lang.String",
+      "description": "File containing the SSL Certificate for the client. See the Postgres SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslfactory",
+      "type": "java.lang.String",
+      "description": "A name of class to that creates SSL Sockets. Use org.postgresql.ssl.NonValidatingFactory to disable SSL validation in development environments",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslkey",
+      "type": "java.lang.String",
+      "description": "File containing the SSL private key for the client. See the Postgres SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslmode",
+      "type": "java.lang.String",
+      "description": "Whether to use an encrypted connection to Postgres. Options include'disable' (the default) to use an unencrypted connection; 'require' to use a secure (encrypted) connection, and fail if one cannot be established; 'verify-ca' like 'required' but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates, or fail if no valid matching CA certificates are found; or'verify-full' like 'verify-ca' but additionally verify that the server certificate matches the host to which the connection is attempted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "disable"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslpassword",
+      "type": "java.lang.String",
+      "description": "Password to access the client private key from the file specified by 'database.sslkey'. See the Postgres SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-sslrootcert",
+      "type": "java.lang.String",
+      "description": "File containing the root certificate(s) against which the server is validated. See the Postgres JDBC SSL docs for further information",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-tcpkeepalive",
+      "type": "java.lang.Boolean",
+      "description": "Enable or disable TCP keep-alive probe to avoid dropping TCP connection",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-postgres.database-user",
+      "type": "java.lang.String",
+      "description": "Name of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.datatype-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.decimal-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "precise"
+    },
+    {
+      "name": "camel.component.debezium-postgres.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-postgres component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-postgres.heartbeat-action-query",
+      "type": "java.lang.String",
+      "description": "The query executed with every heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-postgres.hstore-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how HSTORE columns should be represented in change events, including:'json' represents values as string-ified JSON (default)'map' represents values as a key\/value map",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "json"
+    },
+    {
+      "name": "camel.component.debezium-postgres.include-unknown-datatypes",
+      "type": "java.lang.Boolean",
+      "description": "Specify whether the fields of data type not supported by Debezium should be processed:'false' (the default) omits the fields; 'true' converts the field into an implementation dependent binary representation.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.incremental-snapshot-chunk-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of chunk for incremental snapshotting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.debezium-postgres.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-postgres.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-postgres.interval-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how INTERVAL columns should be represented in change events, including:'string' represents values as an exact ISO formatted string'numeric' (default) represents values using the inexact conversion into microseconds",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "numeric"
+    },
+    {
+      "name": "camel.component.debezium-postgres.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-postgres.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-postgres.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.message-key-columns",
+      "type": "java.lang.String",
+      "description": "A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.plugin-name",
+      "type": "java.lang.String",
+      "description": "The name of the Postgres logical decoding plugin installed on the server. Supported values are 'decoderbufs', 'wal2json', 'pgoutput', 'wal2json_streaming', 'wal2json_rds' and 'wal2json_rds_streaming'. Defaults to 'decoderbufs'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "decoderbufs"
+    },
+    {
+      "name": "camel.component.debezium-postgres.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-postgres.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.publication-autocreate-mode",
+      "type": "java.lang.String",
+      "description": "Applies only when streaming changes using pgoutput.Determine how creation of a publication should work, the default is all_tables.DISABLED - The connector will not attempt to create a publication at all. The expectation is that the user has created the publication up-front. If the publication isn't found to exist upon startup, the connector will throw an exception and stop.ALL_TABLES - If no publication exists, the connector will create a new publication for all tables. Note this requires that the configured user has access. If the publication already exists, it will be used. i.e CREATE PUBLICATION FOR ALL TABLES;FILTERED - If no publication exists, the connector will create a new publication for all those tables matchingthe current filter configuration (see table\/database include\/exclude list properties). If the publication already exists, it will be used. i.e CREATE PUBLICATION FOR TABLE",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "all_tables"
+    },
+    {
+      "name": "camel.component.debezium-postgres.publication-name",
+      "type": "java.lang.String",
+      "description": "The name of the Postgres 10 publication used for streaming changes from a plugin.Defaults to 'dbz_publication'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "dbz_publication"
+    },
+    {
+      "name": "camel.component.debezium-postgres.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-blacklist",
+      "type": "java.lang.String",
+      "description": "The schemas for which events must not be captured (deprecated, use schema.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-exclude-list",
+      "type": "java.lang.String",
+      "description": "The schemas for which events must not be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-include-list",
+      "type": "java.lang.String",
+      "description": "The schemas for which events should be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-refresh-mode",
+      "type": "java.lang.String",
+      "description": "Specify the conditions that trigger a refresh of the in-memory schema for a table. 'columns_diff' (the default) is the safest mode, ensuring the in-memory schema stays in-sync with the database table's schema at all times. 'columns_diff_exclude_unchanged_toast' instructs the connector to refresh the in-memory schema cache if there is a discrepancy between it and the schema derived from the incoming message, unless unchanged TOASTable data fully accounts for the discrepancy. This setting can improve connector performance significantly if there are frequently-updated tables that have TOASTed data that are rarely part of these updates. However, it is possible for the in-memory schema to become outdated if TOASTable columns are dropped from the table.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "columns_diff"
+    },
+    {
+      "name": "camel.component.debezium-postgres.schema-whitelist",
+      "type": "java.lang.String",
+      "description": "The schemas for which events should be captured (deprecated, use schema.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-drop-on-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to drop the logical replication slot when the connector finishes orderlyBy default the replication is kept so that on restart progress can resume from the last recorded location",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-max-retries",
+      "type": "java.lang.Integer",
+      "description": "How many times to retry connecting to a replication slot when an attempt fails.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 6
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-name",
+      "type": "java.lang.String",
+      "description": "The name of the Postgres logical decoding slot created for streaming changes from a plugin.Defaults to 'debezium",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "debezium"
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-retry-delay-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait between retry attempts when the connector fails to connect to a replication slot, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.slot-stream-params",
+      "type": "java.lang.String",
+      "description": "Any optional parameters used by logical decoding plugin. Semi-colon separated. E.g. 'add-tables=public.table,public.table2;include-lsn=true'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-custom-class",
+      "type": "java.lang.String",
+      "description": "When 'snapshot.mode' is set as custom, this setting must be set to specify a fully qualified class name to load (via the default class loader).This class must implement the 'Snapshotter' interface and is called on each app boot to determine whether to do a snapshot and how to build queries.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-lock-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'always' to specify that the connector run a snapshot each time it starts up; 'initial' (the default) to specify the connector can run a snapshot only when no offsets are available for the logical server name; 'initial_only' same as 'initial' except the connector should stop after completing the snapshot and before it would normally start emitting changes;'never' to specify the connector should never run a snapshot and that upon first startup the connector should read from the last position (LSN) recorded by the server; and'exported' deprecated, use 'initial' instead; 'custom' to specify a custom class with 'snapshot.custom_class' which will be loaded and used to determine the snapshot, see docs for more details.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-postgres.snapshot-select-statement-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-postgres.status-update-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Frequency for sending replication connection status updates to the server, given in milliseconds. Defaults to 10 seconds (10,000 ms). The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-blacklist",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-ignore-builtin",
+      "type": "java.lang.Boolean",
+      "description": "Flag specifying whether built-in tables should be ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-include-list",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.table-whitelist",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured (deprecated, use table.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-postgres.time-precision-mode",
+      "type": "java.lang.String",
+      "description": "Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision .",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "adaptive"
+    },
+    {
+      "name": "camel.component.debezium-postgres.toasted-value-placeholder",
+      "type": "java.lang.String",
+      "description": "Specify the constant that will be provided by Debezium to indicate that the original value is a toasted value not provided by the database. If starts with 'hex:' prefix it is expected that the rest of the string repesents hexadecimally encoded octets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "__debezium_unavailable_value"
+    },
+    {
+      "name": "camel.component.debezium-postgres.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-postgres.truncate-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how TRUNCATE operations are handled for change events (supported only on pg11 pgoutput plugin), including: 'skip' to skip \/ ignore TRUNCATE events (default), 'include' to handle and include TRUNCATE events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": "skip"
+    },
+    {
+      "name": "camel.component.debezium-postgres.xmin-fetch-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Specify how often (in ms) the xmin will be fetched from the replication slot. This xmin value is exposed by the slot which gives a lower bound of where a new replication slot could start from. The lower the value, the more likely this value is to be the current 'true' value, but the bigger the performance cost. The bigger the value, the less likely this value is to be the current 'true' value, but the lower the performance penalty. The default is set to 0 ms, which disables tracking xmin. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumPostgresComponentConfiguration",
+      "defaultValue": 0
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/debezium-sqlserver.json b/docs/components/modules/spring-boot/examples/json/debezium-sqlserver.json
new file mode 100644
index 0000000..ad4ed76
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/debezium-sqlserver.json
@@ -0,0 +1,507 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.debezium-sqlserver",
+      "type": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.debezium-sqlserver.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional properties for debezium components in case they can't be set directly on the camel configurations (e.g: setting Kafka Connect properties needed by Debezium engine, for example setting KafkaOffsetBackingStore), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.binary-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how binary (blob, binary, etc.) columns should be represented in change events, including:'bytes' represents binary data as byte array (default)'base64' represents binary data as base64-encoded string'hex' represents binary data as hex-encoded (base16) string",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "bytes"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-blacklist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events (deprecated, use column.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-exclude-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to exclude from change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-include-list",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching fully-qualified names of columns that adds the columns original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.column-whitelist",
+      "type": "java.lang.String",
+      "description": "Regular expressions matching columns to include in change events (deprecated, use column.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.configuration",
+      "type": "org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration",
+      "description": "Allow pre-configured Configurations to be set. The option is a org.apache.camel.component.debezium.configuration.SqlServerConnectorEmbeddedDebeziumConfiguration type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.converters",
+      "type": "java.lang.String",
+      "description": "Optional list of custom converters that would be used instead of default ones. The converters are defined using '.type' config option and configured using options '.'",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-dbname",
+      "type": "java.lang.String",
+      "description": "The name of the database from which the connector should capture changes",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history",
+      "type": "java.lang.String",
+      "description": "The name of the DatabaseHistory class that should be used to store and recover database schema changes. The configuration properties for the history are prefixed with the 'database.history.' string.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "io.debezium.relational.history.FileDatabaseHistory"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-file-filename",
+      "type": "java.lang.String",
+      "description": "The path to the file that will be used to record the database history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-bootstrap-servers",
+      "type": "java.lang.String",
+      "description": "A list of host\/port pairs that the connector will use for establishing the initial connection to the Kafka cluster for retrieving database schema history previously stored by the connector. This should point to the same Kafka cluster used by the Kafka Connect process.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-recovery-attempts",
+      "type": "java.lang.Integer",
+      "description": "The number of attempts in a row that no data are returned from Kafka before recover completes. The maximum amount of time to wait after receiving no data is (recovery.attempts) x (recovery.poll.interval.ms).",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-recovery-poll-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The number of milliseconds to wait while polling for persisted data during recovery. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-kafka-topic",
+      "type": "java.lang.String",
+      "description": "The name of the topic for the database schema history",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-skip-unparseable-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls the action Debezium will take when it meets a DDL statement in binlog, that it cannot parse.By default the connector will stop operating but by changing the setting it can ignore the statements which it cannot parse. If skipping is enabled then Debezium can miss metadata changes.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-store-only-captured-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a captured table will be stored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-history-store-only-monitored-tables-ddl",
+      "type": "java.lang.Boolean",
+      "description": "Controls what DDL will Debezium store in database history. By default (false) Debezium will store all incoming DDL statements. If set to true, then only DDL that manipulates a monitored table will be stored (deprecated, use database.history.store.only.captured.tables.ddl instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-hostname",
+      "type": "java.lang.String",
+      "description": "Resolvable hostname or IP address of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-instance",
+      "type": "java.lang.String",
+      "description": "The SQL Server instance name",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-names",
+      "type": "java.lang.String",
+      "description": "The names of the databases from which the connector should capture changes",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-password",
+      "type": "java.lang.String",
+      "description": "Password of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-port",
+      "type": "java.lang.Integer",
+      "description": "Port of the database server.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 1433
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-server-name",
+      "type": "java.lang.String",
+      "description": "Unique name that identifies the database server and all recorded offsets, and that is used as a prefix for all schemas and topics. Each distinct installation should have a separate namespace and be monitored by at most one Debezium connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.database-user",
+      "type": "java.lang.String",
+      "description": "Name of the database user to be used when connecting to the database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.datatype-propagate-source-type",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions matching the database-specific data type names that adds the data type's original type and original length as parameters to the corresponding field schemas in the emitted change records.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.decimal-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how DECIMAL and NUMERIC columns should be represented in change events, including:'precise' (the default) uses java.math.BigDecimal to represent values, which are encoded in the change events using a binary representation and Kafka Connect's 'org.apache.kafka.connect.data.Decimal' type; 'string' uses string to represent values; 'double' represents values using Java's 'double', which may not offer the precision but will be far easier to use in consumers.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "precise"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the debezium-sqlserver component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.event-processing-failure-handling-mode",
+      "type": "java.lang.String",
+      "description": "Specify how failures during processing of events (i.e. when encountering a corrupted event) should be handled, including:'fail' (the default) an exception indicating the problematic event and its position is raised, causing the connector to be stopped; 'warn' the problematic event and its position will be logged and the event will be skipped;'ignore' the problematic event will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "fail"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "Length of an interval in milli-seconds in in which the connector periodically sends heartbeat messages to a heartbeat topic. Use 0 to disable heartbeat messages. Disabled by default. The option is a int type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.heartbeat-topics-prefix",
+      "type": "java.lang.String",
+      "description": "The prefix that is used to name heartbeat topics.Defaults to __debezium-heartbeat.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "__debezium-heartbeat"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.include-schema-changes",
+      "type": "java.lang.Boolean",
+      "description": "Whether the connector should publish changes in the database schema to a Kafka topic with the same name as the database server ID. Each schema change will be recorded using a key that contains the database name and whose value include logical description of the new schema and optionally the DDL statement(s).The default is 'true'. This is independent of how the connector internally records database history.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.internal-key-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize key data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.internal-value-converter",
+      "type": "java.lang.String",
+      "description": "The Converter class that should be used to serialize and deserialize value data for offsets. The default is JSON converter.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.json.JsonConverter"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-batch-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of each batch of source records. Defaults to 2048.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 2048
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-iteration-transactions",
+      "type": "java.lang.Integer",
+      "description": "This property can be used to reduce the connector memory usage footprint when changes are streamed from multiple tables per database.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the queue for change events read from the database log but not yet recorded or forwarded. Defaults to 8192, and should always be larger than the maximum batch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.max-queue-size-in-bytes",
+      "type": "java.lang.Long",
+      "description": "Maximum size of the queue in bytes for change events read from the database log but not yet recorded or forwarded. Defaults to 0. Mean the feature is not enabled",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.message-key-columns",
+      "type": "java.lang.String",
+      "description": "A semicolon-separated list of expressions that match fully-qualified tables and column(s) to be used as message key. Each expression must match the pattern ':',where the table names could be defined as (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on the specific connector,and the key columns are a comma-separated list of columns representing the custom key. For any table without an explicit key configuration the table's primary key column(s) will be used as message key.Example: dbserver1.inventory.orderlines:orderId,orderLineId;dbserver1.inventory.orders:id",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-commit-policy",
+      "type": "java.lang.String",
+      "description": "The name of the Java class of the commit policy. It defines when offsets commit has to be triggered based on the number of events processed and the time elapsed since the last commit. This class must implement the interface 'OffsetCommitPolicy'. The default is a periodic commit policy based upon time intervals.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "io.debezium.embedded.spi.OffsetCommitPolicy.PeriodicCommitOffsetPolicy"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "Maximum number of milliseconds to wait for records to flush and partition offset data to be committed to offset storage before cancelling the process and restoring the offset data to be committed in a future attempt. The default is 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-flush-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Interval at which to try committing offsets. The default is 1 minute. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage",
+      "type": "java.lang.String",
+      "description": "The name of the Java class that is responsible for persistence of connector offsets.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "org.apache.kafka.connect.storage.FileOffsetBackingStore"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-file-name",
+      "type": "java.lang.String",
+      "description": "Path to file where offsets are to be stored. Required when offset.storage is set to the FileOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-partitions",
+      "type": "java.lang.Integer",
+      "description": "The number of partitions used when creating the offset storage topic. Required when offset.storage is set to the 'KafkaOffsetBackingStore'.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-replication-factor",
+      "type": "java.lang.Integer",
+      "description": "Replication factor used when creating the offset storage topic. Required when offset.storage is set to the KafkaOffsetBackingStore",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.offset-storage-topic",
+      "type": "java.lang.String",
+      "description": "The name of the Kafka topic where offsets are to be stored. Required when offset.storage is set to the KafkaOffsetBackingStore.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait for new change events to appear after receiving no events, given in milliseconds. Defaults to 500 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.provide-transaction-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Enables transaction metadata extraction together with event counting",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.query-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while streaming. A value of 0 uses the default JDBC fetch size.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.retriable-restart-connector-wait-ms",
+      "type": "java.lang.Long",
+      "description": "Time to wait before restarting connector after retriable exception occurs. Defaults to 10000ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.sanitize-field-names",
+      "type": "java.lang.Boolean",
+      "description": "Whether field names will be sanitized to Avro naming conventions",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.signal-data-collection",
+      "type": "java.lang.String",
+      "description": "The name of the data collection that is used to send signals\/commands to Debezium. Signaling is disabled when not set.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.skipped-operations",
+      "type": "java.lang.String",
+      "description": "The comma-separated list of operations to skip during streaming, defined as: 'c' for inserts\/create; 'u' for updates; 'd' for deletes. By default, no operations will be skipped.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-delay-ms",
+      "type": "java.lang.Long",
+      "description": "A delay period before a snapshot will begin, given in milliseconds. Defaults to 0 ms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-fetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records that should be loaded into memory while performing a snapshot",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-include-collection-list",
+      "type": "java.lang.String",
+      "description": "this setting must be set to specify a list of tables\/collections whose snapshot must be taken on creating or restarting the connector.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-isolation-mode",
+      "type": "java.lang.String",
+      "description": "Controls which transaction isolation level is used and how long the connector locks the monitored tables. The default is 'repeatable_read', which means that repeatable read isolation level is used. In addition, exclusive locks are taken only during schema snapshot. Using a value of 'exclusive' ensures that the connector holds the exclusive lock (and thus prevents any reads and updates) for all monitored tables during the entire snapshot duration. When 'snapshot' is specified, connector runs the initial snapshot in SNAPSHOT isolation level, which guarantees snapshot consistency. In addition, neither table nor row-level locks are held. When 'read_committed' is specified, connector runs the initial snapshot in READ COMMITTED isolation level. No long-running locks are taken, so that initial snapshot does not prevent other transactions from updating table rows. Snapshot consistency is not guaranteed.In 'read_uncommitted' mode neither table nor row-level locks are acquired, but connector does not guarantee snapshot consistency.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "repeatable_read"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-lock-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum number of millis to wait for table locks at the beginning of a snapshot. If locks cannot be acquired in this time frame, the snapshot will be aborted. Defaults to 10 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-max-threads",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used to perform the snapshot. Defaults to 1.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-mode",
+      "type": "java.lang.String",
+      "description": "The criteria for running a snapshot upon startup of the connector. Options include: 'initial' (the default) to specify the connector should run a snapshot only when no offsets are available for the logical server name; 'schema_only' to specify the connector should run a snapshot of the schema when no offsets are available for the logical server name.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "initial"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.snapshot-select-statement-overrides",
+      "type": "java.lang.String",
+      "description": "This property contains a comma-separated list of fully-qualified tables (DB_NAME.TABLE_NAME) or (SCHEMA_NAME.TABLE_NAME), depending on thespecific connectors. Select statements for the individual tables are specified in further configuration properties, one for each table, identified by the id 'snapshot.select.statement.overrides.DB_NAME.TABLE_NAME' or 'snapshot.select.statement.overrides.SCHEMA_NAME.TABLE_NAME', respectively. The value of those properties is the select statement to use when retrieving data from the specific table during snapshotting. A possible use case for large append-only tables is setting a specific point where to start (resume) snapshotting, in case a previous snapshotting was interrupted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.source-struct-version",
+      "type": "java.lang.String",
+      "description": "A version of the format of the publicly visible source part in the message",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "v2"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.source-timestamp-mode",
+      "type": "java.lang.String",
+      "description": "Configures the criteria of the attached timestamp within the source record (ts_ms).Options include:'commit', (default) the source timestamp is set to the instant where the record was committed in the database'processing', (deprecated) the source timestamp is set to the instant where the record was processed by Debezium.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "commit"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-blacklist",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring (deprecated, use table.exclude.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-exclude-list",
+      "type": "java.lang.String",
+      "description": "A comma-separated list of regular expressions that match the fully-qualified names of tables to be excluded from monitoring",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-ignore-builtin",
+      "type": "java.lang.Boolean",
+      "description": "Flag specifying whether built-in tables should be ignored.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-include-list",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.table-whitelist",
+      "type": "java.lang.String",
+      "description": "The tables for which changes are to be captured (deprecated, use table.include.list instead)",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.time-precision-mode",
+      "type": "java.lang.String",
+      "description": "Time, date, and timestamps can be represented with different kinds of precisions, including:'adaptive' (the default) bases the precision of time, date, and timestamp values on the database column's precision; 'adaptive_time_microseconds' like 'adaptive' mode, but TIME fields always use microseconds precision;'connect' always represents time, date, and timestamp values using Kafka Connect's built-in representations for Time, Date, and Timestamp, which uses millisecond precision regardless of the database columns' precision .",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": "adaptive"
+    },
+    {
+      "name": "camel.component.debezium-sqlserver.tombstones-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Whether delete operations should be represented by a delete event and a subsquenttombstone event (true) or only by a delete event (false). Emitting the tombstone event (the default behavior) allows Kafka to completely delete all events pertaining to the given key once the source record got deleted.",
+      "sourceType": "org.apache.camel.component.debezium.springboot.DebeziumSqlserverComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/digitalocean.json b/docs/components/modules/spring-boot/examples/json/digitalocean.json
new file mode 100644
index 0000000..b829a26
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/digitalocean.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.digitalocean",
+      "type": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.digitalocean.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.digitalocean.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.digitalocean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.digitalocean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the digitalocean component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.digitalocean.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.digitalocean.springboot.DigitalOceanComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/direct.json b/docs/components/modules/spring-boot/examples/json/direct.json
new file mode 100644
index 0000000..d648ea0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/direct.json
@@ -0,0 +1,64 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.direct",
+      "type": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.direct.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct.block",
+      "type": "java.lang.Boolean",
+      "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.direct.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the direct component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct.timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout value to use if block is enabled.",
+      "sourceType": "org.apache.camel.component.direct.springboot.DirectComponentConfiguration",
+      "defaultValue": 30000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/directvm.json b/docs/components/modules/spring-boot/examples/json/directvm.json
new file mode 100644
index 0000000..1e4b408
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/directvm.json
@@ -0,0 +1,77 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.direct-vm",
+      "type": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct-vm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.direct-vm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct-vm.block",
+      "type": "java.lang.Boolean",
+      "description": "If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct-vm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct-vm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.direct-vm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the direct-vm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct-vm.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.direct-vm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.direct-vm.propagate-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to propagate or not properties from the producer side to the consumer side, and vice versa. Default value: true.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.direct-vm.timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout value to use if block is enabled.",
+      "sourceType": "org.apache.camel.component.directvm.springboot.DirectVmComponentConfiguration",
+      "defaultValue": 30000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/disruptor.json b/docs/components/modules/spring-boot/examples/json/disruptor.json
new file mode 100644
index 0000000..f3fbb61
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/disruptor.json
@@ -0,0 +1,173 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.disruptor",
+      "type": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm",
+      "type": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.disruptor.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.disruptor-vm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor-vm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor-vm.buffer-size",
+      "type": "java.lang.Integer",
+      "description": "To configure the ring buffer size",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.disruptor-vm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for block when full The default value is true.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "To configure the default number of concurrent consumers",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-multiple-consumers",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for multiple consumers",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-producer-type",
+      "type": "org.apache.camel.component.disruptor.DisruptorProducerType",
+      "description": "To configure the default value for DisruptorProducerType The default value is Multi.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.default-wait-strategy",
+      "type": "org.apache.camel.component.disruptor.DisruptorWaitStrategy",
+      "description": "To configure the default value for DisruptorWaitStrategy The default value is Blocking.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the disruptor-vm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor-vm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.disruptor.vm.springboot.DisruptorVmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor.buffer-size",
+      "type": "java.lang.Integer",
+      "description": "To configure the ring buffer size",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.disruptor.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.disruptor.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for block when full The default value is true.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.disruptor.default-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "To configure the default number of concurrent consumers",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.disruptor.default-multiple-consumers",
+      "type": "java.lang.Boolean",
+      "description": "To configure the default value for multiple consumers",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.disruptor.default-producer-type",
+      "type": "org.apache.camel.component.disruptor.DisruptorProducerType",
+      "description": "To configure the default value for DisruptorProducerType The default value is Multi.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor.default-wait-strategy",
+      "type": "org.apache.camel.component.disruptor.DisruptorWaitStrategy",
+      "description": "To configure the default value for DisruptorWaitStrategy The default value is Blocking.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the disruptor component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.disruptor.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.disruptor.springboot.DisruptorComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/djl.json b/docs/components/modules/spring-boot/examples/json/djl.json
new file mode 100644
index 0000000..594392e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/djl.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.djl",
+      "type": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.djl.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.djl.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.djl.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.djl.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the djl component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.djl.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.djl.springboot.DJLComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/dns.json b/docs/components/modules/spring-boot/examples/json/dns.json
new file mode 100644
index 0000000..7138f40
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/dns.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dns",
+      "type": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dns.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dns.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dns.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dns.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dns component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dns.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dns.springboot.DnsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/docker.json b/docs/components/modules/spring-boot/examples/json/docker.json
new file mode 100644
index 0000000..ed76042
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/docker.json
@@ -0,0 +1,169 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.docker",
+      "type": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.docker.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.docker.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.cert-path",
+      "type": "java.lang.String",
+      "description": "Location containing the SSL certificate chain",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.cmd-exec-factory",
+      "type": "java.lang.String",
+      "description": "The fully qualified class name of the DockerCmdExecFactory implementation to use",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": "com.github.dockerjava.netty.NettyDockerCmdExecFactory"
+    },
+    {
+      "name": "camel.component.docker.configuration",
+      "type": "org.apache.camel.component.docker.DockerConfiguration",
+      "description": "To use the shared docker configuration. The option is a org.apache.camel.component.docker.DockerConfiguration type.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.docker.email",
+      "type": "java.lang.String",
+      "description": "Email address associated with the user",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the docker component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.follow-redirect-filter",
+      "type": "java.lang.Boolean",
+      "description": "Whether to follow redirect filter",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.host",
+      "type": "java.lang.String",
+      "description": "Docker host",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": "localhost"
+    },
+    {
+      "name": "camel.component.docker.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.logging-filter",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use logging filter",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.max-per-route-connections",
+      "type": "java.lang.Integer",
+      "description": "Maximum route connections",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.docker.max-total-connections",
+      "type": "java.lang.Integer",
+      "description": "Maximum total connections",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.docker.parameters",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Additional configuration parameters as key\/value pairs",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.password",
+      "type": "java.lang.String",
+      "description": "Password to authenticate with",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.port",
+      "type": "java.lang.Integer",
+      "description": "Docker port",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": 2375
+    },
+    {
+      "name": "camel.component.docker.request-timeout",
+      "type": "java.lang.Integer",
+      "description": "Request timeout for response (in seconds)",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.docker.secure",
+      "type": "java.lang.Boolean",
+      "description": "Use HTTPS communication",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.server-address",
+      "type": "java.lang.String",
+      "description": "Server address for docker registry.",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": "https:\/\/index.docker.io\/v1\/"
+    },
+    {
+      "name": "camel.component.docker.socket",
+      "type": "java.lang.Boolean",
+      "description": "Socket connection mode",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.docker.tls-verify",
+      "type": "java.lang.Boolean",
+      "description": "Check TLS",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.docker.username",
+      "type": "java.lang.String",
+      "description": "User name to authenticate with",
+      "sourceType": "org.apache.camel.component.docker.springboot.DockerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/dozer.json b/docs/components/modules/spring-boot/examples/json/dozer.json
new file mode 100644
index 0000000..49e0be2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/dozer.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dozer",
+      "type": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dozer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dozer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dozer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dozer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dozer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dozer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dozer.springboot.DozerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/drill.json b/docs/components/modules/spring-boot/examples/json/drill.json
new file mode 100644
index 0000000..6cd291f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/drill.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.drill",
+      "type": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration"
+    },
+    {
+      "name": "camel.component.drill.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.drill.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.drill.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.drill.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the drill component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration"
+    },
+    {
+      "name": "camel.component.drill.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.drill.springboot.DrillComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/dropbox.json b/docs/components/modules/spring-boot/examples/json/dropbox.json
new file mode 100644
index 0000000..97b5371
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/dropbox.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.dropbox",
+      "type": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dropbox.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.dropbox.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.dropbox.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.dropbox.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.dropbox.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the dropbox component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.dropbox.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.dropbox.springboot.DropboxComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ehcache.json b/docs/components/modules/spring-boot/examples/json/ehcache.json
new file mode 100644
index 0000000..18771f6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ehcache.json
@@ -0,0 +1,166 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ehcache",
+      "type": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-configuration",
+      "type": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-manager",
+      "type": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ehcache.action",
+      "type": "java.lang.String",
+      "description": "To configure the default cache action. If an action is set in the message header, then the operation from the header takes precedence.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ehcache.cache-manager",
+      "type": "org.ehcache.CacheManager",
+      "description": "The cache manager. The option is a org.ehcache.CacheManager type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.cache-manager-configuration",
+      "type": "org.ehcache.config.Configuration",
+      "description": "The cache manager configuration. The option is a org.ehcache.config.Configuration type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.configuration",
+      "type": "org.ehcache.config.CacheConfiguration",
+      "description": "The default cache configuration to be used to create caches. The option is a org.ehcache.config.CacheConfiguration type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.configuration-uri",
+      "type": "java.lang.String",
+      "description": "URI pointing to the Ehcache XML configuration file's location",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.configurations",
+      "type": "java.util.Map<java.lang.String,org.ehcache.config.CacheConfiguration>",
+      "description": "A map of cache configuration to be used to create caches.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.create-cache-if-not-exist",
+      "type": "java.lang.Boolean",
+      "description": "Configure if a cache need to be created if it does exist or can't be pre-configured.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-configuration.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable or disable the cache-configuration customizer.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-configuration.mode",
+      "type": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration$Mode",
+      "description": "Configure if the cache configurations have be added or they have to replace those already configured on the component.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheConfigurationCustomizerConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-manager.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enable or disable the cache-manager customizer.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ehcache.customizer.cache-manager.override",
+      "type": "java.lang.Boolean",
+      "description": "Configure if the cache manager eventually set on the component should be overridden by the customizer.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.customizer.CacheManagerCustomizerConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ehcache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ehcache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ehcache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.event-firing",
+      "type": "org.ehcache.event.EventFiring",
+      "description": "Set the delivery mode (synchronous, asynchronous)",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.event-ordering",
+      "type": "org.ehcache.event.EventOrdering",
+      "description": "Set the delivery mode (ordered, unordered)",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.event-types",
+      "type": "java.lang.String",
+      "description": "Set the type of events to listen for (EVICTED,EXPIRED,REMOVED,CREATED,UPDATED). You can specify multiple entries separated by comma.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.key",
+      "type": "java.lang.Object",
+      "description": "To configure the default action key. If a key is set in the message header, then the key from the header takes precedence. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.key-type",
+      "type": "java.lang.String",
+      "description": "The cache key type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ehcache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ehcache.value-type",
+      "type": "java.lang.String",
+      "description": "The cache value type, default java.lang.Object",
+      "sourceType": "org.apache.camel.component.ehcache.springboot.EhcacheComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/elasticsearch-rest.json b/docs/components/modules/spring-boot/examples/json/elasticsearch-rest.json
new file mode 100644
index 0000000..59e159d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/elasticsearch-rest.json
@@ -0,0 +1,116 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.elasticsearch-rest",
+      "type": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.elasticsearch-rest.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.client",
+      "type": "org.elasticsearch.client.RestClient",
+      "description": "To use an existing configured Elasticsearch client, instead of creating a client per endpoint. This allow to customize the client with specific settings. The option is a org.elasticsearch.client.RestClient type.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "The time in ms to wait before connection will timeout.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.enable-s-s-l",
+      "type": "java.lang.Boolean",
+      "description": "Enable SSL",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.enable-sniffer",
+      "type": "java.lang.Boolean",
+      "description": "Enable automatically discover nodes from a running Elasticsearch cluster",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the elasticsearch-rest component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.host-addresses",
+      "type": "java.lang.String",
+      "description": "Comma separated list with ip:port formatted remote transport addresses to use. The ip and port options must be left blank for hostAddresses to be considered instead.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.max-retry-timeout",
+      "type": "java.lang.Integer",
+      "description": "The time in ms before retry",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.password",
+      "type": "java.lang.String",
+      "description": "Password for authenticate",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.sniff-after-failure-delay",
+      "type": "java.lang.Integer",
+      "description": "The delay of a sniff execution scheduled after a failure (in milliseconds)",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.sniffer-interval",
+      "type": "java.lang.Integer",
+      "description": "The interval between consecutive ordinary sniff executions in milliseconds. Will be honoured when sniffOnFailure is disabled or when there are no failures between consecutive sniff executions",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout in ms to wait before the socket will timeout.",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.elasticsearch-rest.user",
+      "type": "java.lang.String",
+      "description": "Basic authenticate user",
+      "sourceType": "org.apache.camel.component.elasticsearch.springboot.ElasticsearchComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/elsql.json b/docs/components/modules/spring-boot/examples/json/elsql.json
new file mode 100644
index 0000000..a84955a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/elsql.json
@@ -0,0 +1,68 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.elsql",
+      "type": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.elsql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.elsql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elsql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.elsql.database-vendor",
+      "type": "org.apache.camel.component.elsql.ElSqlDatabaseVendor",
+      "description": "To use a vendor specific com.opengamma.elsql.ElSqlConfig",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.el-sql-config",
+      "type": "com.opengamma.elsql.ElSqlConfig",
+      "description": "To use a specific configured ElSqlConfig. It may be better to use the databaseVendor option instead. The option is a com.opengamma.elsql.ElSqlConfig type.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the elsql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.elsql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.elsql.resource-uri",
+      "type": "java.lang.String",
+      "description": "The resource file which contains the elsql SQL statements to use. You can specify multiple resources separated by comma. The resources are loaded on the classpath by default, you can prefix with file: to load from file system. Notice you can set this option on the component and then you do not have to configure this on the endpoint.",
+      "sourceType": "org.apache.camel.component.elsql.springboot.ElsqlComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/etcd.json b/docs/components/modules/spring-boot/examples/json/etcd.json
new file mode 100644
index 0000000..b40d390
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/etcd.json
@@ -0,0 +1,336 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.etcd-keys",
+      "type": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.etcd-stats",
+      "type": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.etcd-watch",
+      "type": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.etcd-keys.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.etcd-keys.configuration",
+      "type": "org.apache.camel.component.etcd.EtcdConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.etcd.EtcdConfiguration type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.etcd-keys.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the etcd-keys component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-keys.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.recursive",
+      "type": "java.lang.Boolean",
+      "description": "To apply an action recursively.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-keys.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.component.etcd-keys.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.time-to-live",
+      "type": "java.lang.Integer",
+      "description": "To set the lifespan of a key in milliseconds.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-keys.uris",
+      "type": "java.lang.String",
+      "description": "To set the URIs the client connects.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001"
+    },
+    {
+      "name": "camel.component.etcd-keys.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-keys.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdKeysComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.etcd-stats.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.configuration",
+      "type": "org.apache.camel.component.etcd.EtcdConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.etcd.EtcdConfiguration type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.etcd-stats.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the etcd-stats component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.from-index",
+      "type": "java.lang.Long",
+      "description": "The index to watch from",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.etcd-stats.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.recursive",
+      "type": "java.lang.Boolean",
+      "description": "To apply an action recursively.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.send-empty-exchange-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "To send an empty message in case of timeout watching for a key.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.component.etcd-stats.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.time-to-live",
+      "type": "java.lang.Integer",
+      "description": "To set the lifespan of a key in milliseconds.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-stats.uris",
+      "type": "java.lang.String",
+      "description": "To set the URIs the client connects.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001"
+    },
+    {
+      "name": "camel.component.etcd-stats.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-stats.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdStatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.etcd-watch.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.configuration",
+      "type": "org.apache.camel.component.etcd.EtcdConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.etcd.EtcdConfiguration type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.etcd-watch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the etcd-watch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.from-index",
+      "type": "java.lang.Long",
+      "description": "The index to watch from",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.etcd-watch.password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.recursive",
+      "type": "java.lang.Boolean",
+      "description": "To apply an action recursively.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.send-empty-exchange-on-timeout",
+      "type": "java.lang.Boolean",
+      "description": "To send an empty message in case of timeout watching for a key.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.service-path",
+      "type": "java.lang.String",
+      "description": "The path to look for for service discovery",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": "\/services\/"
+    },
+    {
+      "name": "camel.component.etcd-watch.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.timeout",
+      "type": "java.lang.Long",
+      "description": "To set the maximum time an action could take to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.etcd-watch.uris",
+      "type": "java.lang.String",
+      "description": "To set the URIs the client connects.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": "http:\/\/localhost:2379,http:\/\/localhost:4001"
+    },
+    {
+      "name": "camel.component.etcd-watch.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.etcd-watch.user-name",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication.",
+      "sourceType": "org.apache.camel.component.etcd.springboot.EtcdWatchComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/etcd3.json b/docs/components/modules/spring-boot/examples/json/etcd3.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/etcd3.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/exec.json b/docs/components/modules/spring-boot/examples/json/exec.json
new file mode 100644
index 0000000..c74319d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/exec.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.exec",
+      "type": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration"
+    },
+    {
+      "name": "camel.component.exec.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.exec.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.exec.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.exec.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the exec component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration"
+    },
+    {
+      "name": "camel.component.exec.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.exec.springboot.ExecComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/facebook.json b/docs/components/modules/spring-boot/examples/json/facebook.json
new file mode 100644
index 0000000..c90d350
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/facebook.json
@@ -0,0 +1,235 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.facebook",
+      "type": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.facebook.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.facebook.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.client-u-r-l",
+      "type": "java.lang.String",
+      "description": "Facebook4J API client URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.client-version",
+      "type": "java.lang.String",
+      "description": "Facebook4J client API version",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.configuration",
+      "type": "org.apache.camel.component.facebook.config.FacebookConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.facebook.config.FacebookConfiguration type.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.facebook.debug-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables deubg output. Effective only with the embedded logger",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the facebook component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.gzip-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Use Facebook GZIP encoding",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.facebook.http-connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Http connection timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.facebook.http-default-max-per-route",
+      "type": "java.lang.Integer",
+      "description": "HTTP maximum connections per route",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.facebook.http-max-total-connections",
+      "type": "java.lang.Integer",
+      "description": "HTTP maximum total connections",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "HTTP proxy server host name",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "HTTP proxy server password",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "HTTP proxy server port",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "HTTP proxy server user name",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.http-read-timeout",
+      "type": "java.lang.Integer",
+      "description": "Http read timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.facebook.http-retry-count",
+      "type": "java.lang.Integer",
+      "description": "Number of HTTP retries",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.facebook.http-retry-interval-seconds",
+      "type": "java.lang.Integer",
+      "description": "HTTP retry interval in seconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.facebook.http-streaming-read-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP streaming read timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": 40000
+    },
+    {
+      "name": "camel.component.facebook.json-store-enabled",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, raw JSON forms will be stored in DataObjectFactory",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.mbean-enabled",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, Facebook4J mbean will be registerd",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.o-auth-access-token",
+      "type": "java.lang.String",
+      "description": "The user access token",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-access-token-u-r-l",
+      "type": "java.lang.String",
+      "description": "OAuth access token URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/graph.facebook.com\/oauth\/access_token"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-app-id",
+      "type": "java.lang.String",
+      "description": "The application Id",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-app-secret",
+      "type": "java.lang.String",
+      "description": "The application Secret",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-authorization-u-r-l",
+      "type": "java.lang.String",
+      "description": "OAuth authorization URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/www.facebook.com\/dialog\/oauth"
+    },
+    {
+      "name": "camel.component.facebook.o-auth-permissions",
+      "type": "java.lang.String",
+      "description": "Default OAuth permissions. Comma separated permission names. See https:\/\/developers.facebook.com\/docs\/reference\/login\/#permissions for the detail",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.facebook.pretty-debug-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Prettify JSON debug output if set to true",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.facebook.rest-base-u-r-l",
+      "type": "java.lang.String",
+      "description": "API base URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/graph.facebook.com\/"
+    },
+    {
+      "name": "camel.component.facebook.use-s-s-l",
+      "type": "java.lang.Boolean",
+      "description": "Use SSL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.facebook.video-base-u-r-l",
+      "type": "java.lang.String",
+      "description": "Video API base URL",
+      "sourceType": "org.apache.camel.component.facebook.springboot.FacebookComponentConfiguration",
+      "defaultValue": "https:\/\/graph-video.facebook.com\/"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/fastjson.json b/docs/components/modules/spring-boot/examples/json/fastjson.json
new file mode 100644
index 0000000..c264001
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/fastjson.json
@@ -0,0 +1,42 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-fastjson",
+      "type": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-fastjson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-fastjson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-fastjson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.fastjson.springboot.FastjsonDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/fhir.json b/docs/components/modules/spring-boot/examples/json/fhir.json
new file mode 100644
index 0000000..6572aff
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/fhir.json
@@ -0,0 +1,421 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.fhir",
+      "type": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.fhirjson",
+      "type": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.fhirxml",
+      "type": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.fhir.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth access token",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.fhir.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.client",
+      "type": "ca.uhn.fhir.rest.client.api.IGenericClient",
+      "description": "To use the custom client. The option is a ca.uhn.fhir.rest.client.api.IGenericClient type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.client-factory",
+      "type": "ca.uhn.fhir.rest.client.api.IRestfulClientFactory",
+      "description": "To use the custom client factory. The option is a ca.uhn.fhir.rest.client.api.IRestfulClientFactory type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.compress",
+      "type": "java.lang.Boolean",
+      "description": "Compresses outgoing (POST\/PUT) contents to the GZIP format",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.configuration",
+      "type": "org.apache.camel.component.fhir.FhirConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.fhir.FhirConfiguration type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "How long to try and establish the initial TCP connection (in ms)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.fhir.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.fhir.defer-model-scanning",
+      "type": "java.lang.Boolean",
+      "description": "When this option is set, model classes will not be scanned for children until the child list for the given type is actually accessed.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fhir component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.encoding",
+      "type": "java.lang.String",
+      "description": "Encoding to use for all request",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.fhir-context",
+      "type": "ca.uhn.fhir.context.FhirContext",
+      "description": "FhirContext is an expensive object to create. To avoid creating multiple instances, it can be set directly. The option is a ca.uhn.fhir.context.FhirContext type.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.fhir-version",
+      "type": "java.lang.String",
+      "description": "The FHIR Version to use",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": "R4"
+    },
+    {
+      "name": "camel.component.fhir.force-conformance-check",
+      "type": "java.lang.Boolean",
+      "description": "Force conformance check",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.log",
+      "type": "java.lang.Boolean",
+      "description": "Will log every requests and responses",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.password",
+      "type": "java.lang.String",
+      "description": "Username to use for basic authentication",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "Pretty print all request",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.fhir.proxy-host",
+      "type": "java.lang.String",
+      "description": "The proxy host",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.proxy-password",
+      "type": "java.lang.String",
+      "description": "The proxy password",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The proxy port",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.proxy-user",
+      "type": "java.lang.String",
+      "description": "The proxy username",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.server-url",
+      "type": "java.lang.String",
+      "description": "The FHIR server base URL",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.session-cookie",
+      "type": "java.lang.String",
+      "description": "HTTP session cookie to add to every request",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "How long to block for individual read\/write operations (in ms)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.fhir.summary",
+      "type": "java.lang.String",
+      "description": "Request that the server modify the response using the _summary param",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.username",
+      "type": "java.lang.String",
+      "description": "Username to use for basic authentication",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fhir.validation-mode",
+      "type": "java.lang.String",
+      "description": "When should Camel validate the FHIR Server's conformance statement",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirComponentConfiguration",
+      "defaultValue": "ONCE"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.fhirjson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.dont-encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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.meta will work for DSTU2 parsers, but values with subelements on meta such as Patient.meta.lastUpdated will only work in DSTU3 mode.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.dont-strip-versions-from-references-at-paths",
+      "type": "java.util.List<java.lang.String>",
+      "description": "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(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been set to true (which is the default)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fhirJson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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 mandatory fields (min 0) to be encoded",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.encode-elements-applies-to-child-resources-only",
+      "type": "java.lang.Boolean",
+      "description": "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)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.fhir-version",
+      "type": "java.lang.String",
+      "description": "The version of FHIR to use. Possible values are: DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": "DSTU3"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.omit-resource-id",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.override-resource-id-with-bundle-entry-full-url",
+      "type": "java.lang.Boolean",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "Sets the pretty print flag, meaning that the parser will encode resources with human-readable spacing and newlines between elements instead of condensing output as much as possible.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.server-base-url",
+      "type": "java.lang.String",
+      "description": "Sets the server's base URL used by this parser. If a value is set, resource references will be turned into relative references if they are provided as absolute URLs but have a base matching the given base.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirjson.strip-versions-from-references",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (which is the default), resource references containing a version will have the version removed when the resource is encoded. This is generally good behaviour because in most situations, references from one resource to another should be to the resource by ID, not by ID and version. In some cases though, it may be desirable to preserve the version in resource links. In that case, this value should be set to false. This method provides the ability to globally disable reference encoding. If finer-grained control is needed, use setDontStripVersionsFromReferencesAtPaths(List)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.summary-mode",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirjson.suppress-narratives",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false), narratives will not be included in the encoded values.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirJsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.fhirxml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.dont-encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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.meta will work for DSTU2 parsers, but values with subelements on meta such as Patient.meta.lastUpdated will only work in DSTU3 mode.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.dont-strip-versions-from-references-at-paths",
+      "type": "java.util.List<java.lang.String>",
+      "description": "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(String) and any paths specified by this method will be encoded even if setStripVersionsFromReferences(String) has been set to true (which is the default)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fhirXml data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.encode-elements",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "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 mandatory fields (min 0) to be encoded",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.encode-elements-applies-to-child-resources-only",
+      "type": "java.lang.Boolean",
+      "description": "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)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.fhir-version",
+      "type": "java.lang.String",
+      "description": "The version of FHIR to use. Possible values are: DSTU2,DSTU2_HL7ORG,DSTU2_1,DSTU3,R4",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": "DSTU3"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.omit-resource-id",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.override-resource-id-with-bundle-entry-full-url",
+      "type": "java.lang.Boolean",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "Sets the pretty print flag, meaning that the parser will encode resources with human-readable spacing and newlines between elements instead of condensing output as much as possible.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.server-base-url",
+      "type": "java.lang.String",
+      "description": "Sets the server's base URL used by this parser. If a value is set, resource references will be turned into relative references if they are provided as absolute URLs but have a base matching the given base.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.fhirxml.strip-versions-from-references",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (which is the default), resource references containing a version will have the version removed when the resource is encoded. This is generally good behaviour because in most situations, references from one resource to another should be to the resource by ID, not by ID and version. In some cases though, it may be desirable to preserve the version in resource links. In that case, this value should be set to false. This method provides the ability to globally disable reference encoding. If finer-grained control is needed, use setDontStripVersionsFromReferencesAtPaths(List)",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.summary-mode",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false) only elements marked by the FHIR specification as being summary elements will be included.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.fhirxml.suppress-narratives",
+      "type": "java.lang.Boolean",
+      "description": "If set to true (default is false), narratives will not be included in the encoded values.",
+      "sourceType": "org.apache.camel.component.fhir.springboot.FhirXmlDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/file-watch.json b/docs/components/modules/spring-boot/examples/json/file-watch.json
new file mode 100644
index 0000000..420d609
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/file-watch.json
@@ -0,0 +1,77 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.file-watch",
+      "type": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file-watch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.file-watch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.file-watch.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.file-watch.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "The number of concurrent consumers. Increase this value, if your route is slow to prevent buffering in queue.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.file-watch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.file-watch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the file-watch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file-watch.file-hasher",
+      "type": "io.methvin.watcher.hashing.FileHasher",
+      "description": "Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple modifications per second per file, use #lastModifiedTimeFileHasher. You can also provide custom implementation in registry. The option is a io.methvin.watcher.hashing.FileHasher type.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file-watch.poll-threads",
+      "type": "java.lang.Integer",
+      "description": "The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.file-watch.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of queue between WatchService and consumer. Unbounded by default.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": 2147483647
+    },
+    {
+      "name": "camel.component.file-watch.use-file-hashing",
+      "type": "java.lang.Boolean",
+      "description": "Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target platform.",
+      "sourceType": "org.apache.camel.component.file.watch.springboot.FileWatchComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/file.json b/docs/components/modules/spring-boot/examples/json/file.json
new file mode 100644
index 0000000..eb5f7e8
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/file.json
@@ -0,0 +1,98 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.file",
+      "type": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.file",
+      "type": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.file.acquire-lock-delay",
+      "type": "java.lang.String",
+      "description": "The time to wait before starting to try to acquire lock.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.acquire-lock-interval",
+      "type": "java.lang.String",
+      "description": "The time to wait between attempts to try to acquire lock.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the file cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.file.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.file.root",
+      "type": "java.lang.String",
+      "description": "The root path.",
+      "sourceType": "org.apache.camel.component.file.springboot.cluster.FileLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.file.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.file.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.file.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.file.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the file component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration"
+    },
+    {
+      "name": "camel.component.file.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.springboot.FileComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/flatpack.json b/docs/components/modules/spring-boot/examples/json/flatpack.json
new file mode 100644
index 0000000..d5cd140
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/flatpack.json
@@ -0,0 +1,125 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.flatpack",
+      "type": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flatpack.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.flatpack",
+      "type": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.flatpack.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.flatpack.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.flatpack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.flatpack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the flatpack component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flatpack.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.flatpack.springboot.FlatpackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.allow-short-lines",
+      "type": "java.lang.Boolean",
+      "description": "Allows for lines to be shorter than expected and ignores the extra characters",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.flatpack.definition",
+      "type": "java.lang.String",
+      "description": "The flatpack pzmap configuration file. Can be omitted in simpler situations, but its preferred to use the pzmap.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter char (could be ; , or similar)",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": ","
+    },
+    {
+      "name": "camel.dataformat.flatpack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the flatpack data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.fixed",
+      "type": "java.lang.Boolean",
+      "description": "Delimited or fixed. Is by default false = delimited",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.ignore-extra-columns",
+      "type": "java.lang.Boolean",
+      "description": "Allows for lines to be longer than expected and ignores the extra characters.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.flatpack.ignore-first-record",
+      "type": "java.lang.Boolean",
+      "description": "Whether the first line is ignored for delimited files (for the column headers). Is by default true.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.flatpack.parser-factory-ref",
+      "type": "java.lang.String",
+      "description": "References to a custom parser factory to lookup in the registry",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.flatpack.text-qualifier",
+      "type": "java.lang.String",
+      "description": "If the text is qualified with a character. Uses quote character by default.",
+      "sourceType": "org.apache.camel.dataformat.flatpack.springboot.FlatpackDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/flink.json b/docs/components/modules/spring-boot/examples/json/flink.json
new file mode 100644
index 0000000..305d4ab
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/flink.json
@@ -0,0 +1,61 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.flink",
+      "type": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.flink.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.flink.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.flink.data-set-callback",
+      "type": "org.apache.camel.component.flink.DataSetCallback",
+      "description": "Function performing action against a DataSet. The option is a org.apache.camel.component.flink.DataSetCallback type.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.data-stream",
+      "type": "org.apache.flink.streaming.api.datastream.DataStream",
+      "description": "DataStream to compute against. The option is a org.apache.flink.streaming.api.datastream.DataStream type.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.data-stream-callback",
+      "type": "org.apache.camel.component.flink.DataStreamCallback",
+      "description": "Function performing action against a DataStream. The option is a org.apache.camel.component.flink.DataStreamCallback type.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the flink component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.flink.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.flink.springboot.FlinkComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/fop.json b/docs/components/modules/spring-boot/examples/json/fop.json
new file mode 100644
index 0000000..7e02286
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/fop.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.fop",
+      "type": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fop.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.fop.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.fop.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.fop.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the fop component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration"
+    },
+    {
+      "name": "camel.component.fop.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.fop.springboot.FopComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/freemarker.json b/docs/components/modules/spring-boot/examples/json/freemarker.json
new file mode 100644
index 0000000..641ff51
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/freemarker.json
@@ -0,0 +1,70 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.freemarker",
+      "type": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.freemarker.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.freemarker.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.freemarker.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.freemarker.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.freemarker.configuration",
+      "type": "freemarker.template.Configuration",
+      "description": "To use an existing freemarker.template.Configuration instance as the configuration. The option is a freemarker.template.Configuration type.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.freemarker.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.freemarker.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the freemarker component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.freemarker.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.freemarker.localized-lookup",
+      "type": "java.lang.Boolean",
+      "description": "Enables\/disables localized template lookup. Disabled by default.",
+      "sourceType": "org.apache.camel.component.freemarker.springboot.FreemarkerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ftp.json b/docs/components/modules/spring-boot/examples/json/ftp.json
new file mode 100644
index 0000000..c76d47f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ftp.json
@@ -0,0 +1,143 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ftp",
+      "type": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ftps",
+      "type": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftps.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.sftp",
+      "type": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sftp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ftp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ftp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ftp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ftp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftps.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ftps.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftps.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ftps.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ftps component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ftps.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ftps.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.FtpsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sftp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sftp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sftp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sftp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sftp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sftp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.file.remote.springboot.SftpComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ganglia.json b/docs/components/modules/spring-boot/examples/json/ganglia.json
new file mode 100644
index 0000000..15d72a8
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ganglia.json
@@ -0,0 +1,127 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ganglia",
+      "type": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ganglia.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ganglia.configuration",
+      "type": "org.apache.camel.component.ganglia.GangliaConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.ganglia.GangliaConfiguration type.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ganglia.dmax",
+      "type": "java.lang.Integer",
+      "description": "Minumum time in seconds before Ganglia will purge the metric value if it expires. Set to 0 and the value will remain in Ganglia indefinitely until a gmond agent restart.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.ganglia.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ganglia component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.group-name",
+      "type": "java.lang.String",
+      "description": "The group that the metric belongs to.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": "java"
+    },
+    {
+      "name": "camel.component.ganglia.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ganglia.metric-name",
+      "type": "java.lang.String",
+      "description": "The name to use for the metric.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": "metric"
+    },
+    {
+      "name": "camel.component.ganglia.mode",
+      "type": "info.ganglia.gmetric4j.gmetric.GMetric$UDPAddressingMode",
+      "description": "Send the UDP metric packets using MULTICAST or UNICAST",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.prefix",
+      "type": "java.lang.String",
+      "description": "Prefix the metric name with this string and an underscore.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.slope",
+      "type": "info.ganglia.gmetric4j.gmetric.GMetricSlope",
+      "description": "The slope",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.spoof-hostname",
+      "type": "java.lang.String",
+      "description": "Spoofing information IP:hostname",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.tmax",
+      "type": "java.lang.Integer",
+      "description": "Maximum time in seconds that the value can be considered current. After this, Ganglia considers the value to have expired.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.ganglia.ttl",
+      "type": "java.lang.Integer",
+      "description": "If using multicast, set the TTL of the packets",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.ganglia.type",
+      "type": "info.ganglia.gmetric4j.gmetric.GMetricType",
+      "description": "The type of value",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.units",
+      "type": "java.lang.String",
+      "description": "Any unit of measurement that qualifies the metric, e.g. widgets, litres, bytes. Do not include a prefix such as k (kilo) or m (milli), other tools may scale the units later. The value should be unscaled.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ganglia.wire-format31x",
+      "type": "java.lang.Boolean",
+      "description": "Use the wire format of Ganglia 3.1.0 and later versions. Set this to false to use Ganglia 3.0.x or earlier.",
+      "sourceType": "org.apache.camel.component.ganglia.springboot.GangliaComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/geocoder.json b/docs/components/modules/spring-boot/examples/json/geocoder.json
new file mode 100644
index 0000000..b594b92
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/geocoder.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.geocoder",
+      "type": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.geocoder.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.geocoder.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.geocoder.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.geocoder.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the geocoder component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.geocoder.geo-api-context",
+      "type": "com.google.maps.GeoApiContext",
+      "description": "Configuration for Google maps API. The option is a com.google.maps.GeoApiContext type.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.geocoder.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.geocoder.springboot.GeoCoderComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/git.json b/docs/components/modules/spring-boot/examples/json/git.json
new file mode 100644
index 0000000..4e01f44
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/git.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.git",
+      "type": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration"
+    },
+    {
+      "name": "camel.component.git.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.git.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.git.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.git.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.git.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the git component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration"
+    },
+    {
+      "name": "camel.component.git.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.git.springboot.GitComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/github.json b/docs/components/modules/spring-boot/examples/json/github.json
new file mode 100644
index 0000000..5d7e1b2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/github.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.github",
+      "type": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.github.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.github.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.github.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.github.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.github.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the github component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.github.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.github.oauth-token",
+      "type": "java.lang.String",
+      "description": "GitHub OAuth token. Must be configured on either component or endpoint.",
+      "sourceType": "org.apache.camel.component.github.springboot.GitHubComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-bigquery.json b/docs/components/modules/spring-boot/examples/json/google-bigquery.json
new file mode 100644
index 0000000..05cc939
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-bigquery.json
@@ -0,0 +1,109 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-bigquery",
+      "type": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql",
+      "type": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-bigquery.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-bigquery-sql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.connection-factory",
+      "type": "org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory",
+      "description": "ConnectionFactory to obtain connection to Bigquery Service. If not provided the default one will be used. The option is a org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-bigquery-sql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-bigquery-sql.project-id",
+      "type": "java.lang.String",
+      "description": "Google Cloud Project Id",
+      "sourceType": "org.apache.camel.component.google.bigquery.sql.springboot.GoogleBigQuerySQLComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-bigquery.connection-factory",
+      "type": "org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory",
+      "description": "ConnectionFactory to obtain connection to Bigquery Service. If not provided the default one will be used. The option is a org.apache.camel.component.google.bigquery.GoogleBigQueryConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-bigquery.dataset-id",
+      "type": "java.lang.String",
+      "description": "BigQuery Dataset Id",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-bigquery component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-bigquery.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-bigquery.project-id",
+      "type": "java.lang.String",
+      "description": "Google Cloud Project Id",
+      "sourceType": "org.apache.camel.component.google.bigquery.springboot.GoogleBigQueryComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-calendar.json b/docs/components/modules/spring-boot/examples/json/google-calendar.json
new file mode 100644
index 0000000..18c9337
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-calendar.json
@@ -0,0 +1,260 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-calendar",
+      "type": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream",
+      "type": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-calendar.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-calendar-stream.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.application-name",
+      "type": "java.lang.String",
+      "description": "Google Calendar application name. Example would be camel-google-calendar\/1.0",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-calendar-stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar-stream.calendar-id",
+      "type": "java.lang.String",
+      "description": "The calendarId to be used",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": "primary"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.client-factory",
+      "type": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory",
+      "description": "The client Factory. The option is a org.apache.camel.component.google.calendar.GoogleCalendarClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.configuration",
+      "type": "org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration",
+      "description": "The configuration. The option is a org.apache.camel.component.google.calendar.stream.GoogleCalendarStreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.consider-last-update",
+      "type": "java.lang.Boolean",
+      "description": "Take into account the lastUpdate of the last event polled as start date for the next poll",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar-stream.consume-from-now",
+      "type": "java.lang.Boolean",
+      "description": "Consume events in the selected calendar from now on",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-calendar-stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.email-address",
+      "type": "java.lang.String",
+      "description": "The emailAddress of the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-calendar-stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.max-results",
+      "type": "java.lang.Integer",
+      "description": "Max results to be returned",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.google-calendar-stream.p12-file-name",
+      "type": "java.lang.String",
+      "description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.query",
+      "type": "java.lang.String",
+      "description": "The query to execute on calendar",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.scopes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Specifies the level of permissions you want a calendar application to have to a user account. See https:\/\/developers.google.com\/calendar\/auth for more info.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar-stream.sync-flow",
+      "type": "java.lang.Boolean",
+      "description": "Sync events, see https:\/\/developers.google.com\/calendar\/v3\/sync Note: not compatible with: 'query' and 'considerLastUpdate' parameters",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar-stream.user",
+      "type": "java.lang.String",
+      "description": "The email address of the user the application is trying to impersonate in the service account flow.",
+      "sourceType": "org.apache.camel.component.google.calendar.stream.springboot.GoogleCalendarStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.application-name",
+      "type": "java.lang.String",
+      "description": "Google calendar application name. Example would be camel-google-calendar\/1.0",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-calendar.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar.client-factory",
+      "type": "org.apache.camel.component.google.calendar.GoogleCalendarClientFactory",
+      "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory. The option is a org.apache.camel.component.google.calendar.GoogleCalendarClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the calendar application",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.configuration",
+      "type": "org.apache.camel.component.google.calendar.GoogleCalendarConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.calendar.GoogleCalendarConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-calendar.email-address",
+      "type": "java.lang.String",
+      "description": "The emailAddress of the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-calendar component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-calendar.p12-file-name",
+      "type": "java.lang.String",
+      "description": "The name of the p12 file which has the private key to use with the Google Service Account.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-calendar.scopes",
+      "type": "java.lang.String",
+      "description": "Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See https:\/\/developers.google.com\/google-apps\/calendar\/auth for more info.",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration",
+      "defaultValue": "https:\/\/www.googleapis.com\/auth\/calendar"
+    },
+    {
+      "name": "camel.component.google-calendar.user",
+      "type": "java.lang.String",
+      "description": "The email address of the user the application is trying to impersonate in the service account flow",
+      "sourceType": "org.apache.camel.component.google.calendar.springboot.GoogleCalendarComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-drive.json b/docs/components/modules/spring-boot/examples/json/google-drive.json
new file mode 100644
index 0000000..f29e8b7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-drive.json
@@ -0,0 +1,98 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-drive",
+      "type": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-drive.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.application-name",
+      "type": "java.lang.String",
+      "description": "Google drive application name. Example would be camel-google-drive\/1.0",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-drive.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-drive.client-factory",
+      "type": "org.apache.camel.component.google.drive.GoogleDriveClientFactory",
+      "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory. The option is a org.apache.camel.component.google.drive.GoogleDriveClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the drive application",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the drive application",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.configuration",
+      "type": "org.apache.camel.component.google.drive.GoogleDriveConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.drive.GoogleDriveConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-drive.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-drive component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-drive.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-drive.scopes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Specifies the level of permissions you want a drive application to have to a user account. See https:\/\/developers.google.com\/drive\/web\/scopes for more info.",
+      "sourceType": "org.apache.camel.component.google.drive.springboot.GoogleDriveComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-functions.json b/docs/components/modules/spring-boot/examples/json/google-functions.json
new file mode 100644
index 0000000..0a3ea48
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-functions.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-functions",
+      "type": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-functions.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-functions.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-functions.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-functions.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-functions component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-functions.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.functions.springboot.GoogleCloudFunctionsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-mail.json b/docs/components/modules/spring-boot/examples/json/google-mail.json
new file mode 100644
index 0000000..ce1c900
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-mail.json
@@ -0,0 +1,197 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-mail",
+      "type": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream",
+      "type": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-mail.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-mail-stream.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.application-name",
+      "type": "java.lang.String",
+      "description": "Google mail application name. Example would be camel-google-mail\/1.0",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-mail-stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-mail-stream.client-factory",
+      "type": "org.apache.camel.component.google.mail.GoogleMailClientFactory",
+      "description": "The client Factory. The option is a org.apache.camel.component.google.mail.GoogleMailClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.configuration",
+      "type": "org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration",
+      "description": "The configuration. The option is a org.apache.camel.component.google.mail.stream.GoogleMailStreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-mail-stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-mail-stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.labels",
+      "type": "java.lang.String",
+      "description": "Comma separated list of labels to take into account",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail-stream.mark-as-read",
+      "type": "java.lang.Boolean",
+      "description": "Mark the message as read once it has been consumed",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-mail-stream.max-results",
+      "type": "java.lang.Long",
+      "description": "Max results to be returned",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.google-mail-stream.query",
+      "type": "java.lang.String",
+      "description": "The query to execute on gmail box",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration",
+      "defaultValue": "is:unread"
+    },
+    {
+      "name": "camel.component.google-mail-stream.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.mail.stream.springboot.GoogleMailStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.application-name",
+      "type": "java.lang.String",
+      "description": "Google mail application name. Example would be camel-google-mail\/1.0",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-mail.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-mail.client-factory",
+      "type": "org.apache.camel.component.google.mail.GoogleMailClientFactory",
+      "description": "To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleMailClientFactory. The option is a org.apache.camel.component.google.mail.GoogleMailClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the mail application",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.configuration",
+      "type": "org.apache.camel.component.google.mail.GoogleMailConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.mail.GoogleMailConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-mail.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-mail component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-mail.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-mail.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.mail.springboot.GoogleMailComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-pubsub.json b/docs/components/modules/spring-boot/examples/json/google-pubsub.json
new file mode 100644
index 0000000..9234aa6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-pubsub.json
@@ -0,0 +1,87 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-pubsub",
+      "type": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-pubsub.authenticate",
+      "type": "java.lang.Boolean",
+      "description": "Use Credentials when interacting with PubSub service (no authentication is required when using emulator).",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-pubsub.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-pubsub.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-pubsub.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-pubsub.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-pubsub component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.endpoint",
+      "type": "java.lang.String",
+      "description": "Endpoint to use with local Pub\/Sub emulator.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-pubsub.publisher-cache-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of producers to cache. This could be increased if you have producers for lots of different topics.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.publisher-cache-timeout",
+      "type": "java.lang.Integer",
+      "description": "How many milliseconds should each producer stay alive in the cache.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.publisher-termination-timeout",
+      "type": "java.lang.Integer",
+      "description": "How many milliseconds should a producer be allowed to terminate.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-pubsub.service-account-key",
+      "type": "java.lang.String",
+      "description": "The Service account key that can be used as credentials for the PubSub publisher\/subscriber. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.google.pubsub.springboot.GooglePubsubComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-sheets.json b/docs/components/modules/spring-boot/examples/json/google-sheets.json
new file mode 100644
index 0000000..302b34b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-sheets.json
@@ -0,0 +1,223 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-sheets",
+      "type": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream",
+      "type": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.google-sheets.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-sheets-stream.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.application-name",
+      "type": "java.lang.String",
+      "description": "Google sheets application name. Example would be camel-google-sheets\/1.0",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-sheets-stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets-stream.client-factory",
+      "type": "org.apache.camel.component.google.sheets.GoogleSheetsClientFactory",
+      "description": "To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory. The option is a org.apache.camel.component.google.sheets.GoogleSheetsClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.configuration",
+      "type": "org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.sheets.stream.GoogleSheetsStreamConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-sheets-stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.include-grid-data",
+      "type": "java.lang.Boolean",
+      "description": "True if grid data should be returned.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets-stream.major-dimension",
+      "type": "java.lang.String",
+      "description": "Specifies the major dimension that results should use..",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": "ROWS"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.max-results",
+      "type": "java.lang.Integer",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.range",
+      "type": "java.lang.String",
+      "description": "Specifies the range of rows and columns in a sheet to get data from.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.refresh-token",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.scopes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets-stream.split-results",
+      "type": "java.lang.Boolean",
+      "description": "True if value range result should be split into rows or columns to process each of them individually. When true each row or column is represented with a separate exchange in batch processing. Otherwise value range object is used as exchange junk size.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets-stream.value-render-option",
+      "type": "java.lang.String",
+      "description": "Determines how values should be rendered in the output.",
+      "sourceType": "org.apache.camel.component.google.sheets.stream.springboot.GoogleSheetsStreamComponentConfiguration",
+      "defaultValue": "FORMATTED_VALUE"
+    },
+    {
+      "name": "camel.component.google-sheets.access-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 access token. This typically expires after an hour so refreshToken is recommended for long term usage.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.application-name",
+      "type": "java.lang.String",
+      "description": "Google Sheets application name. Example would be camel-google-sheets\/1.0",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-sheets.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets.client-factory",
+      "type": "org.apache.camel.component.google.sheets.GoogleSheetsClientFactory",
+      "description": "To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory. The option is a org.apache.camel.component.google.sheets.GoogleSheetsClientFactory type.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.client-id",
+      "type": "java.lang.String",
+      "description": "Client ID of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.client-secret",
+      "type": "java.lang.String",
+      "description": "Client secret of the sheets application",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.configuration",
+      "type": "org.apache.camel.component.google.sheets.GoogleSheetsConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.google.sheets.GoogleSheetsConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-sheets.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-sheets component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-sheets.refresh-token",
+      "type": "java.lang.String",
+      "description": "OAuth 2 refresh token. Using this, the Google Sheets component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-sheets.split-result",
+      "type": "java.lang.Boolean",
+      "description": "When consumer return an array or collection this will generate one exchange per element, and their routes will be executed once for each exchange. Set this value to false to use a single exchange for the entire list or array.",
+      "sourceType": "org.apache.camel.component.google.sheets.springboot.GoogleSheetsComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/google-storage.json b/docs/components/modules/spring-boot/examples/json/google-storage.json
new file mode 100644
index 0000000..4f3e338
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/google-storage.json
@@ -0,0 +1,134 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.google-storage",
+      "type": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.google-storage.auto-create-bucket",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the bucket bucketName.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-storage.configuration",
+      "type": "org.apache.camel.component.google.storage.GoogleCloudStorageConfiguration",
+      "description": "The component configuration. The option is a org.apache.camel.component.google.storage.GoogleCloudStorageConfiguration type.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.google-storage.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete objects from the bucket after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.destination-bucket",
+      "type": "java.lang.String",
+      "description": "Define the destination bucket where an object must be moved when moveAfterRead is set to true.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the google-storage component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.include-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the Object exchange will be consumed and put into the body. If false the Object stream will be put raw into the body and the headers will be set with the object metadata.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.include-folders",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the folders\/directories will be consumed. If it is false, they will be ignored, and Exchanges will not be created for those",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.google-storage.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-storage.move-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Move objects from the origin bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.google-storage.object-name",
+      "type": "java.lang.String",
+      "description": "The Object name inside the bucket",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.operation",
+      "type": "org.apache.camel.component.google.storage.GoogleCloudStorageOperations",
+      "description": "Set the operation for the producer",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.service-account-key",
+      "type": "java.lang.String",
+      "description": "The Service account key that can be used as credentials for the Storage client. It can be loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.storage-class",
+      "type": "com.google.cloud.storage.StorageClass",
+      "description": "The Cloud Storage class to use when creating the new buckets. The option is a com.google.cloud.storage.StorageClass type.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.storage-client",
+      "type": "com.google.cloud.storage.Storage",
+      "description": "The storage client. The option is a com.google.cloud.storage.Storage type.",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.google-storage.storage-location",
+      "type": "java.lang.String",
+      "description": "The Cloud Storage location to use when creating the new buckets",
+      "sourceType": "org.apache.camel.component.google.storage.springboot.GoogleCloudStorageComponentConfiguration",
+      "defaultValue": "US-EAST1"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/gora.json b/docs/components/modules/spring-boot/examples/json/gora.json
new file mode 100644
index 0000000..803f13e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/gora.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.gora",
+      "type": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.gora.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.gora.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.gora.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.gora.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.gora.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the gora component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.gora.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.gora.springboot.GoraComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/grape.json b/docs/components/modules/spring-boot/examples/json/grape.json
new file mode 100644
index 0000000..c530dad
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/grape.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.grape",
+      "type": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grape.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.grape.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.grape.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.grape.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the grape component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grape.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.grape.patches-repository",
+      "type": "org.apache.camel.component.grape.PatchesRepository",
+      "description": "Implementation of org.apache.camel.component.grape.PatchesRepository, by default: FilePatchesRepository. The option is a org.apache.camel.component.grape.PatchesRepository type.",
+      "sourceType": "org.apache.camel.component.grape.springboot.GrapeComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/graphql.json b/docs/components/modules/spring-boot/examples/json/graphql.json
new file mode 100644
index 0000000..90c4da4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/graphql.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.graphql",
+      "type": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.graphql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.graphql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.graphql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.graphql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the graphql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.graphql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.graphql.springboot.GraphqlComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/grok.json b/docs/components/modules/spring-boot/examples/json/grok.json
new file mode 100644
index 0000000..99a749c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/grok.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.grok",
+      "type": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.grok.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.grok.allow-multiple-matches-per-line",
+      "type": "java.lang.Boolean",
+      "description": "If false, every line of input is matched for pattern only once. Otherwise the line can be scanned multiple times when non-terminal pattern is used.",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.grok.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.grok.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the grok data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.grok.flattened",
+      "type": "java.lang.Boolean",
+      "description": "Turns on flattened mode. In flattened mode the exception is thrown when there are multiple pattern matches with same key.",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.grok.named-only",
+      "type": "java.lang.Boolean",
+      "description": "Whether to capture named expressions only or not (i.e. %{IP:ip} but not ${IP})",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.grok.pattern",
+      "type": "java.lang.String",
+      "description": "The grok pattern to match lines of input",
+      "sourceType": "org.apache.camel.component.grok.springboot.GrokDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/groovy.json b/docs/components/modules/spring-boot/examples/json/groovy.json
new file mode 100644
index 0000000..e5ac836
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/groovy.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.groovy",
+      "type": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.groovy.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.groovy.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.groovy.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the groovy language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.groovy.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.groovy.springboot.GroovyLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/grpc.json b/docs/components/modules/spring-boot/examples/json/grpc.json
new file mode 100644
index 0000000..5083347
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/grpc.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.grpc",
+      "type": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grpc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.grpc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.grpc.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.grpc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.grpc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the grpc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.grpc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.grpc.springboot.GrpcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/gson.json b/docs/components/modules/spring-boot/examples/json/gson.json
new file mode 100644
index 0000000..29d54fd
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/gson.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-gson",
+      "type": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-gson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-gson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-gson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-gson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-gson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-gson.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-gson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.gson.springboot.GsonDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/guava-eventbus.json b/docs/components/modules/spring-boot/examples/json/guava-eventbus.json
new file mode 100644
index 0000000..6a406e1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/guava-eventbus.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.guava-eventbus",
+      "type": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.guava-eventbus.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.guava-eventbus.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.guava-eventbus.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.guava-eventbus.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.guava-eventbus.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the guava-eventbus component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.guava-eventbus.event-bus",
+      "type": "com.google.common.eventbus.EventBus",
+      "description": "To use the given Guava EventBus instance. The option is a com.google.common.eventbus.EventBus type.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    },
+    {
+      "name": "camel.component.guava-eventbus.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.guava-eventbus.listener-interface",
+      "type": "java.lang.Class<java.lang.Object>",
+      "description": "The interface with method(s) marked with the Subscribe annotation. Dynamic proxy will be created over the interface so it could be registered as the EventBus listener. Particularly useful when creating multi-event listeners and for handling DeadEvent properly. This option cannot be used together with eventClass option.",
+      "sourceType": "org.apache.camel.component.guava.eventbus.springboot.GuavaEventBusComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/hazelcast.json b/docs/components/modules/spring-boot/examples/json/hazelcast.json
new file mode 100644
index 0000000..0dfb05e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/hazelcast.json
@@ -0,0 +1,602 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hazelcast-atomicvalue",
+      "type": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-instance",
+      "type": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-list",
+      "type": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-list.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-map",
+      "type": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-map.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap",
+      "type": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-queue",
+      "type": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap",
+      "type": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer",
+      "type": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-seda",
+      "type": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-set",
+      "type": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-set.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.hazelcast-topic",
+      "type": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hazelcast-atomicvalue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-atomicvalue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-atomicvalue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.atomicnumber.springboot.HazelcastAtomicnumberComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-instance.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-instance.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-instance.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-instance component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-instance.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.instance.springboot.HazelcastInstanceComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-list.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-list.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-list.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-list.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-list component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-list.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-list.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-list.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.list.springboot.HazelcastListComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-map.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-map.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-map.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-map.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-map component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-map.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-map.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-map.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.map.springboot.HazelcastMapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-multimap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-multimap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.multimap.springboot.HazelcastMultimapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-queue.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.queue.springboot.HazelcastQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-replicatedmap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-replicatedmap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.replicatedmap.springboot.HazelcastReplicatedmapComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-ringbuffer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-ringbuffer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.ringbuffer.springboot.HazelcastRingbufferComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-seda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-seda.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-seda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-seda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-seda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.seda.springboot.HazelcastSedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-set.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-set.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-set.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-set.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-set component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-set.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-set.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-set.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.set.springboot.HazelcastSetComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-topic.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hazelcast-topic.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hazelcast-topic.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hazelcast-topic component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.hazelcast-instance",
+      "type": "com.hazelcast.core.HazelcastInstance",
+      "description": "The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.hazelcast-mode",
+      "type": "java.lang.String",
+      "description": "The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": "node"
+    },
+    {
+      "name": "camel.component.hazelcast-topic.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hazelcast.topic.springboot.HazelcastTopicComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/hbase.json b/docs/components/modules/spring-boot/examples/json/hbase.json
new file mode 100644
index 0000000..d25838c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/hbase.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hbase",
+      "type": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hbase.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hbase.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hbase.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hbase.configuration",
+      "type": "org.apache.hadoop.conf.Configuration",
+      "description": "To use the shared configuration. The option is a org.apache.hadoop.conf.Configuration type.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hbase.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hbase.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hbase component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hbase.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hbase.pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of references to keep for each table in the HTable pool. The default value is 10.",
+      "sourceType": "org.apache.camel.component.hbase.springboot.HBaseComponentConfiguration",
+      "defaultValue": 10
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/hdfs.json b/docs/components/modules/spring-boot/examples/json/hdfs.json
new file mode 100644
index 0000000..79dd98f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/hdfs.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hdfs",
+      "type": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hdfs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hdfs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hdfs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hdfs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hdfs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.j-a-a-s-configuration",
+      "type": "javax.security.auth.login.Configuration",
+      "description": "To use the given configuration for security with JAAS. The option is a javax.security.auth.login.Configuration type.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.kerberos-config-file",
+      "type": "java.lang.String",
+      "description": "To use kerberos authentication, set the value of the 'java.security.krb5.conf' environment variable to an existing file. If the environment variable is already set, warn if different than the specified parameter",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hdfs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.hdfs.springboot.HdfsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/hl7.json b/docs/components/modules/spring-boot/examples/json/hl7.json
new file mode 100644
index 0000000..ed6f4ec
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/hl7.json
@@ -0,0 +1,65 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.hl7",
+      "type": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.hl7.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.hl7terser",
+      "type": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.hl7terser.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.hl7.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.hl7.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hl7 data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.hl7.validate",
+      "type": "java.lang.Boolean",
+      "description": "Whether to validate the HL7 message Is by default true.",
+      "sourceType": "org.apache.camel.component.hl7.springboot.HL7DataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.hl7terser.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.hl7terser.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hl7terser language. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.hl7terser.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.component.hl7.springboot.Hl7TerserLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/http-common.json b/docs/components/modules/spring-boot/examples/json/http-common.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/http-common.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/http.json b/docs/components/modules/spring-boot/examples/json/http.json
new file mode 100644
index 0000000..87f3f59
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/http.json
@@ -0,0 +1,271 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.http",
+      "type": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.http.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.auth-caching-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables authentication scheme caching",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.automatic-retries-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic request recovery and re-execution",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.http.client-connection-manager",
+      "type": "org.apache.http.conn.HttpClientConnectionManager",
+      "description": "To use a custom and shared HttpClientConnectionManager to manage connections. If this has been configured then this is always used for all endpoints created by this component. The option is a org.apache.http.conn.HttpClientConnectionManager type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "Determines the timeout in milliseconds until a connection is established. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.http.connection-request-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout in milliseconds used when requesting a connection from the connection manager. A timeout value of zero is interpreted as an infinite timeout. A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.http.connection-state-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables connection state tracking",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.connection-time-to-live",
+      "type": "java.lang.Long",
+      "description": "The time for connection to live, the time unit is millisecond, the default value is always keep alive.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.connections-per-route",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of connections per route.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.component.http.content-compression-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic content decompression",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.cookie-management-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables state (cookie) management",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.cookie-store",
+      "type": "org.apache.http.client.CookieStore",
+      "description": "To use a custom org.apache.http.client.CookieStore. By default the org.apache.http.impl.client.BasicCookieStore is used which is an in-memory only cookie store. Notice if bridgeEndpoint=true then the cookie store is forced to be a noop cookie store as cookie shouldn't be stored as we are just bridging (eg acting as a proxy). The option is a org.apache.http.client.CookieStore type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.copy-headers",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN headers).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.http.default-user-agent-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables the default user agent set by this builder if none has been provided by the user",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-client-configurer",
+      "type": "org.apache.camel.component.http.HttpClientConfigurer",
+      "description": "To use the custom HttpClientConfigurer to perform configuration of the HttpClient that will be used. The option is a org.apache.camel.component.http.HttpClientConfigurer type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.http-context",
+      "type": "org.apache.http.protocol.HttpContext",
+      "description": "To use a custom org.apache.http.protocol.HttpContext when executing requests. The option is a org.apache.http.protocol.HttpContext type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.max-total-connections",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of connections.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": 200
+    },
+    {
+      "name": "camel.component.http.proxy-auth-domain",
+      "type": "java.lang.String",
+      "description": "Proxy authentication domain to use",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-host",
+      "type": "java.lang.String",
+      "description": "Proxy authentication host",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-method",
+      "type": "java.lang.String",
+      "description": "Proxy authentication method to use",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-nt-host",
+      "type": "java.lang.String",
+      "description": "Proxy authentication domain (workstation name) to use with NTML",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-password",
+      "type": "java.lang.String",
+      "description": "Proxy authentication password",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-port",
+      "type": "java.lang.Integer",
+      "description": "Proxy authentication port",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.proxy-auth-username",
+      "type": "java.lang.String",
+      "description": "Proxy authentication username",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.redirect-handling-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic redirect handling",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.response-payload-streaming-threshold",
+      "type": "java.lang.Integer",
+      "description": "This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.http.skip-request-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.skip-response-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "Defines the socket timeout in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default).",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.http.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.http.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.http.x509-hostname-verifier",
+      "type": "javax.net.ssl.HostnameVerifier",
+      "description": "To use a custom X509HostnameVerifier such as DefaultHostnameVerifier or NoopHostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
+      "sourceType": "org.apache.camel.component.http.springboot.HttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/huaweicloud-dms.json b/docs/components/modules/spring-boot/examples/json/huaweicloud-dms.json
new file mode 100644
index 0000000..1b2d965
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/huaweicloud-dms.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-dms",
+      "type": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-dms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-dms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-dms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-dms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-dms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-dms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.dms.springboot.DMSComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/huaweicloud-functiongraph.json b/docs/components/modules/spring-boot/examples/json/huaweicloud-functiongraph.json
new file mode 100644
index 0000000..b150746
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/huaweicloud-functiongraph.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-functiongraph",
+      "type": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-functiongraph.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-functiongraph component. This is enabled by default.",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-functiongraph.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.springboot.FunctionGraphComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/huaweicloud-iam.json b/docs/components/modules/spring-boot/examples/json/huaweicloud-iam.json
new file mode 100644
index 0000000..1988951
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/huaweicloud-iam.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-iam",
+      "type": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-iam.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-iam.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-iam.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-iam.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-iam component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-iam.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.iam.springboot.IAMComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/huaweicloud-imagerecognition.json b/docs/components/modules/spring-boot/examples/json/huaweicloud-imagerecognition.json
new file mode 100644
index 0000000..0295e43
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/huaweicloud-imagerecognition.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-imagerecognition",
+      "type": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-imagerecognition.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-imagerecognition component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-imagerecognition.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.image.springboot.ImageRecognitionComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/huaweicloud-obs.json b/docs/components/modules/spring-boot/examples/json/huaweicloud-obs.json
new file mode 100644
index 0000000..1e63abc
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/huaweicloud-obs.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-obs",
+      "type": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-obs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-obs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-obs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.hwcloud-obs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-obs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-obs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-obs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.obs.springboot.OBSComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/huaweicloud-smn.json b/docs/components/modules/spring-boot/examples/json/huaweicloud-smn.json
new file mode 100644
index 0000000..2c73909
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/huaweicloud-smn.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.hwcloud-smn",
+      "type": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-smn.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.hwcloud-smn.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.hwcloud-smn.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.hwcloud-smn.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the hwcloud-smn component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.hwcloud-smn.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.huaweicloud.smn.springboot.SimpleNotificationComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/hystrix.json b/docs/components/modules/spring-boot/examples/json/hystrix.json
new file mode 100644
index 0000000..315c6e1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/hystrix.json
@@ -0,0 +1,33 @@
+{
+  "groups": [
+    {
+      "name": "camel.hystrix.mapping",
+      "type": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.hystrix.mapping.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables the automatic mapping of the hystrics metric servlet into the Spring web context.",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.hystrix.mapping.path",
+      "type": "java.lang.String",
+      "description": "Endpoint for hystrix metrics servlet.",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "defaultValue": "\/hystrix.stream"
+    },
+    {
+      "name": "camel.hystrix.mapping.servlet-name",
+      "type": "java.lang.String",
+      "description": "Name of the Hystrix metrics servlet.",
+      "sourceType": "org.apache.camel.component.hystrix.springboot.HystrixMappingConfiguration",
+      "defaultValue": "HystrixEventStreamServlet"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ical.json b/docs/components/modules/spring-boot/examples/json/ical.json
new file mode 100644
index 0000000..01093d9
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ical.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.ical",
+      "type": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.ical.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.ical.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.ical.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ical data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.ical.validating",
+      "type": "java.lang.Boolean",
+      "description": "Whether to validate.",
+      "sourceType": "org.apache.camel.component.ical.springboot.ICalDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/iec60870.json b/docs/components/modules/spring-boot/examples/json/iec60870.json
new file mode 100644
index 0000000..45fcc26
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/iec60870.json
@@ -0,0 +1,105 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.iec60870-client",
+      "type": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-client.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.iec60870-server",
+      "type": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-server.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.iec60870-client.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.iec60870-client.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.iec60870-client.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.iec60870-client.default-connection-options",
+      "type": "org.apache.camel.component.iec60870.client.ClientOptions",
+      "description": "Default connection options. The option is a org.apache.camel.component.iec60870.client.ClientOptions type.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-client.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the iec60870-client component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-client.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.iec60870.client.springboot.ClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.iec60870-server.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.iec60870-server.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.iec60870-server.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.iec60870-server.default-connection-options",
+      "type": "org.apache.camel.component.iec60870.server.ServerOptions",
+      "description": "Default connection options. The option is a org.apache.camel.component.iec60870.server.ServerOptions type.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-server.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the iec60870-server component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iec60870-server.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.iec60870.server.springboot.ServerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ignite.json b/docs/components/modules/spring-boot/examples/json/ignite.json
new file mode 100644
index 0000000..ec96335
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ignite.json
@@ -0,0 +1,399 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ignite-cache",
+      "type": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-compute",
+      "type": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-events",
+      "type": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-idgen",
+      "type": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-messaging",
+      "type": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-queue",
+      "type": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.ignite-set",
+      "type": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ignite-cache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-cache.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-cache.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-cache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-cache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-cache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.cache.springboot.IgniteCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-compute.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-compute.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-compute.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-compute component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-compute.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.compute.springboot.IgniteComputeComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-events.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-events.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-events.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-events.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-events component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-events.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.events.springboot.IgniteEventsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-idgen.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-idgen.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-idgen component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-idgen.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.idgen.springboot.IgniteIdGenComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-messaging.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-messaging.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-messaging.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-messaging.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-messaging component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-messaging.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.messaging.springboot.IgniteMessagingComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-queue.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-queue.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-queue.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-queue component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-queue.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.queue.springboot.IgniteQueueComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ignite-set.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ignite-set.configuration-resource",
+      "type": "java.lang.Object",
+      "description": "The resource from where to load the configuration. It can be a: URL, String or InputStream type. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ignite-set.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ignite-set component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.ignite",
+      "type": "org.apache.ignite.Ignite",
+      "description": "To use an existing Ignite instance. The option is a org.apache.ignite.Ignite type.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.ignite-configuration",
+      "type": "org.apache.ignite.configuration.IgniteConfiguration",
+      "description": "Allows the user to set a programmatic ignite configuration. The option is a org.apache.ignite.configuration.IgniteConfiguration type.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ignite-set.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ignite.set.springboot.IgniteSetComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/infinispan-embedded.json b/docs/components/modules/spring-boot/examples/json/infinispan-embedded.json
new file mode 100644
index 0000000..4c7f191
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/infinispan-embedded.json
@@ -0,0 +1,154 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.infinispan-embedded",
+      "type": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.infinispan-embedded.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.infinispan-embedded.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan-embedded.cache-container",
+      "type": "org.infinispan.manager.EmbeddedCacheManager",
+      "description": "Specifies the cache Container to connect. The option is a org.infinispan.manager.EmbeddedCacheManager type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.cache-container-configuration",
+      "type": "org.infinispan.configuration.cache.Configuration",
+      "description": "The CacheContainer configuration. Used if the cacheContainer is not defined. The option is a org.infinispan.configuration.cache.Configuration type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.clustered-listener",
+      "type": "java.lang.Boolean",
+      "description": "If true, the listener will be installed for the entire cluster",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan-embedded.configuration",
+      "type": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedConfiguration type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.configuration-uri",
+      "type": "java.lang.String",
+      "description": "An implementation specific URI for the CacheManager",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.custom-listener",
+      "type": "org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener",
+      "description": "Returns the custom listener in use, if provided. The option is a org.apache.camel.component.infinispan.embedded.InfinispanEmbeddedCustomListener type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.default-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific default value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the infinispan-embedded component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.event-types",
+      "type": "java.lang.String",
+      "description": "Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CACHE_ENTRY_ACTIVATED, CACHE_ENTRY_PASSIVATED, CACHE_ENTRY_VISITED, CACHE_ENTRY_LOADED, CACHE_ENTRY_EVICTED, CACHE_ENTRY_CREATED, CACHE_ENTRY_REMOVED, CACHE_ENTRY_MODIFIED, TRANSACTION_COMPLETED, TRANSACTION_REGISTERED, CACHE_ENTRY_INVALIDATED, CACHE_ENTRY_EXPIRED, DATA_REHASHED, TOPOLOGY_CHANGED, PARTITION_STATUS_CHANGED, PERSISTENCE_AVAILABILITY_CHANGED",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.flags",
+      "type": "java.lang.String",
+      "description": "A comma separated list of org.infinispan.context.Flag to be applied by default on each cache invocation",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.key",
+      "type": "java.lang.Object",
+      "description": "Set a specific key for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan-embedded.old-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific old value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.operation",
+      "type": "org.apache.camel.component.infinispan.InfinispanOperation",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.query-builder",
+      "type": "org.apache.camel.component.infinispan.InfinispanQueryBuilder",
+      "description": "Specifies the query builder. The option is a org.apache.camel.component.infinispan.InfinispanQueryBuilder type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.remapping-function",
+      "type": "java.util.function.BiFunction",
+      "description": "Set a specific remappingFunction to use in a compute operation. The option is a java.util.function.BiFunction type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.result-header",
+      "type": "java.lang.String",
+      "description": "Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan-embedded.sync",
+      "type": "java.lang.Boolean",
+      "description": "If true, the consumer will receive notifications synchronously",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.infinispan-embedded.value",
+      "type": "java.lang.Object",
+      "description": "Set a specific value for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.embedded.springboot.InfinispanEmbeddedComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/infinispan.json b/docs/components/modules/spring-boot/examples/json/infinispan.json
new file mode 100644
index 0000000..b47b44e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/infinispan.json
@@ -0,0 +1,189 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.infinispan",
+      "type": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.infinispan.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.infinispan.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan.cache-container",
+      "type": "org.infinispan.client.hotrod.RemoteCacheManager",
+      "description": "Specifies the cache Container to connect. The option is a org.infinispan.client.hotrod.RemoteCacheManager type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.cache-container-configuration",
+      "type": "org.infinispan.client.hotrod.configuration.Configuration",
+      "description": "The CacheContainer configuration. Used if the cacheContainer is not defined. The option is a org.infinispan.client.hotrod.configuration.Configuration type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.configuration",
+      "type": "org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.infinispan.remote.InfinispanRemoteConfiguration type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Implementation specific properties for the CacheManager",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.configuration-uri",
+      "type": "java.lang.String",
+      "description": "An implementation specific URI for the CacheManager",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.custom-listener",
+      "type": "org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener",
+      "description": "Returns the custom listener in use, if provided. The option is a org.apache.camel.component.infinispan.remote.InfinispanRemoteCustomListener type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.infinispan.default-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific default value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the infinispan component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.event-types",
+      "type": "java.lang.String",
+      "description": "Specifies the set of event types to register by the consumer.Multiple event can be separated by comma. The possible event types are: CLIENT_CACHE_ENTRY_CREATED, CLIENT_CACHE_ENTRY_MODIFIED, CLIENT_CACHE_ENTRY_REMOVED, CLIENT_CACHE_ENTRY_EXPIRED, CLIENT_CACHE_FAILOVER",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.flags",
+      "type": "java.lang.String",
+      "description": "A comma separated list of org.infinispan.client.hotrod.Flag to be applied by default on each cache invocation.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.hosts",
+      "type": "java.lang.String",
+      "description": "Specifies the host of the cache on Infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.key",
+      "type": "java.lang.Object",
+      "description": "Set a specific key for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan.old-value",
+      "type": "java.lang.Object",
+      "description": "Set a specific old value for some producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.operation",
+      "type": "org.apache.camel.component.infinispan.InfinispanOperation",
+      "description": "The operation to perform",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.password",
+      "type": "java.lang.String",
+      "description": "Define the password to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.query-builder",
+      "type": "org.apache.camel.component.infinispan.InfinispanQueryBuilder",
+      "description": "Specifies the query builder. The option is a org.apache.camel.component.infinispan.InfinispanQueryBuilder type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.remapping-function",
+      "type": "java.util.function.BiFunction",
+      "description": "Set a specific remappingFunction to use in a compute operation. The option is a java.util.function.BiFunction type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.result-header",
+      "type": "java.lang.String",
+      "description": "Store the operation result in a header instead of the message body. By default, resultHeader == null and the query result is stored in the message body, any existing content in the message body is discarded. If resultHeader is set, the value is used as the name of the header to store the query result and the original message body is preserved. This value can be overridden by an in message header named: CamelInfinispanOperationResultHeader",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.sasl-mechanism",
+      "type": "java.lang.String",
+      "description": "Define the SASL Mechanism to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.secure",
+      "type": "java.lang.Boolean",
+      "description": "Define if we are connecting to a secured Infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.infinispan.security-realm",
+      "type": "java.lang.String",
+      "description": "Define the security realm to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.security-server-name",
+      "type": "java.lang.String",
+      "description": "Define the security server name to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.username",
+      "type": "java.lang.String",
+      "description": "Define the username to access the infinispan instance",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.infinispan.value",
+      "type": "java.lang.Object",
+      "description": "Set a specific value for producer operations. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.infinispan.remote.springboot.InfinispanRemoteComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/influxdb.json b/docs/components/modules/spring-boot/examples/json/influxdb.json
new file mode 100644
index 0000000..ee30549
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/influxdb.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.influxdb",
+      "type": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.influxdb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.influxdb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.influxdb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.influxdb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the influxdb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.influxdb.influx-d-b",
+      "type": "org.influxdb.InfluxDB",
+      "description": "The shared Influx DB to use for all endpoints. The option is a org.influxdb.InfluxDB type.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.influxdb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.influxdb.springboot.InfluxDbComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/iota.json b/docs/components/modules/spring-boot/examples/json/iota.json
new file mode 100644
index 0000000..d0729a2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/iota.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.iota",
+      "type": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iota.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.iota.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.iota.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.iota.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the iota component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.iota.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.iota.springboot.IOTAComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ipfs.json b/docs/components/modules/spring-boot/examples/json/ipfs.json
new file mode 100644
index 0000000..fadd802
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ipfs.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ipfs",
+      "type": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ipfs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ipfs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ipfs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ipfs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ipfs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ipfs.ipfs-host",
+      "type": "java.lang.String",
+      "description": "The ipfs host",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": "127.0.0.1"
+    },
+    {
+      "name": "camel.component.ipfs.ipfs-port",
+      "type": "java.lang.Integer",
+      "description": "The ipfs port",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": 5001
+    },
+    {
+      "name": "camel.component.ipfs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ipfs.springboot.IPFSComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/irc.json b/docs/components/modules/spring-boot/examples/json/irc.json
new file mode 100644
index 0000000..b4c7788
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/irc.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.irc",
+      "type": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.irc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.irc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.irc.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.irc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.irc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the irc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.irc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.irc.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.irc.springboot.IrcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ironmq.json b/docs/components/modules/spring-boot/examples/json/ironmq.json
new file mode 100644
index 0000000..51b6c51
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ironmq.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ironmq",
+      "type": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ironmq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ironmq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ironmq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ironmq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ironmq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ironmq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ironmq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ironmq.springboot.IronMQComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jackson-avro.json b/docs/components/modules/spring-boot/examples/json/jackson-avro.json
new file mode 100644
index 0000000..6f7c18d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jackson-avro.json
@@ -0,0 +1,144 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.avro-jackson",
+      "type": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.avro-jackson.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.auto-discover-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "If set to true then Jackson will lookup for an objectMapper into the registry",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.auto-discover-schema-resolver",
+      "type": "java.lang.Boolean",
+      "description": "When not disabled, the SchemaResolver will be looked up into the registry",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the avro-jackson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.schema-resolver",
+      "type": "java.lang.String",
+      "description": "Optional schema resolver used to lookup schemas for the data in transit.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.timezone",
+      "type": "java.lang.String",
+      "description": "If set then Jackson will use the Timezone when marshalling\/unmarshalling.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.avro-jackson.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jackson.avro.springboot.JacksonAvroDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jackson-protobuf.json b/docs/components/modules/spring-boot/examples/json/jackson-protobuf.json
new file mode 100644
index 0000000..88674c0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jackson-protobuf.json
@@ -0,0 +1,144 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.protobuf-jackson",
+      "type": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.protobuf-jackson.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.auto-discover-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "If set to true then Jackson will lookup for an objectMapper into the registry",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.auto-discover-schema-resolver",
+      "type": "java.lang.Boolean",
+      "description": "When not disabled, the SchemaResolver will be looked up into the registry",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the protobuf-jackson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.schema-resolver",
+      "type": "java.lang.String",
+      "description": "Optional schema resolver used to lookup schemas for the data in transit.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.timezone",
+      "type": "java.lang.String",
+      "description": "If set then Jackson will use the Timezone when marshalling\/unmarshalling.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf-jackson.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jackson.protobuf.springboot.JacksonProtobufDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jackson.json b/docs/components/modules/spring-boot/examples/json/jackson.json
new file mode 100644
index 0000000..bd1bf3e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jackson.json
@@ -0,0 +1,151 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-jackson",
+      "type": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-jackson.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.auto-discover-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "If set to true then Jackson will lookup for an objectMapper into the registry",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.auto-discover-schema-resolver",
+      "type": "java.lang.Boolean",
+      "description": "When not disabled, the SchemaResolver will be looked up into the registry",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-jackson.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-jackson.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-jackson data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing ObjectMapper with the given id when using Jackson.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jackson.schema-resolver",
+      "type": "java.lang.String",
+      "description": "Optional schema resolver used to lookup schemas for the data in transit.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.timezone",
+      "type": "java.lang.String",
+      "description": "If set then Jackson will use the Timezone when marshalling\/unmarshalling. This option will have no effect on the others Json DataFormat, like gson, fastjson and xstream.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jackson.use-default-object-mapper",
+      "type": "java.lang.Boolean",
+      "description": "Whether to lookup and use default Jackson ObjectMapper from the registry.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-jackson.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jackson.springboot.JacksonDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jacksonxml.json b/docs/components/modules/spring-boot/examples/json/jacksonxml.json
new file mode 100644
index 0000000..ab96aa4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jacksonxml.json
@@ -0,0 +1,125 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.jacksonxml",
+      "type": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.jacksonxml.allow-jms-type",
+      "type": "java.lang.Boolean",
+      "description": "Used for JMS users to allow the JMSType header from the JMS spec to specify a FQN classname to use to unmarshal to.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.allow-unmarshall-type",
+      "type": "java.lang.Boolean",
+      "description": "If enabled then Jackson is allowed to attempt to use the CamelJacksonUnmarshalType header during the unmarshalling. This should only be enabled when desired to be used.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.collection-type",
+      "type": "java.lang.String",
+      "description": "Refers to a custom collection type to lookup in the registry to use. This option should rarely be used, but allows to use different collection types than java.util.Collection based as default.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.disable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to disable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.enable-features",
+      "type": "java.lang.String",
+      "description": "Set of features to enable on the Jackson com.fasterxml.jackson.databind.ObjectMapper. The features should be a name that matches a enum from com.fasterxml.jackson.databind.SerializationFeature, com.fasterxml.jackson.databind.DeserializationFeature, or com.fasterxml.jackson.databind.MapperFeature Multiple features can be separated by comma",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.enable-jaxb-annotation-module",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable the JAXB annotations module when using jackson. When enabled then JAXB annotations can be used by Jackson.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jacksonxml data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.include",
+      "type": "java.lang.String",
+      "description": "If you want to marshal a pojo to JSON, and the pojo has some fields with null values. And you want to skip these null values, you can set this option to NON_NULL",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.json-view",
+      "type": "java.lang.String",
+      "description": "When marshalling a POJO to JSON you might want to exclude certain fields from the JSON output. With Jackson you can use JSON views to accomplish this. This option is to refer to the class which has JsonView annotations",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.module-class-names",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules com.fasterxml.jackson.databind.Module specified as a String with FQN class names. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.module-refs",
+      "type": "java.lang.String",
+      "description": "To use custom Jackson modules referred from the Camel registry. Multiple modules can be separated by comma.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.use-list",
+      "type": "java.lang.Boolean",
+      "description": "To unmarshal to a List of Map or a List of Pojo.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jacksonxml.xml-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing XmlMapper with the given id.",
+      "sourceType": "org.apache.camel.component.jacksonxml.springboot.JacksonXMLDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jasypt.json b/docs/components/modules/spring-boot/examples/json/jasypt.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jasypt.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jaxb.json b/docs/components/modules/spring-boot/examples/json/jaxb.json
new file mode 100644
index 0000000..e790aea
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jaxb.json
@@ -0,0 +1,152 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.jaxb",
+      "type": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.jaxb.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.jaxb.context-path",
+      "type": "java.lang.String",
+      "description": "Package name where your JAXB classes are located.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.context-path-is-class-name",
+      "type": "java.lang.Boolean",
+      "description": "This can be set to true to mark that the contextPath is referring to a classname and not a package name.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.jaxb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jaxb data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.encoding",
+      "type": "java.lang.String",
+      "description": "To overrule and use a specific encoding",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.filter-non-xml-chars",
+      "type": "java.lang.Boolean",
+      "description": "To ignore non xml characheters and replace them with an empty space.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.fragment",
+      "type": "java.lang.Boolean",
+      "description": "To turn on marshalling XML fragment trees. By default JAXB looks for XmlRootElement annotation on given class to operate on whole XML tree. This is useful but not always - sometimes generated code does not have XmlRootElement annotation, sometimes you need unmarshall only part of tree. In that case you can use partial unmarshalling. To enable this behaviours you need set property partClass. Camel will pass this class to JAXB's unmarshaler.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.ignore-j-a-x-b-element",
+      "type": "java.lang.Boolean",
+      "description": "Whether to ignore JAXBElement elements - only needed to be set to false in very special use-cases.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.jaxb-provider-properties",
+      "type": "java.lang.String",
+      "description": "Refers to a custom java.util.Map to lookup in the registry containing custom JAXB provider properties to be used with the JAXB marshaller.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.must-be-j-a-x-b-element",
+      "type": "java.lang.Boolean",
+      "description": "Whether marhsalling must be java objects with JAXB annotations. And if not then it fails. This option can be set to false to relax that, such as when the data is already in XML format.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.namespace-prefix-ref",
+      "type": "java.lang.String",
+      "description": "When marshalling using JAXB or SOAP then the JAXB implementation will automatic assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.no-namespace-schema-location",
+      "type": "java.lang.String",
+      "description": "To define the location of the namespaceless schema",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.object-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow using ObjectFactory classes to create the POJO classes during marshalling. This only applies to POJO classes that has not been annotated with JAXB and providing jaxb.index descriptor files.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.part-class",
+      "type": "java.lang.String",
+      "description": "Name of class used for fragment parsing. See more details at the fragment option.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.part-namespace",
+      "type": "java.lang.String",
+      "description": "XML namespace to use for fragment parsing. See more details at the fragment option.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.jaxb.schema",
+      "type": "java.lang.String",
+      "description": "To validate against an existing schema. Your can use the prefix classpath:, file: or http: to specify how the resource should by resolved. You can separate multiple schema files by using the ',' character.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.schema-location",
+      "type": "java.lang.String",
+      "description": "To define the location of the schema",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jaxb.schema-severity-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the schema severity level to use when validating against a schema. This level determines the minimum severity error that triggers JAXB to stop continue parsing. The default value of 0 (warning) means that any error (warning, error or fatal error) will trigger JAXB to stop. There are the following three levels: 0=warning, 1=error, 2=fatal error.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.dataformat.jaxb.xml-stream-writer-wrapper",
+      "type": "java.lang.String",
+      "description": "To use a custom xml stream writer.",
+      "sourceType": "org.apache.camel.converter.jaxb.springboot.JaxbDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jbpm.json b/docs/components/modules/spring-boot/examples/json/jbpm.json
new file mode 100644
index 0000000..cb8600c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jbpm.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jbpm",
+      "type": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jbpm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jbpm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jbpm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jbpm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jbpm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jbpm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jbpm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jbpm.springboot.JBPMComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jcache.json b/docs/components/modules/spring-boot/examples/json/jcache.json
new file mode 100644
index 0000000..c41ef20
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jcache.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jcache",
+      "type": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jcache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jcache.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jcache.cache-configuration",
+      "type": "javax.cache.configuration.Configuration",
+      "description": "A Configuration for the Cache. The option is a javax.cache.configuration.Configuration type.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.cache-configuration-properties",
+      "type": "java.util.Map",
+      "description": "Properties to configure jcache",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.cache-configuration-properties-ref",
+      "type": "java.lang.String",
+      "description": "References to an existing Properties or Map to lookup in the registry to use for configuring jcache.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.caching-provider",
+      "type": "java.lang.String",
+      "description": "The fully qualified class name of the javax.cache.spi.CachingProvider",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.configuration-uri",
+      "type": "java.lang.String",
+      "description": "An implementation specific URI for the CacheManager",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jcache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jcache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jcache.springboot.JCacheComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jclouds.json b/docs/components/modules/spring-boot/examples/json/jclouds.json
new file mode 100644
index 0000000..78e053e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jclouds.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jclouds",
+      "type": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jclouds.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jclouds.blob-stores",
+      "type": "java.util.List<org.jclouds.blobstore.BlobStore>",
+      "description": "To use the given BlobStore which must be configured when using blobstore.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jclouds.compute-services",
+      "type": "java.util.List<org.jclouds.compute.ComputeService>",
+      "description": "To use the given ComputeService which must be configured when use compute.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jclouds.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jclouds component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jclouds.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jclouds.springboot.JcloudsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jcr.json b/docs/components/modules/spring-boot/examples/json/jcr.json
new file mode 100644
index 0000000..9c05880
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jcr.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jcr",
+      "type": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcr.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jcr.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jcr.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jcr.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jcr.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jcr component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jcr.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jcr.springboot.JcrComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jdbc.json b/docs/components/modules/spring-boot/examples/json/jdbc.json
new file mode 100644
index 0000000..d058c4c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jdbc.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jdbc",
+      "type": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jdbc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jdbc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jdbc.connection-strategy",
+      "type": "org.apache.camel.component.jdbc.ConnectionStrategy",
+      "description": "To use a custom strategy for working with connections. Do not use a custom strategy when using the spring-jdbc component because a special Spring ConnectionStrategy is used by default to support Spring Transactions. The option is a org.apache.camel.component.jdbc.ConnectionStrategy type.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jdbc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jdbc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jdbc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jdbc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jdbc.springboot.JdbcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jetty-common.json b/docs/components/modules/spring-boot/examples/json/jetty-common.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jetty-common.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jetty.json b/docs/components/modules/spring-boot/examples/json/jetty.json
new file mode 100644
index 0000000..7eb421c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jetty.json
@@ -0,0 +1,230 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jetty",
+      "type": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jetty.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jetty.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.continuation-timeout",
+      "type": "java.lang.Long",
+      "description": "Allows to set a timeout in millis when using Jetty as consumer (server). By default Jetty uses 30000. You can use a value of = 0 to never expire. If a timeout occurs then the request will be expired and Jetty will return back a http error 503 to the client. This option is only in use when using Jetty with the Asynchronous Routing Engine.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.jetty.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jetty.enable-jmx",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true, Jetty JMX support will be enabled for this endpoint.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jetty component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.error-handler",
+      "type": "org.eclipse.jetty.server.handler.ErrorHandler",
+      "description": "This option is used to set the ErrorHandler that Jetty server uses. The option is a org.eclipse.jetty.server.handler.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "Not to be used - use JettyHttpBinding instead. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "Jetty component does not use HttpConfiguration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.jetty-http-binding",
+      "type": "org.apache.camel.component.jetty.JettyHttpBinding",
+      "description": "To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer. The option is a org.apache.camel.component.jetty.JettyHttpBinding type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.keystore",
+      "type": "java.lang.String",
+      "description": "Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.max-threads",
+      "type": "java.lang.Integer",
+      "description": "To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.mb-container",
+      "type": "org.eclipse.jetty.jmx.MBeanContainer",
+      "description": "To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans. The option is a org.eclipse.jetty.jmx.MBeanContainer type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.min-threads",
+      "type": "java.lang.Integer",
+      "description": "To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.proxy-host",
+      "type": "java.lang.String",
+      "description": "To use a http proxy to configure the hostname.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "To use a http proxy to configure the port number.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.request-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the request buffer size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.request-header-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the request header size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.response-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the response buffer size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.response-header-size",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a custom value of the response header size on the Jetty connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.send-server-version",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jetty.socket-connector-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.socket-connectors",
+      "type": "java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector>",
+      "description": "A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-password",
+      "type": "java.lang.String",
+      "description": "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).",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-socket-connector-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "A map which contains general SSL connector properties.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.ssl-socket-connectors",
+      "type": "java.util.Map<java.lang.Integer,org.eclipse.jetty.server.Connector>",
+      "description": "A map which contains per port number specific SSL connectors.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.thread-pool",
+      "type": "org.eclipse.jetty.util.thread.ThreadPool",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9"
+    },
+    {
+      "name": "camel.component.jetty.use-continuation",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to use Jetty continuations for the Jetty Server.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jetty.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jetty.use-x-forwarded-for-header",
+      "type": "java.lang.Boolean",
+      "description": "To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr.",
+      "sourceType": "org.apache.camel.component.jetty9.springboot.JettyHttpComponentConfiguration9",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jfr.json b/docs/components/modules/spring-boot/examples/json/jfr.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jfr.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jgroups-raft.json b/docs/components/modules/spring-boot/examples/json/jgroups-raft.json
new file mode 100644
index 0000000..9f77ef6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jgroups-raft.json
@@ -0,0 +1,111 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.jgroups-raft",
+      "type": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft",
+      "type": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.jgroups-raft.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the jgroups raft cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.jgroups-raft-cluster-name",
+      "type": "java.lang.String",
+      "description": "JGroups Cluster name",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.jgroups-raft-config",
+      "type": "java.lang.String",
+      "description": "JGrups-raft configuration File name",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups-raft.raft-id",
+      "type": "java.lang.String",
+      "description": "JGroups-raft ID",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.cluster.springboot.JGroupsRaftClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jgroups-raft.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups-raft.channel-properties",
+      "type": "java.lang.String",
+      "description": "Specifies configuration properties of the RaftHandle JChannel used by the endpoint (ignored if raftHandle ref is provided).",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": "raft.xml"
+    },
+    {
+      "name": "camel.component.jgroups-raft.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jgroups-raft.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jgroups-raft component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups-raft.raft-handle",
+      "type": "org.jgroups.raft.RaftHandle",
+      "description": "RaftHandle to use. The option is a org.jgroups.raft.RaftHandle type.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.raft-id",
+      "type": "java.lang.String",
+      "description": "Unique raftId to use.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups-raft.state-machine",
+      "type": "org.jgroups.protocols.raft.StateMachine",
+      "description": "StateMachine to use. The option is a org.jgroups.protocols.raft.StateMachine type.",
+      "sourceType": "org.apache.camel.component.jgroups.raft.springboot.JGroupsRaftComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jgroups.json b/docs/components/modules/spring-boot/examples/json/jgroups.json
new file mode 100644
index 0000000..1a331b4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jgroups.json
@@ -0,0 +1,99 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.jgroups",
+      "type": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups",
+      "type": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.jgroups.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the jgroups lock cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.jgroups.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups.jgroups-cluster-name",
+      "type": "java.lang.String",
+      "description": "JGroups Cluster name",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.jgroups.jgroups-config",
+      "type": "java.lang.String",
+      "description": "JGrups configuration File name",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.cluster.springboot.JGroupsLockClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jgroups.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups.channel",
+      "type": "org.jgroups.JChannel",
+      "description": "Channel to use. The option is a org.jgroups.JChannel type.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.channel-properties",
+      "type": "java.lang.String",
+      "description": "Specifies configuration properties of the JChannel used by the endpoint.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jgroups.enable-view-messages",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, the consumer endpoint will receive org.jgroups.View messages as well (not only org.jgroups.Message instances). By default only regular messages are consumed by the endpoint.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jgroups.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jgroups component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jgroups.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jgroups.springboot.JGroupsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jing.json b/docs/components/modules/spring-boot/examples/json/jing.json
new file mode 100644
index 0000000..2ced3f5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jing.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jing",
+      "type": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jing.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jing.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jing.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jing.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jing component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jing.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.validator.jing.springboot.JingComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jira.json b/docs/components/modules/spring-boot/examples/json/jira.json
new file mode 100644
index 0000000..351dfb0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jira.json
@@ -0,0 +1,105 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jira",
+      "type": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jira.access-token",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The access token generated by the Jira server.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jira.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jira.configuration",
+      "type": "org.apache.camel.component.jira.JiraConfiguration",
+      "description": "To use a shared base jira configuration. The option is a org.apache.camel.component.jira.JiraConfiguration type.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.consumer-key",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The consumer key from Jira settings.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jira.delay",
+      "type": "java.lang.Integer",
+      "description": "Time in milliseconds to elapse for the next poll.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": 6000
+    },
+    {
+      "name": "camel.component.jira.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jira component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.jira-url",
+      "type": "java.lang.String",
+      "description": "The Jira server url, example: http:\/\/my_jira.com:8081",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jira.password",
+      "type": "java.lang.String",
+      "description": "(Basic authentication only) The password to authenticate to the Jira server. Use only if username basic authentication is used.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.private-key",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The private key generated by the client to encrypt the conversation to the server.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.username",
+      "type": "java.lang.String",
+      "description": "(Basic authentication only) The username to authenticate to the Jira server. Use only if OAuth is not enabled on the Jira server. Do not set the username and OAuth token parameter, if they are both set, the username basic authentication takes precedence.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jira.verification-code",
+      "type": "java.lang.String",
+      "description": "(OAuth only) The verification code from Jira generated in the first step of the authorization proccess.",
+      "sourceType": "org.apache.camel.component.jira.springboot.JiraComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jms.json b/docs/components/modules/spring-boot/examples/json/jms.json
new file mode 100644
index 0000000..7b2fd72
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jms.json
@@ -0,0 +1,679 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jms",
+      "type": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jms.accept-messages-while-stopping",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer accept messages while it is stopping. You may consider enabling this option, if you start and stop JMS routes at runtime, while there are still messages enqueued on the queue. If this option is false, and you stop the JMS route, then messages may be rejected, and the JMS broker would have to attempt redeliveries, which yet again may be rejected, and eventually the message may be moved at a dead letter queue on the JMS broker. To avoid this its recommended to enable this option.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.acknowledgement-mode-name",
+      "type": "java.lang.String",
+      "description": "The JMS acknowledgement name, which is one of: SESSION_TRANSACTED, CLIENT_ACKNOWLEDGE, AUTO_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": "AUTO_ACKNOWLEDGE"
+    },
+    {
+      "name": "camel.component.jms.allow-additional-headers",
+      "type": "java.lang.String",
+      "description": "This option is used to allow additional headers which may have values that are invalid according to JMS specification. For example some message systems such as WMQ do this with header names using prefix JMS_IBM_MQMD_ containing values with byte array or other invalid types. You can specify multiple header names separated by comma, and use as suffix for wildcard matching.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.allow-auto-wired-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover ConnectionFactory from the registry, if no connection factory has been configured. If only one instance of ConnectionFactory is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.allow-auto-wired-destination-resolver",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto-discover DestinationResolver from the registry, if no destination resolver has been configured. If only one instance of DestinationResolver is found then it will be used. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an JMSException is thrown.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.allow-reply-manager-quick-stop",
+      "type": "java.lang.Boolean",
+      "description": "Whether the DefaultMessageListenerContainer used in the reply managers for request-reply messaging allow the DefaultMessageListenerContainer.runningAllowed flag to quick stop in case JmsConfiguration#isAcceptMessagesWhileStopping is enabled, and org.apache.camel.CamelContext is currently being stopped. This quick stop ability is enabled by default in the regular JMS consumers but to enable for reply managers you must enable this flag.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Controls whether or not to include serialized headers. Applies only when transferExchange is true. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.always-copy-message",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will always make a JMS message copy of the message when it is passed to the producer for sending. Copying the message is needed in some situations, such as when a replyToDestinationSelectorName is set (incidentally, Camel will set the alwaysCopyMessage option to true, if a replyToDestinationSelectorName is set)",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.artemis-consumer-priority",
+      "type": "java.lang.Integer",
+      "description": "Consumer priorities allow you to ensure that high priority consumers receive messages while they are active. Normally, active consumers connected to a queue receive messages from it in a round-robin fashion. When consumer priorities are in use, messages are delivered round-robin if multiple active consumers exist with the same high priority. Messages will only going to lower priority consumers when the high priority consumers do not have credit available to consume the message, or those high priority consumers have declined to accept the message (for instance because it does not meet the criteria of any selectors associated with the consumer).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.artemis-streaming-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether optimizing for Apache Artemis streaming mode. This can reduce memory overhead when using Artemis with JMS StreamMessage types. This option must only be enabled if Apache Artemis is being used.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.async-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the JmsConsumer processes the Exchange asynchronously. If enabled then the JmsConsumer may pickup the next message from the JMS queue, while the previous message is being processed asynchronously (by the Asynchronous Routing Engine). This means that messages may be processed not 100% strictly in order. If disabled (as default) then the Exchange is fully processed before the JmsConsumer will pickup the next message from the JMS queue. Note if transacted has been enabled, then asyncConsumer=true does not run asynchronously, as transaction must be executed synchronously (Camel 3.0 may support async transactions).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.async-start-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to startup the JmsConsumer message listener asynchronously, when starting a route. For example if a JmsConsumer cannot get a connection to a remote JMS broker, then it may block while retrying and\/or failover. This will cause Camel to block while starting routes. By setting this option to true, you will let routes startup, while the JmsConsumer connects to the JMS broker using a dedicated thread in asynchronous mode. If this option is used, then beware that if the connection could not be established, then an exception is logged at WARN level, and the consumer will not be able to receive messages; You can then restart the route to retry.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.async-stop-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to stop the JmsConsumer message listener asynchronously, when stopping a route.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.cache-level",
+      "type": "java.lang.Integer",
+      "description": "Sets the cache level by ID for the underlying JMS resources. See cacheLevelName option for more details.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the underlying JMS resources. Possible values are: CACHE_AUTO, CACHE_CONNECTION, CACHE_CONSUMER, CACHE_NONE, and CACHE_SESSION. The default setting is CACHE_AUTO. See the Spring documentation and Transactions Cache Levels for more information.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": "CACHE_AUTO"
+    },
+    {
+      "name": "camel.component.jms.client-id",
+      "type": "java.lang.String",
+      "description": "Sets the JMS client ID to use. Note that this value, if specified, must be unique and can only be used by a single JMS connection instance. It is typically only required for durable topic subscriptions. If using Apache ActiveMQ you may prefer to use Virtual Topics instead.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.configuration",
+      "type": "org.apache.camel.component.jms.JmsConfiguration",
+      "description": "To use a shared JMS configuration. The option is a org.apache.camel.component.jms.JmsConfiguration type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.consumer-type",
+      "type": "org.apache.camel.component.jms.ConsumerType",
+      "description": "The consumer type to use, which can be one of: Simple, Default, or Custom. The consumer type determines which Spring JMS listener to use. Default will use org.springframework.jms.listener.DefaultMessageListenerContainer, Simple will use org.springframework.jms.listener.SimpleMessageListenerContainer. When Custom is specified, the MessageListenerContainerFactory defined by the messageListenerContainerFactory option will determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.correlation-property",
+      "type": "java.lang.String",
+      "description": "When using InOut exchange pattern use this JMS property instead of JMSCorrelationID JMS property to correlate messages. If set messages will be correlated solely on the value of this property JMSCorrelationID property will be ignored and not set by Camel.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jms.default-task-executor-type",
+      "type": "org.apache.camel.component.jms.DefaultTaskExecutorType",
+      "description": "Specifies what default TaskExecutor type to use in the DefaultMessageListenerContainer, for both consumer endpoints and the ReplyTo consumer of producer endpoints. Possible values: SimpleAsync (uses Spring's SimpleAsyncTaskExecutor) or ThreadPool (uses Spring's ThreadPoolTaskExecutor with optimal values - cached threadpool-like). If not set, it defaults to the previous behaviour, which uses a cached thread pool for consumer endpoints and SimpleAsync for reply consumers. The use of ThreadPool is recommended to reduce thread trash in elastic configurations with dynamically increasing and decreasing concurrent consumers.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.delivery-delay",
+      "type": "java.lang.Long",
+      "description": "Sets delivery delay to use for send calls for JMS. This option requires JMS 2.0 compliant broker.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.delivery-mode",
+      "type": "java.lang.Integer",
+      "description": "Specifies the delivery mode to be used. Possible values are those defined by javax.jms.DeliveryMode. NON_PERSISTENT = 1 and PERSISTENT = 2.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether persistent delivery is used by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.destination-resolver",
+      "type": "org.springframework.jms.support.destination.DestinationResolver",
+      "description": "A pluggable org.springframework.jms.support.destination.DestinationResolver that allows you to use your own resolver (for example, to lookup the real destination in a JNDI registry). The option is a org.springframework.jms.support.destination.DestinationResolver type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.disable-reply-to",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel ignores the JMSReplyTo header in messages. If true, Camel does not send a reply back to the destination specified in the JMSReplyTo header. You can use this option if you want Camel to consume from a route and you do not want Camel to automatically send back a reply message because another component in your code handles the reply message. You can also use this option if you want to use Camel as a proxy between different message brokers and you want to route message from one system to another.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.disable-time-to-live",
+      "type": "java.lang.Boolean",
+      "description": "Use this option to force disabling time to live. For example when you do request\/reply over JMS, then Camel will by default use the requestTimeout value as time to live on the message being sent. The problem is that the sender and receiver systems have to have their clocks synchronized, so they are in sync. This is not always so easy to archive. So you can use disableTimeToLive=true to not set a time to live value on the sent message. Then the message will not expire on the receiver system. See below in section About time to live for more details.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.durable-subscription-name",
+      "type": "java.lang.String",
+      "description": "The durable subscriber name for specifying durable topic subscriptions. The clientId option must be configured as well.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.eager-loading-of-properties",
+      "type": "java.lang.Boolean",
+      "description": "Enables eager loading of JMS properties and payload as soon as a message is loaded which generally is inefficient as the JMS properties may not be required but sometimes can catch early any issues with the underlying JMS provider and the use of JMS properties. See also the option eagerPoisonBody.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.eager-poison-body",
+      "type": "java.lang.String",
+      "description": "If eagerLoadingOfProperties is enabled and the JMS message payload (JMS body or JMS properties) is poison (cannot be read\/mapped), then set this text as the message body instead so the message can be processed (the cause of the poison are already stored as exception on the Exchange). This can be turned off by setting eagerPoisonBody=false. See also the option eagerLoadingOfProperties.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": "Poison JMS message due to ${exception.message}"
+    },
+    {
+      "name": "camel.component.jms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "Specifies a org.springframework.util.ErrorHandler to be invoked in case of any uncaught exceptions thrown while processing a Message. By default these exceptions will be logged at the WARN level, if no errorHandler has been configured. You can configure logging level and whether stack traces should be logged using errorHandlerLoggingLevel and errorHandlerLogStackTrace options. This makes it much easier to configure, than having to code a custom errorHandler. The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.error-handler-log-stack-trace",
+      "type": "java.lang.Boolean",
+      "description": "Allows to control whether stacktraces should be logged or not, by the default errorHandler.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.error-handler-logging-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "Allows to configure the default errorHandler logging level for logging uncaught exceptions.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.exception-listener",
+      "type": "javax.jms.ExceptionListener",
+      "description": "Specifies the JMS Exception Listener that is to be notified of any underlying JMS exceptions. The option is a javax.jms.ExceptionListener type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.explicit-qos-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Set if the deliveryMode, priority or timeToLive qualities of service should be used when sending messages. This option is based on Spring's JmsTemplate. The deliveryMode, priority and timeToLive options are applied to the current endpoint. This contrasts with the preserveMessageQos option, which operates at message granularity, reading QoS properties exclusively from the Camel In message headers.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.expose-listener-session",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the listener session should be exposed when consuming messages.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.force-send-original-message",
+      "type": "java.lang.Boolean",
+      "description": "When using mapJmsMessage=false Camel will create a new JMS message to send to a new JMS destination if you touch the headers (get or set) during the route. Set this option to true to force Camel to send the original JMS message that was received.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.format-date-headers-to-iso8601",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether JMS date properties should be formatted according to the ISO 8601 standard.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.idle-consumer-limit",
+      "type": "java.lang.Integer",
+      "description": "Specify the limit for the number of consumers that are allowed to be idle at any given time.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.idle-task-execution-limit",
+      "type": "java.lang.Integer",
+      "description": "Specifies the limit for idle executions of a receive task, not having received any message within its execution. If this limit is reached, the task will shut down and leave receiving to other executing tasks (in the case of dynamic scheduling; see the maxConcurrentConsumers setting). There is additional doc available from Spring.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.include-all-j-m-s-x-properties",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include all JMSXxxx properties when mapping from JMS to Camel Message. Setting this to true will include properties such as JMSXAppID, and JMSXUserID etc. Note: If you are using a custom headerFilterStrategy then this option does not apply.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.include-sent-j-m-s-message-i-d",
+      "type": "java.lang.Boolean",
+      "description": "Only applicable when sending to JMS destination using InOnly (eg fire and forget). Enabling this option will enrich the Camel Exchange with the actual JMSMessageID that was used by the JMS client when the message was sent to the JMS destination.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.jms-key-format-strategy",
+      "type": "org.apache.camel.component.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides two implementations out of the box: default and passthrough. The default strategy will safely marshal dots and hyphens (. and -). The passthrough strategy leaves the key as is. Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.jms-message-type",
+      "type": "org.apache.camel.component.jms.JmsMessageType",
+      "description": "Allows you to force the use of a specific javax.jms.Message implementation for sending JMS messages. Possible values are: Bytes, Map, Object, Stream, Text. By default, Camel would determine which JMS message type to use from the In body type. This option allows you to specify it.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.lazy-create-transaction-manager",
+      "type": "java.lang.Boolean",
+      "description": "If true, Camel will create a JmsTransactionManager, if there is no transactionManager injected when option transacted=true.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.map-jms-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should auto map the received JMS message to a suited payload type, such as javax.jms.TextMessage to a String etc.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when consuming from JMS (not for request\/reply over JMS). See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads. When doing request\/reply over JMS then the option replyToMaxConcurrentConsumers is used to control number of concurrent consumers on the reply message listener.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.max-messages-per-task",
+      "type": "java.lang.Integer",
+      "description": "The number of messages per task. -1 is unlimited. If you use a range for concurrent consumers (eg min max), then this option can be used to set a value to eg 100 to control how fast the consumers will shrink when less work is required.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.message-converter",
+      "type": "org.springframework.jms.support.converter.MessageConverter",
+      "description": "To use a custom Spring org.springframework.jms.support.converter.MessageConverter so you can be in control how to map to\/from a javax.jms.Message. The option is a org.springframework.jms.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.message-created-strategy",
+      "type": "org.apache.camel.component.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.message-id-enabled",
+      "type": "java.lang.Boolean",
+      "description": "When sending, specifies whether message IDs should be added. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the message ID set to null; if the provider ignores the hint, the message ID must be set to its normal unique value.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.message-listener-container-factory",
+      "type": "org.apache.camel.component.jms.MessageListenerContainerFactory",
+      "description": "Registry ID of the MessageListenerContainerFactory used to determine what org.springframework.jms.listener.AbstractMessageListenerContainer to use to consume messages. Setting this will automatically set consumerType to Custom. The option is a org.apache.camel.component.jms.MessageListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.message-timestamp-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether timestamps should be enabled by default on sending messages. This is just an hint to the JMS broker. If the JMS provider accepts this hint, these messages must have the timestamp set to zero; if the provider ignores the hint the timestamp must be set to its normal value.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.password",
+      "type": "java.lang.String",
+      "description": "Password to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.preserve-message-qos",
+      "type": "java.lang.Boolean",
+      "description": "Set to true, if you want to send message using the QoS settings specified on the message, instead of the QoS settings on the JMS endpoint. The following three headers are considered JMSPriority, JMSDeliveryMode, and JMSExpiration. You can provide all or only some of them. If not provided, Camel will fall back to use the values from the endpoint instead. So, when using this option, the headers override the values from the endpoint. The explicitQosEnabled option, by contrast, will only use options set on the endpoint, and not values from the message header.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.priority",
+      "type": "java.lang.Integer",
+      "description": "Values greater than 1 specify the message priority when sending (where 1 is the lowest priority and 9 is the highest). The explicitQosEnabled option must also be enabled in order for this option to have any effect.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 4
+    },
+    {
+      "name": "camel.component.jms.pub-sub-no-local",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to inhibit the delivery of messages published by its own connection.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.queue-browse-strategy",
+      "type": "org.apache.camel.component.jms.QueueBrowseStrategy",
+      "description": "To use a custom QueueBrowseStrategy when browsing queues. The option is a org.apache.camel.component.jms.QueueBrowseStrategy type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.receive-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for receiving messages (in milliseconds). The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.jms.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.jms.reply-to",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination (overrides any incoming value of Message.getJMSReplyTo() in consumer).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-cache-level-name",
+      "type": "java.lang.String",
+      "description": "Sets the cache level by name for the reply consumer when doing request\/reply over JMS. This option only applies when using fixed reply queues (not temporary). Camel will by default use: CACHE_CONSUMER for exclusive or shared w\/ replyToSelectorName. And CACHE_SESSION for shared without replyToSelectorName. Some JMS brokers such as IBM WebSphere may require to set the replyToCacheLevelName=CACHE_NONE to work. Note: If using temporary queues then CACHE_NONE is not allowed, and you must use a higher value such as CACHE_CONSUMER or CACHE_SESSION.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the default number of concurrent consumers when doing request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.reply-to-delivery-persistent",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use persistent delivery by default for replies.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jms.reply-to-destination-selector-name",
+      "type": "java.lang.String",
+      "description": "Sets the JMS Selector using the fixed name to be used so you can filter out your own replies from the others when using a shared queue (that is, if you are not using a temporary reply queue).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers when using request\/reply over JMS. See also the maxMessagesPerTask option to control dynamic scaling up\/down of threads.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.jms.reply-to-override",
+      "type": "java.lang.String",
+      "description": "Provides an explicit ReplyTo destination in the JMS message, which overrides the setting of replyTo. It is useful if you want to forward the message to a remote Queue and receive the reply message from the ReplyTo destination.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.reply-to-same-destination-allowed",
+      "type": "java.lang.Boolean",
+      "description": "Whether a JMS consumer is allowed to send a reply message to the same destination that the consumer is using to consume from. This prevents an endless loop by consuming and sending back the same message to itself.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.reply-to-type",
+      "type": "org.apache.camel.component.jms.ReplyToType",
+      "description": "Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request\/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications if running in a clustered environment, and the fact that Shared reply queues has lower performance than its alternatives Temporary and Exclusive.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.request-timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.jms.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.jms.selector",
+      "type": "java.lang.String",
+      "description": "Sets the JMS selector to use",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.stream-message-type-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until no more data.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.subscription-durable",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.subscription-name",
+      "type": "java.lang.String",
+      "description": "Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS 2.0).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.subscription-shared",
+      "type": "java.lang.Boolean",
+      "description": "Set whether to make the subscription shared. The shared subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a shared subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Note that shared subscriptions may also be durable, so this flag can (and often will) be combined with subscriptionDurable as well. Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the pubSubDomain flag as well. Requires a JMS 2.0 compatible message broker.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.task-executor",
+      "type": "org.springframework.core.task.TaskExecutor",
+      "description": "Allows you to specify a custom task executor for consuming messages. The option is a org.springframework.core.task.TaskExecutor type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.time-to-live",
+      "type": "java.lang.Long",
+      "description": "When sending messages, specifies the time-to-live of the message (in milliseconds).",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.transacted",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to use transacted mode",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.transacted-in-out",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether InOut operations (request reply) default to using transacted mode If this flag is set to true, then Spring JmsTemplate will have sessionTransacted set to true, and the acknowledgeMode as transacted on the JmsTemplate used for InOut operations. Note from Spring JMS: that within a JTA transaction, the parameters passed to createQueue, createTopic methods are not taken into account. Depending on the Java EE transaction context, the container makes its own decisions on these values. Analogously, these parameters are not taken into account within a locally managed transaction either, since Spring JMS operates on an existing JMS Session in this case. Setting this flag to true will use a short local JMS transaction when running outside of a managed transaction, and a synchronized local JMS transaction in case of a managed transaction (other than an XA transaction) being present. This has the effect of a local JMS transaction being managed alongside the main transaction (which might be a native JDBC transaction), with the JMS transaction committing right after the main transaction.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "The Spring transaction manager to use. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.transaction-name",
+      "type": "java.lang.String",
+      "description": "The name of the transaction to use.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.transaction-timeout",
+      "type": "java.lang.Integer",
+      "description": "The timeout value of the transaction (in seconds), if using transacted mode.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.jms.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and you are using Request Reply messaging (InOut) and an Exchange failed on the consumer side, then the caused Exception will be send back in response as a javax.jms.ObjectMessage. If the client is Camel, the returned Exception is rethrown. This allows you to use Camel JMS as a bridge in your routing - for example, using persistent queues to enable robust routing. Notice that if you also have transferExchange enabled, this option takes precedence. The caught exception is required to be serializable. The original Exception on the consumer side can be wrapped in an outer exception such as org.apache.camel.RuntimeCamelException when returned to the producer. Use this with caution as the data is using Java Object serialization and requires the received to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumer!",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "You can transfer the exchange over the wire instead of just the body and headers. The following fields are transferred: In body, Out body, Fault body, In headers, Out headers, Fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level. You must enable this option on both the producer and consumer side, so Camel knows the payloads is an Exchange and not a regular payload. Use this with caution as the data is using Java Object serialization and requires the receiver to be able to deserialize the data at Class level, which forces a strong coupling between the producers and consumers having to use compatible Camel versions!",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.use-message-i-d-as-correlation-i-d",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether JMSMessageID should always be used as JMSCorrelationID for InOut messages.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jms.username",
+      "type": "java.lang.String",
+      "description": "Username to use with the ConnectionFactory. You can also configure username\/password directly on the ConnectionFactory.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jms.wait-for-provision-correlation-to-be-updated-counter",
+      "type": "java.lang.Integer",
+      "description": "Number of times to wait for provisional correlation id to be updated to the actual correlation id when doing request\/reply over JMS and when the option useMessageIDAsCorrelationID is enabled.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.jms.wait-for-provision-correlation-to-be-updated-thread-sleeping-time",
+      "type": "java.lang.Long",
+      "description": "Interval in millis to sleep each time while waiting for provisional correlation id to be updated. The option is a long type.",
+      "sourceType": "org.apache.camel.component.jms.springboot.JmsComponentConfiguration",
+      "defaultValue": 100
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jmx.json b/docs/components/modules/spring-boot/examples/json/jmx.json
new file mode 100644
index 0000000..b518d28
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jmx.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jmx",
+      "type": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jmx.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jmx.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jmx.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jmx.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jmx.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jmx component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jmx.springboot.JMXComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/johnzon.json b/docs/components/modules/spring-boot/examples/json/johnzon.json
new file mode 100644
index 0000000..f44bbfe
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/johnzon.json
@@ -0,0 +1,48 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-johnzon",
+      "type": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-johnzon.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-johnzon data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing Mapper with the given id.",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-johnzon.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.johnzon.springboot.JohnzonDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jolt.json b/docs/components/modules/spring-boot/examples/json/jolt.json
new file mode 100644
index 0000000..e22e2b9
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jolt.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jolt",
+      "type": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jolt.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jolt.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jolt.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jolt.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jolt.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jolt component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jolt.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jolt.transform",
+      "type": "com.bazaarvoice.jolt.Transform",
+      "description": "Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created. The option is a com.bazaarvoice.jolt.Transform type.",
+      "sourceType": "org.apache.camel.component.jolt.springboot.JoltComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jooq.json b/docs/components/modules/spring-boot/examples/json/jooq.json
new file mode 100644
index 0000000..f82236d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jooq.json
@@ -0,0 +1,81 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jooq",
+      "type": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jooq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jooq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jooq.configuration",
+      "type": "org.apache.camel.component.jooq.JooqConfiguration",
+      "description": "Component configuration (database connection, database entity type, etc.). The option is a org.apache.camel.component.jooq.JooqConfiguration type.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.consume-delete",
+      "type": "java.lang.Boolean",
+      "description": "Delete entity after it is consumed",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jooq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jooq.database-configuration",
+      "type": "org.jooq.Configuration",
+      "description": "To use a specific database configuration. The option is a org.jooq.Configuration type.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jooq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jooq.operation",
+      "type": "org.apache.camel.component.jooq.JooqOperation",
+      "description": "Type of operation to execute on query",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jooq.query",
+      "type": "java.lang.String",
+      "description": "To execute plain SQL query",
+      "sourceType": "org.apache.camel.component.jooq.springboot.JooqComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/joor.json b/docs/components/modules/spring-boot/examples/json/joor.json
new file mode 100644
index 0000000..3b7e884
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/joor.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.joor",
+      "type": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.joor.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.joor.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.joor.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the joor language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.joor.pre-compile",
+      "type": "java.lang.Boolean",
+      "description": "Whether the expression should be pre compiled once during initialization phase. If this is turned off, then the expression is reloaded and compiled on each evaluation.",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.joor.single-quotes",
+      "type": "java.lang.Boolean",
+      "description": "Whether single quotes can be used as replacement for double quotes. This is convenient when you need to work with strings inside strings.",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.joor.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.joor.springboot.JoorLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jpa.json b/docs/components/modules/spring-boot/examples/json/jpa.json
new file mode 100644
index 0000000..2b7af22
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jpa.json
@@ -0,0 +1,82 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jpa",
+      "type": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jpa.aliases",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Maps an alias to a JPA entity class. The alias can then be used in the endpoint URI (instead of the fully qualified class name).",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jpa.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jpa.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jpa.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jpa component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.entity-manager-factory",
+      "type": "javax.persistence.EntityManagerFactory",
+      "description": "To use the EntityManagerFactory. This is strongly recommended to configure. The option is a javax.persistence.EntityManagerFactory type.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jpa.join-transaction",
+      "type": "java.lang.Boolean",
+      "description": "The camel-jpa component will join transaction by default. You can use this option to turn this off, for example if you use LOCAL_RESOURCE and join transaction doesn't work with your JPA provider. This option can also be set globally on the JpaComponent, instead of having to set it on all endpoints.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jpa.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jpa.shared-entity-manager",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use Spring's SharedEntityManager for the consumer\/producer. Note in most cases joinTransaction should be set to false as this is not an EXTENDED EntityManager.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jpa.transaction-manager",
+      "type": "org.springframework.transaction.PlatformTransactionManager",
+      "description": "To use the PlatformTransactionManager for managing transactions. The option is a org.springframework.transaction.PlatformTransactionManager type.",
+      "sourceType": "org.apache.camel.component.jpa.springboot.JpaComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jsch.json b/docs/components/modules/spring-boot/examples/json/jsch.json
new file mode 100644
index 0000000..c3b6813
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jsch.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.scp",
+      "type": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.scp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.scp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.scp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the scp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.scp.verbose-logging",
+      "type": "java.lang.Boolean",
+      "description": "JSCH is verbose logging out of the box. Therefore we turn the logging down to DEBUG logging by default. But setting this option to true turns on the verbose logging again.",
+      "sourceType": "org.apache.camel.component.scp.springboot.ScpComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jslt.json b/docs/components/modules/spring-boot/examples/json/jslt.json
new file mode 100644
index 0000000..6c3cb6a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jslt.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jslt",
+      "type": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jslt.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jslt.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jslt.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jslt.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jslt.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jslt component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jslt.functions",
+      "type": "java.util.Collection<com.schibsted.spt.data.jslt.Function>",
+      "description": "JSLT can be extended by plugging in functions written in Java.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jslt.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jslt.object-filter",
+      "type": "com.schibsted.spt.data.jslt.filters.JsonFilter",
+      "description": "JSLT can be extended by plugging in a custom jslt object filter. The option is a com.schibsted.spt.data.jslt.filters.JsonFilter type.",
+      "sourceType": "org.apache.camel.component.jslt.springboot.JsltComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/json-patch.json b/docs/components/modules/spring-boot/examples/json/json-patch.json
new file mode 100644
index 0000000..3a4b60b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/json-patch.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.json-patch",
+      "type": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-patch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.json-patch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.json-patch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.json-patch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-patch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-patch.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jsonpatch.springboot.JsonPatchComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/json-validator.json b/docs/components/modules/spring-boot/examples/json/json-validator.json
new file mode 100644
index 0000000..7f13d78
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/json-validator.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.json-validator",
+      "type": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-validator.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.json-validator.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.json-validator.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.json-validator.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-validator component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.json-validator.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jsonvalidator.springboot.JsonValidatorComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jsonApi.json b/docs/components/modules/spring-boot/examples/json/jsonApi.json
new file mode 100644
index 0000000..729b89a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jsonApi.json
@@ -0,0 +1,41 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.jsonapi",
+      "type": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.jsonapi.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.data-format-types",
+      "type": "java.lang.Class<java.lang.Object>[]",
+      "description": "The classes to take into account for the marshalling",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jsonApi data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.jsonapi.main-format-type",
+      "type": "java.lang.Class<java.lang.Object>",
+      "description": "The classes to take into account while unmarshalling",
+      "sourceType": "org.apache.camel.component.jsonapi.springboot.JsonApiDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jsonata.json b/docs/components/modules/spring-boot/examples/json/jsonata.json
new file mode 100644
index 0000000..0669f0e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jsonata.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jsonata",
+      "type": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jsonata.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jsonata.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jsonata.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jsonata.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jsonata component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jsonata.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jsonata.springboot.JsonataComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jsonb.json b/docs/components/modules/spring-boot/examples/json/jsonb.json
new file mode 100644
index 0000000..2d747a9
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jsonb.json
@@ -0,0 +1,48 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-jsonb",
+      "type": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-jsonb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-jsonb data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.object-mapper",
+      "type": "java.lang.String",
+      "description": "Lookup and use the existing Jsonb instance with the given id.",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-jsonb.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.jsonb.springboot.JsonbDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jsonpath.json b/docs/components/modules/spring-boot/examples/json/jsonpath.json
new file mode 100644
index 0000000..11c216d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jsonpath.json
@@ -0,0 +1,76 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.jsonpath",
+      "type": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.jsonpath.allow-easy-predicate",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow using the easy predicate parser to pre-parse predicates.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.jsonpath.allow-simple",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow in inlined Simple exceptions in the JSONPath expression",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.jsonpath.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.jsonpath.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jsonpath language. This is enabled by default.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.header-name",
+      "type": "java.lang.String",
+      "description": "Name of header to use as input, instead of the message body",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.option",
+      "type": "java.lang.String",
+      "description": "To configure additional options on JSONPath. Multiple values can be separated by comma.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.jsonpath.suppress-exceptions",
+      "type": "java.lang.Boolean",
+      "description": "Whether to suppress exceptions such as PathNotFoundException.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.jsonpath.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.jsonpath.write-as-string",
+      "type": "java.lang.Boolean",
+      "description": "Whether to write the output of each row\/element as a JSON String value instead of a Map\/POJO value.",
+      "sourceType": "org.apache.camel.jsonpath.springboot.JsonPathLanguageConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/jt400.json b/docs/components/modules/spring-boot/examples/json/jt400.json
new file mode 100644
index 0000000..0529337
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/jt400.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.jt400",
+      "type": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jt400.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.jt400.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.jt400.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.jt400.connection-pool",
+      "type": "com.ibm.as400.access.AS400ConnectionPool",
+      "description": "Default connection pool used by the component. Note that this pool is lazily initialized. This is because in a scenario where the user always provides a pool, it would be wasteful for Camel to initialize and keep an idle pool. The option is a com.ibm.as400.access.AS400ConnectionPool type.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jt400.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.jt400.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the jt400 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.jt400.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.jt400.springboot.Jt400ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/kafka.json b/docs/components/modules/spring-boot/examples/json/kafka.json
new file mode 100644
index 0000000..851ef8f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/kafka.json
@@ -0,0 +1,720 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kafka",
+      "type": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kafka.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.allow-manual-commit",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow doing manual commits via KafkaManualCommit. If this option is enabled then an instance of KafkaManualCommit is stored on the Exchange message header, which allows end users to access this API and perform manual offset commits via the Kafka consumer.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.auto-commit-enable",
+      "type": "java.lang.Boolean",
+      "description": "If true, periodically commit to ZooKeeper the offset of messages already fetched by the consumer. This committed offset will be used when the process fails as the position from which the new consumer will begin.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.auto-commit-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The frequency in ms that the consumer offsets are committed to zookeeper.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.kafka.auto-commit-on-stop",
+      "type": "java.lang.String",
+      "description": "Whether to perform an explicit auto commit when the consumer stops to ensure the broker has a commit from the last consumed message. This requires the option autoCommitEnable is turned on. The possible values are: sync, async, or none. And sync is the default value.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "sync"
+    },
+    {
+      "name": "camel.component.kafka.auto-offset-reset",
+      "type": "java.lang.String",
+      "description": "What to do when there is no initial offset in ZooKeeper or if an offset is out of range: earliest : automatically reset the offset to the earliest offset latest : automatically reset the offset to the latest offset fail: throw exception to the consumer",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.kafka.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.break-on-first-error",
+      "type": "java.lang.Boolean",
+      "description": "This options controls what happens when a consumer is processing an exchange and it fails. If the option is false then the consumer continues to the next message and processes it. If the option is true then the consumer breaks out, and will seek back to offset of the message that caused a failure, and then re-attempt to process this message. However this can lead to endless processing of the same message if its bound to fail every time, eg a poison message. Therefore its recommended to deal with that for example by using Camel's error handler.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.brokers",
+      "type": "java.lang.String",
+      "description": "URL of the Kafka brokers to use. The format is host1:port1,host2:port2, and the list can be a subset of brokers or a VIP pointing to a subset of brokers. This option is known as bootstrap.servers in the Kafka documentation.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.buffer-memory-size",
+      "type": "java.lang.Integer",
+      "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will either block or throw an exception based on the preference specified by block.on.buffer.full.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be used for compression (if compression is enabled) as well as for maintaining in-flight requests.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 33554432
+    },
+    {
+      "name": "camel.component.kafka.check-crcs",
+      "type": "java.lang.Boolean",
+      "description": "Automatically check the CRC32 of the records consumed. This ensures no on-the-wire or on-disk corruption to the messages occurred. This check adds some overhead, so it may be disabled in cases seeking extreme performance.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.client-id",
+      "type": "java.lang.String",
+      "description": "The client id is a user-specified string sent in each request to help trace calls. It should logically identify the application making the request.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.commit-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum time, in milliseconds, that the code will wait for a synchronous commit to complete. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.kafka.compression-codec",
+      "type": "java.lang.String",
+      "description": "This parameter allows you to specify the compression codec for all data generated by this producer. Valid values are none, gzip and snappy.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "none"
+    },
+    {
+      "name": "camel.component.kafka.configuration",
+      "type": "org.apache.camel.component.kafka.KafkaConfiguration",
+      "description": "Allows to pre-configure the Kafka component with common options that the endpoints will reuse. The option is a org.apache.camel.component.kafka.KafkaConfiguration type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.connection-max-idle-ms",
+      "type": "java.lang.Integer",
+      "description": "Close idle connections after the number of milliseconds specified by this config.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 540000
+    },
+    {
+      "name": "camel.component.kafka.consumer-request-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 40000
+    },
+    {
+      "name": "camel.component.kafka.consumers-count",
+      "type": "java.lang.Integer",
+      "description": "The number of consumers that connect to kafka server. Each consumer is run on a separate thread, that retrieves and process the incoming data.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.kafka.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kafka.delivery-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "An upper bound on the time to report success or failure after a call to send() returns. This limits the total time that a record will be delayed prior to sending, the time to await acknowledgement from the broker (if expected), and the time allowed for retriable send failures.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.kafka.enable-idempotence",
+      "type": "java.lang.Boolean",
+      "description": "If set to 'true' the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries may write duplicates of the retried message in the stream. If set to true this option will require max.in.flight.requests.per.connection to be set to 1 and retries cannot be zero and additionally acks must be set to 'all'.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kafka component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.fetch-max-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data the server should return for a fetch request This is not an absolute maximum, if the first message in the first non-empty partition of the fetch is larger than this value, the message will still be returned to ensure that the consumer can make progress. The maximum message size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config). Note that the consumer performs multiple fetches in parallel.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 52428800
+    },
+    {
+      "name": "camel.component.kafka.fetch-min-bytes",
+      "type": "java.lang.Integer",
+      "description": "The minimum amount of data the server should return for a fetch request. If insufficient data is available the request will wait for that much data to accumulate before answering the request.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.kafka.fetch-wait-max-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time the server will block before answering the fetch request if there isn't sufficient data to immediately satisfy fetch.min.bytes",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.kafka.group-id",
+      "type": "java.lang.String",
+      "description": "A string that uniquely identifies the group of consumer processes to which this consumer belongs. By setting the same group id multiple processes indicate that they are all part of the same consumer group. This option is required for consumers.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.group-instance-id",
+      "type": "java.lang.String",
+      "description": "A unique identifier of the consumer instance provided by the end user. Only non-empty strings are permitted. If set, the consumer is treated as a static member, which means that only one instance with this ID is allowed in the consumer group at any time. This can be used in combination with a larger session timeout to avoid group rebalances caused by transient unavailability (e.g. process restarts). If not set, the consumer will join the group as a dynamic member, which is the traditional behavior.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.header-deserializer",
+      "type": "org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer",
+      "description": "To use a custom KafkaHeaderDeserializer to deserialize kafka headers values. The option is a org.apache.camel.component.kafka.serde.KafkaHeaderDeserializer type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.header-serializer",
+      "type": "org.apache.camel.component.kafka.serde.KafkaHeaderSerializer",
+      "description": "To use a custom KafkaHeaderSerializer to serialize kafka headers values. The option is a org.apache.camel.component.kafka.serde.KafkaHeaderSerializer type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The expected time between heartbeats to the consumer coordinator when using Kafka's group management facilities. Heartbeats are used to ensure that the consumer's session stays active and to facilitate rebalancing when new consumers join or leave the group. The value must be set lower than session.timeout.ms, but typically should be set no higher than 1\/3 of that value. It can be adjusted even lower to control the expected time for normal rebalances.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 3000
+    },
+    {
+      "name": "camel.component.kafka.interceptor-classes",
+      "type": "java.lang.String",
+      "description": "Sets interceptors for producer or consumers. Producer interceptors have to be classes implementing org.apache.kafka.clients.producer.ProducerInterceptor Consumer interceptors have to be classes implementing org.apache.kafka.clients.consumer.ConsumerInterceptor Note that if you use Producer interceptor on a consumer it will throw a class cast exception in runtime",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kafka-client-factory",
+      "type": "org.apache.camel.component.kafka.KafkaClientFactory",
+      "description": "Factory to use for creating org.apache.kafka.clients.consumer.KafkaConsumer and org.apache.kafka.clients.producer.KafkaProducer instances. This allows to configure a custom factory to create instances with logic that extends the vanilla Kafka clients. The option is a org.apache.camel.component.kafka.KafkaClientFactory type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kafka-manual-commit-factory",
+      "type": "org.apache.camel.component.kafka.KafkaManualCommitFactory",
+      "description": "Factory to use for creating KafkaManualCommit instances. This allows to plugin a custom factory to create custom KafkaManualCommit instances in case special logic is needed when doing manual commits that deviates from the default implementation that comes out of the box. The option is a org.apache.camel.component.kafka.KafkaManualCommitFactory type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-before-relogin-min-time",
+      "type": "java.lang.Integer",
+      "description": "Login thread sleep time between refresh attempts.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.kafka.kerberos-init-cmd",
+      "type": "java.lang.String",
+      "description": "Kerberos kinit command path. Default is \/usr\/bin\/kinit",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "\/usr\/bin\/kinit"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-principal-to-local-rules",
+      "type": "java.lang.String",
+      "description": "A list of rules for mapping from principal names to short names (typically operating system usernames). The rules are evaluated in order and the first rule that matches a principal name is used to map it to a short name. Any later rules in the list are ignored. By default, principal names of the form {username}\/{hostname}{REALM} are mapped to {username}. For more details on the format please see the security authorization and acls documentation.. Multiple values can be separated by comma",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "DEFAULT"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-renew-jitter",
+      "type": "java.lang.Double",
+      "description": "Percentage of random jitter added to the renewal time.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.kerberos-renew-window-factor",
+      "type": "java.lang.Double",
+      "description": "Login thread will sleep until the specified window factor of time from last refresh to ticket's expiry has been reached, at which time it will try to renew the ticket.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.key",
+      "type": "java.lang.String",
+      "description": "The record key (or null if no key is specified). If this option has been configured then it take precedence over header KafkaConstants#KEY",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.key-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for key that implements the Deserializer interface.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.kafka.key-serializer",
+      "type": "java.lang.String",
+      "description": "The serializer class for keys (defaults to the same as for messages if nothing is given).",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.kafka.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.linger-ms",
+      "type": "java.lang.Integer",
+      "description": "The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay that is, rather than immediately sending out a record the producer will wait for up to the given delay to allow other records to be sent so that the sends can be batched together. This can be thought of as analogous to Nagle's algorithm in TCP. This setting gives the upper bound on the delay for batching: once we get batch.size worth of records for a partition it will be sent immediately regardless of this setting, however if we have fewer than this many bytes accumulated for this partition we will 'linger' for the specified time waiting for more records to show up. This setting defaults to 0 (i.e. no delay). Setting linger.ms=5, for example, would have the effect of reducing the number of requests sent but would add up to 5ms of latency to records sent in the absense of load.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.kafka.max-block-ms",
+      "type": "java.lang.Integer",
+      "description": "The configuration controls how long sending to kafka will block. These methods can be blocked for multiple reasons. For e.g: buffer full, metadata unavailable.This configuration imposes maximum limit on the total time spent in fetching metadata, serialization of key and value, partitioning and allocation of buffer memory when doing a send(). In case of partitionsFor(), this configuration imposes a maximum time threshold on waiting for metadata",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.kafka.max-in-flight-request",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled).",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.kafka.max-partition-fetch-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data per-partition the server will return. The maximum total memory used for a request will be #partitions max.partition.fetch.bytes. This size must be at least as large as the maximum message size the server allows or else it is possible for the producer to send messages larger than the consumer can fetch. If that happens, the consumer can get stuck trying to fetch a large message on a certain partition.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.kafka.max-poll-interval-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records. If poll() is not called before expiration of this timeout, then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.max-poll-records",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records returned in a single call to poll()",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.kafka.max-request-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of a request. This is also effectively a cap on the maximum record size. Note that the server has its own cap on record size which may be different from this. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.kafka.metadata-max-age-ms",
+      "type": "java.lang.Integer",
+      "description": "The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.kafka.metric-reporters",
+      "type": "java.lang.String",
+      "description": "A list of classes to use as metrics reporters. Implementing the MetricReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.metrics-sample-window-ms",
+      "type": "java.lang.Integer",
+      "description": "The number of samples maintained to compute metrics.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.kafka.no-of-metrics-sample",
+      "type": "java.lang.Integer",
+      "description": "The number of samples maintained to compute metrics.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.kafka.offset-repository",
+      "type": "org.apache.camel.spi.StateRepository<java.lang.String,java.lang.String>",
+      "description": "The offset repository to use in order to locally store the offset of each partition of the topic. Defining one will disable the autocommit. The option is a org.apache.camel.spi.StateRepository<java.lang.String, java.lang.String> type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.partition-assignor",
+      "type": "java.lang.String",
+      "description": "The class name of the partition assignment strategy that the client will use to distribute partition ownership amongst consumer instances when group management is used",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.consumer.RangeAssignor"
+    },
+    {
+      "name": "camel.component.kafka.partition-key",
+      "type": "java.lang.Integer",
+      "description": "The partition to which the record will be sent (or null if no partition was specified). If this option has been configured then it take precedence over header KafkaConstants#PARTITION_KEY",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.partitioner",
+      "type": "java.lang.String",
+      "description": "The partitioner class for partitioning messages amongst sub-topics. The default partitioner is based on the hash of the key.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner"
+    },
+    {
+      "name": "camel.component.kafka.poll-exception-strategy",
+      "type": "org.apache.camel.component.kafka.PollExceptionStrategy",
+      "description": "To use a custom strategy with the consumer to control how to handle exceptions thrown from the Kafka broker while pooling messages. The option is a org.apache.camel.component.kafka.PollExceptionStrategy type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.poll-on-error",
+      "type": "org.apache.camel.component.kafka.PollOnError",
+      "description": "What to do if kafka threw an exception while polling for new messages. Will by default use the value from the component configuration unless an explicit value has been configured on the endpoint level. DISCARD will discard the message and continue to poll next message. ERROR_HANDLER will use Camel's error handler to process the exception, and afterwards continue to poll next message. RECONNECT will re-connect the consumer and try poll the message again RETRY will let the consumer retry polling the same message again STOP will stop the consumer (have to be manually started\/restarted if the consumer should be able to consume messages again)",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.poll-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The timeout used when polling the KafkaConsumer. The option is a java.lang.Long type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.kafka.producer-batch-size",
+      "type": "java.lang.Integer",
+      "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size.Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent.A small batch size will make batching less common and may reduce throughput (a batch size of zero will disable batching entirely). A very large batch size may use memory a bit more wastefully as we will always allocate a buffer of the specified batch size in anticipation of additional records.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 16384
+    },
+    {
+      "name": "camel.component.kafka.queue-buffering-max-messages",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of unsent messages that can be queued up the producer when using async mode before either the producer must be blocked or data must be dropped.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.kafka.receive-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.kafka.reconnect-backoff-max-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.kafka.reconnect-backoff-ms",
+      "type": "java.lang.Integer",
+      "description": "The amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all requests sent by the consumer to the broker.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.kafka.record-metadata",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should store the RecordMetadata results from sending to Kafka. The results are stored in a List containing the RecordMetadata metadata's. The list is stored on a header with the key KafkaConstants#KAFKA_RECORDMETA",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kafka.request-required-acks",
+      "type": "java.lang.String",
+      "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are common: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and the retries configuration will not take effect (as the client won't generally know of any failures). The offset given back for each record will always be set to -1. acks=1 This will mean the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers. In this case should the leader fail immediately after acknowledging the record but before the followers have replicated it then the record will be lost. acks=all This means the leader will wait for the full set of in-sync replicas to acknowledge the record. This guarantees that the record will not be lost as long as at least one in-sync replica remains alive. This is the strongest available guarantee.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "1"
+    },
+    {
+      "name": "camel.component.kafka.request-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The amount of time the broker will wait trying to meet the request.required.acks requirement before sending back an error to the client.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.kafka.resume-strategy",
+      "type": "org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy",
+      "description": "This option allows the user to set a custom resume strategy. The resume strategy is executed when partitions are assigned (i.e.: when connecting or reconnecting). It allows implementations to customize how to resume operations and serve as more flexible alternative to the seekTo and the offsetRepository mechanisms. See the KafkaConsumerResumeStrategy for implementation details. This option does not affect the auto commit setting. It is likely that implementations using this setting will also want to evaluate using the manual commit option along with this. The option is a org.apache.camel.component.kafka.consumer.support.KafkaConsumerResumeStrategy type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.retries",
+      "type": "java.lang.Integer",
+      "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries will potentially change the ordering of records because if two records are sent to a single partition, and the first fails and is retried but the second succeeds, then the second record may appear first.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.kafka.retry-backoff-ms",
+      "type": "java.lang.Integer",
+      "description": "Before each retry, the producer refreshes the metadata of relevant topics to see if a new leader has been elected. Since leader election takes a bit of time, this property specifies the amount of time that the producer waits before refreshing the metadata.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.kafka.sasl-jaas-config",
+      "type": "java.lang.String",
+      "description": "Expose the kafka sasl.jaas.config parameter Example: org.apache.kafka.common.security.plain.PlainLoginModule required username=USERNAME password=PASSWORD;",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.sasl-kerberos-service-name",
+      "type": "java.lang.String",
+      "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's config.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.sasl-mechanism",
+      "type": "java.lang.String",
+      "description": "The Simple Authentication and Security Layer (SASL) Mechanism used. For the valid values see http:\/\/www.iana.org\/assignments\/sasl-mechanisms\/sasl-mechanisms.xhtml",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "GSSAPI"
+    },
+    {
+      "name": "camel.component.kafka.schema-registry-u-r-l",
+      "type": "java.lang.String",
+      "description": "URL of the Confluent Platform schema registry servers to use. The format is host1:port1,host2:port2. This is known as schema.registry.url in the Confluent Platform documentation. This option is only available in the Confluent Platform (not standard Apache Kafka)",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.security-protocol",
+      "type": "java.lang.String",
+      "description": "Protocol used to communicate with brokers. SASL_PLAINTEXT, PLAINTEXT and SSL are supported",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "PLAINTEXT"
+    },
+    {
+      "name": "camel.component.kafka.seek-to",
+      "type": "java.lang.String",
+      "description": "Set if KafkaConsumer will read from beginning or end on startup: beginning : read from beginning end : read from end This is replacing the earlier property seekToBeginning",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.send-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "Socket write buffer size",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 131072
+    },
+    {
+      "name": "camel.component.kafka.session-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The timeout used to detect failures when using Kafka's group management facilities.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.kafka.shutdown-timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in milliseconds to wait gracefully for the consumer or producer to shutdown and terminate its worker threads.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.kafka.specific-avro-reader",
+      "type": "java.lang.Boolean",
+      "description": "This enables the use of a specific Avro reader for use with the Confluent Platform schema registry and the io.confluent.kafka.serializers.KafkaAvroDeserializer. This option is only available in the Confluent Platform (not standard Apache Kafka)",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.ssl-cipher-suites",
+      "type": "java.lang.String",
+      "description": "A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol.By default all the available cipher suites are supported.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL configuration using a Camel SSLContextParameters object. If configured it's applied before the other SSL endpoint parameters. NOTE: Kafka only supports loading keystore from file locations, so prefix the location with file: in the KeyStoreParameters.resource option. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-enabled-protocols",
+      "type": "java.lang.String",
+      "description": "The list of protocols enabled for SSL connections. TLSv1.2, TLSv1.1 and TLSv1 are enabled by default.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-endpoint-algorithm",
+      "type": "java.lang.String",
+      "description": "The endpoint identification algorithm to validate server hostname using server certificate.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "https"
+    },
+    {
+      "name": "camel.component.kafka.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password of the private key in the key store file. This is optional for client.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keymanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "SunX509"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keystore-location",
+      "type": "java.lang.String",
+      "description": "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keystore-password",
+      "type": "java.lang.String",
+      "description": "The store password for the key store file.This is optional for client and only needed if ssl.keystore.location is configured.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-keystore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the key store file. This is optional for client. Default value is JKS",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.kafka.ssl-protocol",
+      "type": "java.lang.String",
+      "description": "The SSL protocol used to generate the SSLContext. Default setting is TLS, which is fine for most cases. Allowed values in recent JVMs are TLS, TLSv1.1 and TLSv1.2. SSL, SSLv2 and SSLv3 may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-provider",
+      "type": "java.lang.String",
+      "description": "The name of the security provider used for SSL connections. Default value is the default security provider of the JVM.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-trustmanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "PKIX"
+    },
+    {
+      "name": "camel.component.kafka.ssl-truststore-location",
+      "type": "java.lang.String",
+      "description": "The location of the trust store file.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-truststore-password",
+      "type": "java.lang.String",
+      "description": "The password for the trust store file.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.ssl-truststore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the trust store file. Default value is JKS.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.kafka.synchronous",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether synchronous processing should be strictly used",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.topic-is-pattern",
+      "type": "java.lang.Boolean",
+      "description": "Whether the topic is a pattern (regular expression). This can be used to subscribe to dynamic number of topics matching the pattern.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kafka.value-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for value that implements the Deserializer interface.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.kafka.value-serializer",
+      "type": "java.lang.String",
+      "description": "The serializer class for messages.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.kafka.worker-pool",
+      "type": "java.util.concurrent.ExecutorService",
+      "description": "To use a custom worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing. If using this option then you must handle the lifecycle of the thread pool to shut the pool down when no longer needed. The option is a java.util.concurrent.ExecutorService type.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kafka.worker-pool-core-size",
+      "type": "java.lang.Integer",
+      "description": "Number of core threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.kafka.worker-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of threads for the worker pool for continue routing Exchange after kafka server has acknowledge the message that was sent to it from KafkaProducer using asynchronous non-blocking processing.",
+      "sourceType": "org.apache.camel.component.kafka.springboot.KafkaComponentConfiguration",
+      "defaultValue": 20
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/kamelet-reify.json b/docs/components/modules/spring-boot/examples/json/kamelet-reify.json
new file mode 100644
index 0000000..3ae3750
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/kamelet-reify.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kamelet-reify",
+      "type": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet-reify.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kamelet-reify.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kamelet-reify.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kamelet-reify.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kamelet-reify.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kamelet-reify component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet-reify.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kameletreify.springboot.KameletReifyComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/kamelet.json b/docs/components/modules/spring-boot/examples/json/kamelet.json
new file mode 100644
index 0000000..daf7df9
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/kamelet.json
@@ -0,0 +1,89 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kamelet",
+      "type": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kamelet.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kamelet.block",
+      "type": "java.lang.Boolean",
+      "description": "If sending a message to a kamelet endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kamelet.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kamelet.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kamelet.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kamelet component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kamelet.location",
+      "type": "java.lang.String",
+      "description": "The location(s) of the Kamelets on the file system. Multiple locations can be set separated by comma.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": "classpath:\/kamelets"
+    },
+    {
+      "name": "camel.component.kamelet.route-properties",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Set route local parameters.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.route-template-loader-listener",
+      "type": "org.apache.camel.spi.RouteTemplateLoaderListener",
+      "description": "To plugin a custom listener for when the Kamelet component is loading Kamelets from external resources. The option is a org.apache.camel.spi.RouteTemplateLoaderListener type.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.template-properties",
+      "type": "java.util.Map<java.lang.String,java.util.Properties>",
+      "description": "Set template local parameters.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kamelet.timeout",
+      "type": "java.lang.Long",
+      "description": "The timeout value to use if block is enabled.",
+      "sourceType": "org.apache.camel.component.kamelet.springboot.KameletComponentConfiguration",
+      "defaultValue": 30000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/kubernetes.json b/docs/components/modules/spring-boot/examples/json/kubernetes.json
new file mode 100644
index 0000000..e938250
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/kubernetes.json
@@ -0,0 +1,772 @@
+{
+  "groups": [
+    {
+      "name": "camel.cluster.kubernetes",
+      "type": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps",
+      "type": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources",
+      "type": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments",
+      "type": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa",
+      "type": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-job",
+      "type": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-job.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces",
+      "type": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes",
+      "type": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes",
+      "type": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims",
+      "type": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-pods",
+      "type": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-pods.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers",
+      "type": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota",
+      "type": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets",
+      "type": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts",
+      "type": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.kubernetes-services",
+      "type": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-services.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openshift-build-configs",
+      "type": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-build-configs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openshift-builds",
+      "type": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-builds.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cluster.kubernetes.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.cluster-labels",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Set the labels used to identify the pods composing the cluster.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.config-map-name",
+      "type": "java.lang.String",
+      "description": "Set the name of the ConfigMap used to do optimistic locking (defaults to 'leaders').",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.connection-timeout-millis",
+      "type": "java.lang.Integer",
+      "description": "Connection timeout in milliseconds to use when making requests to the Kubernetes API server.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the Kubernetes cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.kubernetes.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.jitter-factor",
+      "type": "java.lang.Double",
+      "description": "A jitter factor to apply in order to prevent all pods to call Kubernetes APIs in the same instant.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.kubernetes-namespace",
+      "type": "java.lang.String",
+      "description": "Set the name of the Kubernetes namespace containing the pods and the configmap (autodetected by default)",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.lease-duration-millis",
+      "type": "java.lang.Long",
+      "description": "The default duration of the lease for the current leader.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.master-url",
+      "type": "java.lang.String",
+      "description": "Set the URL of the Kubernetes master (read from Kubernetes client properties by default).",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.pod-name",
+      "type": "java.lang.String",
+      "description": "Set the name of the current pod (autodetected from container host name by default).",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.renew-deadline-millis",
+      "type": "java.lang.Long",
+      "description": "The deadline after which the leader must stop its services because it may have lost the leadership.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.kubernetes.retry-period-millis",
+      "type": "java.lang.Long",
+      "description": "The time between two subsequent attempts to check and acquire the leadership. It is randomized using the jitter factor.",
+      "sourceType": "org.apache.camel.component.kubernetes.springboot.cluster.KubernetesClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-config-maps component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-config-maps.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.config_maps.springboot.KubernetesConfigMapsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-custom-resources component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-custom-resources.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.customresources.springboot.KubernetesCustomResourcesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-deployments component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-deployments.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.deployments.springboot.KubernetesDeploymentsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-hpa component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-hpa.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.hpa.springboot.KubernetesHPAComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-job.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-job.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-job.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-job.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-job component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-job.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.job.springboot.KubernetesJobComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-namespaces component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-namespaces.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.namespaces.springboot.KubernetesNamespacesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-nodes component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-nodes.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.nodes.springboot.KubernetesNodesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-persistent-volumes-claims component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes-claims.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes_claims.springboot.KubernetesPersistentVolumesClaimsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-persistent-volumes component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-persistent-volumes.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.persistent_volumes.springboot.KubernetesPersistentVolumesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-pods.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-pods.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-pods.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-pods.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-pods component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-pods.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.pods.springboot.KubernetesPodsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-replication-controllers component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-replication-controllers.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.replication_controllers.springboot.KubernetesReplicationControllersComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-resources-quota component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-resources-quota.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.resources_quota.springboot.KubernetesResourcesQuotaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-secrets component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-secrets.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.secrets.springboot.KubernetesSecretsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-service-accounts component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-service-accounts.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.service_accounts.springboot.KubernetesServiceAccountsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-services.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kubernetes-services.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.kubernetes-services.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kubernetes-services.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kubernetes-services component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kubernetes-services.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kubernetes.services.springboot.KubernetesServicesComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openshift-build-configs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openshift-build-configs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openshift-build-configs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openshift-build-configs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-build-configs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openshift.build_configs.springboot.OpenshiftBuildConfigsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openshift-builds.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openshift-builds.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openshift-builds.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openshift-builds component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openshift-builds.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openshift.builds.springboot.OpenshiftBuildsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/kudu.json b/docs/components/modules/spring-boot/examples/json/kudu.json
new file mode 100644
index 0000000..640cf21
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/kudu.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.kudu",
+      "type": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kudu.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.kudu.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.kudu.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.kudu.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the kudu component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration"
+    },
+    {
+      "name": "camel.component.kudu.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.kudu.springboot.KuduComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/language.json b/docs/components/modules/spring-boot/examples/json/language.json
new file mode 100644
index 0000000..d221c66
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/language.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.language",
+      "type": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.language.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.language.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.language.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.language.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the language component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.language.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.language.springboot.LanguageComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ldap.json b/docs/components/modules/spring-boot/examples/json/ldap.json
new file mode 100644
index 0000000..85cc0d3
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ldap.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ldap",
+      "type": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ldap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ldap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ldap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ldap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ldap.springboot.LdapComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ldif.json b/docs/components/modules/spring-boot/examples/json/ldif.json
new file mode 100644
index 0000000..f0c848e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ldif.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ldif",
+      "type": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldif.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ldif.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ldif.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ldif.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ldif component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ldif.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ldif.springboot.LdifComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/leveldb-legacy.json b/docs/components/modules/spring-boot/examples/json/leveldb-legacy.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/leveldb-legacy.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/leveldb.json b/docs/components/modules/spring-boot/examples/json/leveldb.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/leveldb.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/log.json b/docs/components/modules/spring-boot/examples/json/log.json
new file mode 100644
index 0000000..e2d95e8
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/log.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.log",
+      "type": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration"
+    },
+    {
+      "name": "camel.component.log.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.log.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.log.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.log.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the log component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration"
+    },
+    {
+      "name": "camel.component.log.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration"
+    },
+    {
+      "name": "camel.component.log.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.log.springboot.LogComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/lra.json b/docs/components/modules/spring-boot/examples/json/lra.json
new file mode 100644
index 0000000..5d50b5d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/lra.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.lra",
+      "type": "org.apache.camel.service.lra.springboot.LraServiceConfiguration",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.lra.coordinator-context-path",
+      "type": "java.lang.String",
+      "description": "The context path of the LRA coordinator service",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    },
+    {
+      "name": "camel.lra.coordinator-url",
+      "type": "java.lang.String",
+      "description": "The base URL of the LRA coordinator service (e.g. http:\/\/lra-host:8080)",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    },
+    {
+      "name": "camel.lra.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Global option to enable\/disable component auto-configuration, default is true.",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.lra.local-participant-context-path",
+      "type": "java.lang.String",
+      "description": "The context path of the local participant callback services",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    },
+    {
+      "name": "camel.lra.local-participant-url",
+      "type": "java.lang.String",
+      "description": "The local URL where the coordinator should send callbacks to (e.g. http:\/\/my-host-name:8080)",
+      "sourceType": "org.apache.camel.service.lra.springboot.LraServiceConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/lucene.json b/docs/components/modules/spring-boot/examples/json/lucene.json
new file mode 100644
index 0000000..82adf3a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/lucene.json
@@ -0,0 +1,73 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.lucene",
+      "type": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.lucene.analyzer",
+      "type": "org.apache.lucene.analysis.Analyzer",
+      "description": "An Analyzer builds TokenStreams, which analyze text. It thus represents a policy for extracting index terms from text. The value for analyzer can be any class that extends the abstract class org.apache.lucene.analysis.Analyzer. Lucene also offers a rich set of analyzers out of the box. The option is a org.apache.lucene.analysis.Analyzer type.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.lucene.config",
+      "type": "org.apache.camel.component.lucene.LuceneConfiguration",
+      "description": "To use a shared lucene configuration. The option is a org.apache.camel.component.lucene.LuceneConfiguration type.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.lucene.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lucene component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.index-dir",
+      "type": "java.io.File",
+      "description": "A file system directory in which index files are created upon analysis of the document by the specified analyzer",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.lucene.max-hits",
+      "type": "java.lang.Integer",
+      "description": "An integer value that limits the result set of the search operation",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lucene.src-dir",
+      "type": "java.io.File",
+      "description": "An optional directory containing files to be used to be analyzed and added to the index at producer startup.",
+      "sourceType": "org.apache.camel.component.lucene.springboot.LuceneComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/lumberjack.json b/docs/components/modules/spring-boot/examples/json/lumberjack.json
new file mode 100644
index 0000000..a719056
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/lumberjack.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.lumberjack",
+      "type": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lumberjack.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.lumberjack.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.lumberjack.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.lumberjack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.lumberjack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lumberjack component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lumberjack.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Sets the default SSL configuration to use for all the endpoints. You can also configure it directly at the endpoint level. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lumberjack.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.lumberjack.springboot.LumberjackComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/lzf.json b/docs/components/modules/spring-boot/examples/json/lzf.json
new file mode 100644
index 0000000..fef17fd
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/lzf.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.lzf",
+      "type": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.lzf.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.lzf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.lzf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lzf data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.lzf.using-parallel-compression",
+      "type": "java.lang.Boolean",
+      "description": "Enable encoding (compress) using multiple processing cores.",
+      "sourceType": "org.apache.camel.dataformat.lzf.springboot.LZFDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mail.json b/docs/components/modules/spring-boot/examples/json/mail.json
new file mode 100644
index 0000000..d5f0944
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mail.json
@@ -0,0 +1,367 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mail",
+      "type": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart",
+      "type": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mail.additional-java-mail-properties",
+      "type": "java.util.Properties",
+      "description": "Sets additional java mail properties, that will append\/override any default properties that is set based on all the other options. This is useful if you need to add some special options but want to keep the others as is. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.alternative-body-header",
+      "type": "java.lang.String",
+      "description": "Specifies the key to an IN message header that contains an alternative email body. For example, if you send emails in text\/html format and want to provide an alternative mail body for non-HTML email clients, set the alternative mail body with this key as a header.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "CamelMailAlternativeBody"
+    },
+    {
+      "name": "camel.component.mail.attachments-content-transfer-encoding-resolver",
+      "type": "org.apache.camel.component.mail.AttachmentsContentTransferEncodingResolver",
+      "description": "To use a custom AttachmentsContentTransferEncodingResolver to resolve what content-type-encoding to use for attachments. The option is a org.apache.camel.component.mail.AttachmentsContentTransferEncodingResolver type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.authenticator",
+      "type": "org.apache.camel.component.mail.MailAuthenticator",
+      "description": "The authenticator for login. If set then the password and username are ignored. Can be used for tokens which can expire and therefore must be read dynamically. The option is a org.apache.camel.component.mail.MailAuthenticator type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.bcc",
+      "type": "java.lang.String",
+      "description": "Sets the BCC email address. Separate multiple email addresses with comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.cc",
+      "type": "java.lang.String",
+      "description": "Sets the CC email address. Separate multiple email addresses with comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.close-folder",
+      "type": "java.lang.Boolean",
+      "description": "Whether the consumer should close the folder after polling. Setting this option to false and having disconnect=false as well, then the consumer keep the folder open between polls.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.configuration",
+      "type": "org.apache.camel.component.mail.MailConfiguration",
+      "description": "Sets the Mail configuration. The option is a org.apache.camel.component.mail.MailConfiguration type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "The connection timeout in milliseconds.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.mail.content-type",
+      "type": "java.lang.String",
+      "description": "The mail message content type. Use text\/html for HTML mails.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "text\/plain"
+    },
+    {
+      "name": "camel.component.mail.content-type-resolver",
+      "type": "org.apache.camel.component.mail.ContentTypeResolver",
+      "description": "Resolver to determine Content-Type for file attachments. The option is a org.apache.camel.component.mail.ContentTypeResolver type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.copy-to",
+      "type": "java.lang.String",
+      "description": "After processing a mail message, it can be copied to a mail folder with the given name. You can override this configuration value, with a header with the key copyTo, allowing you to copy messages to folder names configured at runtime.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mail.debug-mode",
+      "type": "java.lang.Boolean",
+      "description": "Enable debug mode on the underlying mail framework. The SUN Mail framework logs the debug messages to System.out by default.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.decode-filename",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, the MimeUtility.decodeText method will be used to decode the filename. This is similar to setting JVM system property mail.mime.encodefilename.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.delete",
+      "type": "java.lang.Boolean",
+      "description": "Deletes the messages after they have been processed. This is done by setting the DELETED flag on the mail message. If false, the SEEN flag is set instead. As of Camel 2.10 you can override this configuration option by setting a header with the key delete to determine if the mail should be deleted or not.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether the consumer should disconnect after polling. If enabled this forces Camel to connect on each poll.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mail component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.fetch-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the maximum number of messages to consume during a poll. This can be used to avoid overloading a mail server, if a mailbox folder contains a lot of messages. Default value of -1 means no fetch size and all messages will be consumed. Setting the value to 0 is a special corner case, where Camel will not consume any messages at all.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.mail.folder-name",
+      "type": "java.lang.String",
+      "description": "The folder to poll.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "INBOX"
+    },
+    {
+      "name": "camel.component.mail.from",
+      "type": "java.lang.String",
+      "description": "The from email address",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": "camel@localhost"
+    },
+    {
+      "name": "camel.component.mail.handle-failed-message",
+      "type": "java.lang.Boolean",
+      "description": "If the mail consumer cannot retrieve a given mail message, then this option allows to handle the caused exception by the consumer's error handler. By enable the bridge error handler on the consumer, then the Camel routing error handler can handle the exception instead. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.ignore-unsupported-charset",
+      "type": "java.lang.Boolean",
+      "description": "Option to let Camel ignore unsupported charset in the local JVM when sending mails. If the charset is unsupported then charset=XXX (where XXX represents the unsupported charset) is removed from the content-type and it relies on the platform default instead.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.ignore-uri-scheme",
+      "type": "java.lang.Boolean",
+      "description": "Option to let Camel ignore unsupported charset in the local JVM when sending mails. If the charset is unsupported then charset=XXX (where XXX represents the unsupported charset) is removed from the content-type and it relies on the platform default instead.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.java-mail-properties",
+      "type": "java.util.Properties",
+      "description": "Sets the java mail options. Will clear any default properties and only use the properties provided for this method. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.java-mail-sender",
+      "type": "org.apache.camel.component.mail.JavaMailSender",
+      "description": "To use a custom org.apache.camel.component.mail.JavaMailSender for sending emails. The option is a org.apache.camel.component.mail.JavaMailSender type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.map-mail-message",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether Camel should map the received mail message to Camel body\/headers\/attachments. If set to true, the body of the mail message is mapped to the body of the Camel IN message, the mail headers are mapped to IN headers, and the attachments to Camel IN attachment message. If this option is set to false then the IN message contains a raw javax.mail.Message. You can retrieve this raw message by calling exchange.getIn().getBody(javax.mail.Message.class).",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.mime-decode-headers",
+      "type": "java.lang.Boolean",
+      "description": "This option enables transparent MIME decoding and unfolding for mail headers.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.move-to",
+      "type": "java.lang.String",
+      "description": "After processing a mail message, it can be moved to a mail folder with the given name. You can override this configuration value, with a header with the key moveTo, allowing you to move messages to folder names configured at runtime.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.password",
+      "type": "java.lang.String",
+      "description": "The password for login. See also setAuthenticator(MailAuthenticator).",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.peek",
+      "type": "java.lang.Boolean",
+      "description": "Will mark the javax.mail.Message as peeked before processing the mail message. This applies to IMAPMessage messages types only. By using peek the mail will not be eager marked as SEEN on the mail server, which allows us to rollback the mail message if there is an error processing in Camel.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.reply-to",
+      "type": "java.lang.String",
+      "description": "The Reply-To recipients (the receivers of the response mail). Separate multiple email addresses with a comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.session",
+      "type": "javax.mail.Session",
+      "description": "Specifies the mail session that camel should use for all mail interactions. Useful in scenarios where mail sessions are created and managed by some other resource, such as a JavaEE container. When using a custom mail session, then the hostname and port from the mail session will be used (if configured on the session). The option is a javax.mail.Session type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.skip-failed-message",
+      "type": "java.lang.Boolean",
+      "description": "If the mail consumer cannot retrieve a given mail message, then this option allows to skip the message and move on to retrieve the next mail message. The default behavior would be the consumer throws an exception and no mails from the batch would be able to be routed by Camel.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.subject",
+      "type": "java.lang.String",
+      "description": "The Subject of the message being sent. Note: Setting the subject in the header takes precedence over this option.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.to",
+      "type": "java.lang.String",
+      "description": "Sets the To email address. Separate multiple email addresses with comma.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mail.unseen",
+      "type": "java.lang.Boolean",
+      "description": "Whether to limit by unseen mails only.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mail.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.use-inline-attachments",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use disposition inline or attachment.",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mail.username",
+      "type": "java.lang.String",
+      "description": "The username for login. See also setAuthenticator(MailAuthenticator).",
+      "sourceType": "org.apache.camel.component.mail.springboot.MailComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.binary-content",
+      "type": "java.lang.Boolean",
+      "description": "Defines whether the content of binary parts in the MIME multipart is binary (true) or Base-64 encoded (false) Default is false.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mime-multipart data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.headers-inline",
+      "type": "java.lang.Boolean",
+      "description": "Defines whether the MIME-Multipart headers are part of the message body (true) or are set as Camel headers (false). Default is false.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.include-headers",
+      "type": "java.lang.String",
+      "description": "A regex that defines which Camel headers are also included as MIME headers into the MIME multipart. This will only work if headersInline is set to true. Default is to include no headers",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.multipart-sub-type",
+      "type": "java.lang.String",
+      "description": "Specify the subtype of the MIME Multipart. Default is mixed.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": "mixed"
+    },
+    {
+      "name": "camel.dataformat.mime-multipart.multipart-without-attachment",
+      "type": "java.lang.Boolean",
+      "description": "Defines whether a message without attachment is also marshaled into a MIME Multipart (with only one body part). Default is false.",
+      "sourceType": "org.apache.camel.dataformat.mime.multipart.springboot.MimeMultipartDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/master.json b/docs/components/modules/spring-boot/examples/json/master.json
new file mode 100644
index 0000000..f003f03
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/master.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.master",
+      "type": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.master.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.master.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.master.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.master.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.master.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the master component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.master.service",
+      "type": "org.apache.camel.cluster.CamelClusterService",
+      "description": "Inject the service to use. The option is a org.apache.camel.cluster.CamelClusterService type.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.master.service-selector",
+      "type": "org.apache.camel.cluster.CamelClusterService$Selector",
+      "description": "Inject the service selector used to lookup the CamelClusterService to use. The option is a org.apache.camel.cluster.CamelClusterService.Selector type.",
+      "sourceType": "org.apache.camel.component.master.springboot.MasterComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/metrics.json b/docs/components/modules/spring-boot/examples/json/metrics.json
new file mode 100644
index 0000000..b42f8d5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/metrics.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.metrics",
+      "type": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.metrics.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.metrics.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.metrics.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.metrics.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the metrics component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.metrics.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.metrics.metric-registry",
+      "type": "com.codahale.metrics.MetricRegistry",
+      "description": "To use a custom configured MetricRegistry. The option is a com.codahale.metrics.MetricRegistry type.",
+      "sourceType": "org.apache.camel.component.metrics.springboot.MetricsComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/micrometer.json b/docs/components/modules/spring-boot/examples/json/micrometer.json
new file mode 100644
index 0000000..c550e60
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/micrometer.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.micrometer",
+      "type": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.micrometer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.micrometer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.micrometer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.micrometer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the micrometer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.micrometer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.micrometer.metrics-registry",
+      "type": "io.micrometer.core.instrument.MeterRegistry",
+      "description": "To use a custom configured MetricRegistry. The option is a io.micrometer.core.instrument.MeterRegistry type.",
+      "sourceType": "org.apache.camel.component.micrometer.springboot.MicrometerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/milo.json b/docs/components/modules/spring-boot/examples/json/milo.json
new file mode 100644
index 0000000..4a33d84
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/milo.json
@@ -0,0 +1,333 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.milo-client",
+      "type": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.milo-server",
+      "type": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.milo-client.allowed-security-policies",
+      "type": "java.lang.String",
+      "description": "A set of allowed security policy URIs. Default is to accept all and use the highest.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.application-name",
+      "type": "java.lang.String",
+      "description": "The application name",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": "Apache Camel adapter for Eclipse Milo"
+    },
+    {
+      "name": "camel.component.milo-client.application-uri",
+      "type": "java.lang.String",
+      "description": "The application URI",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo\/Client"
+    },
+    {
+      "name": "camel.component.milo-client.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.milo-client.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-client.channel-lifetime",
+      "type": "java.lang.Long",
+      "description": "Channel lifetime in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.client-id",
+      "type": "java.lang.String",
+      "description": "A virtual client id to force the creation of a new connection instance",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.configuration",
+      "type": "org.apache.camel.component.milo.client.MiloClientConfiguration",
+      "description": "All default options for client configurations. The option is a org.apache.camel.component.milo.client.MiloClientConfiguration type.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.milo-client.discovery-endpoint-suffix",
+      "type": "java.lang.String",
+      "description": "A suffix for endpoint URI when discovering",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.discovery-endpoint-uri",
+      "type": "java.lang.String",
+      "description": "An alternative discovery URI",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the milo-client component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-alias",
+      "type": "java.lang.String",
+      "description": "The name of the key in the keystore file",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-password",
+      "type": "java.lang.String",
+      "description": "The key password",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-store-password",
+      "type": "java.lang.String",
+      "description": "The keystore password",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-store-type",
+      "type": "java.lang.String",
+      "description": "The key store type",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.key-store-url",
+      "type": "java.lang.String",
+      "description": "The URL where the key should be loaded from",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-client.max-pending-publish-requests",
+      "type": "java.lang.Long",
+      "description": "The maximum number of pending publish requests",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.max-response-message-size",
+      "type": "java.lang.Long",
+      "description": "The maximum number of bytes a response message may have",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.milo-client-connection-manager",
+      "type": "org.apache.camel.component.milo.client.MiloClientConnectionManager",
+      "description": "Instance for managing client connections. The option is a org.apache.camel.component.milo.client.MiloClientConnectionManager type.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.override-host",
+      "type": "java.lang.Boolean",
+      "description": "Override the server reported endpoint host with the host from the endpoint URI.",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-client.product-uri",
+      "type": "java.lang.String",
+      "description": "The product URI",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration",
+      "defaultValue": "http:\/\/camel.apache.org\/EclipseMilo"
+    },
+    {
+      "name": "camel.component.milo-client.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Request timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.requested-publishing-interval",
+      "type": "java.lang.Double",
+      "description": "The requested publishing interval in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.session-name",
+      "type": "java.lang.String",
+      "description": "Session name",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-client.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.milo.client.springboot.MiloClientComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.application-name",
+      "type": "java.lang.String",
+      "description": "The application name",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.application-uri",
+      "type": "java.lang.String",
+      "description": "The application URI",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.milo-server.bind-addresses",
+      "type": "java.lang.String",
+      "description": "Set the addresses of the local addresses the server should bind to",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-server.build-info",
+      "type": "org.eclipse.milo.opcua.stack.core.types.structured.BuildInfo",
+      "description": "Server build info. The option is a org.eclipse.milo.opcua.stack.core.types.structured.BuildInfo type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.certificate",
+      "type": "java.security.cert.X509Certificate",
+      "description": "Server certificate. The option is a java.security.cert.X509Certificate type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.certificate-manager",
+      "type": "org.eclipse.milo.opcua.stack.core.security.CertificateManager",
+      "description": "Server certificate manager. The option is a org.eclipse.milo.opcua.stack.core.security.CertificateManager type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.certificate-validator",
+      "type": "org.eclipse.milo.opcua.stack.core.security.CertificateValidator",
+      "description": "Validator for client certificates. The option is a org.eclipse.milo.opcua.stack.core.security.CertificateValidator type.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.milo-server.default-certificate-validator",
+      "type": "java.lang.String",
+      "description": "Validator for client certificates using default file based approach",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.enable-anonymous-authentication",
+      "type": "java.lang.Boolean",
+      "description": "Enable anonymous authentication, disabled by default",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-server.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the milo-server component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.milo-server.namespace-uri",
+      "type": "java.lang.String",
+      "description": "The URI of the namespace, defaults to urn:org:apache:camel",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration",
+      "defaultValue": "urn:org:apache:camel"
+    },
+    {
+      "name": "camel.component.milo-server.path",
+      "type": "java.lang.String",
+      "description": "The path to be appended to the end of the endpoint url. (doesn't need to start with '\/')",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.port",
+      "type": "java.lang.Integer",
+      "description": "The TCP port the server binds to",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.product-uri",
+      "type": "java.lang.String",
+      "description": "The product URI",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.security-policies",
+      "type": "java.util.Set<org.eclipse.milo.opcua.stack.core.security.SecurityPolicy>",
+      "description": "Security policies",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.security-policies-by-id",
+      "type": "java.lang.String",
+      "description": "Security policies by URI or name. Multiple policies can be separated by comma.",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.user-authentication-credentials",
+      "type": "java.lang.String",
+      "description": "Set user password combinations in the form of user1:pwd1,user2:pwd2 Usernames and passwords will be URL decoded",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.milo-server.username-security-policy-uri",
+      "type": "org.eclipse.milo.opcua.stack.core.security.SecurityPolicy",
+      "description": "Set the UserTokenPolicy used when",
+      "sourceType": "org.apache.camel.component.milo.server.springboot.MiloServerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mina.json b/docs/components/modules/spring-boot/examples/json/mina.json
new file mode 100644
index 0000000..37f9e58
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mina.json
@@ -0,0 +1,218 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mina",
+      "type": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mina.allow-default-codec",
+      "type": "java.lang.Boolean",
+      "description": "The mina component installs a default codec if both, codec is null and textline is false. Setting allowDefaultCodec to false prevents the mina component from installing a default codec as the first element in the filter chain. This is useful in scenarios where another filter must be the first in the filter chain, like the SSL filter.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.auto-start-tls",
+      "type": "java.lang.Boolean",
+      "description": "Whether to auto start SSL handshake.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.cached-address",
+      "type": "java.lang.Boolean",
+      "description": "Whether to create the InetAddress once and reuse. Setting this to false allows to pickup DNS changes in the network.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.client-mode",
+      "type": "java.lang.Boolean",
+      "description": "If the clientMode is true, mina consumer will connect the address as a TCP client.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.codec",
+      "type": "org.apache.mina.filter.codec.ProtocolCodecFactory",
+      "description": "To use a custom minda codec implementation. The option is a org.apache.mina.filter.codec.ProtocolCodecFactory type.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.configuration",
+      "type": "org.apache.camel.component.mina.MinaConfiguration",
+      "description": "To use the shared mina configuration. The option is a org.apache.camel.component.mina.MinaConfiguration type.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mina.decoder-max-line-length",
+      "type": "java.lang.Integer",
+      "description": "To set the textline protocol decoder max line length. By default the default value of Mina itself is used which are 1024.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.mina.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether to disconnect(close) from Mina session right after use. Can be used for both consumer and producer.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.disconnect-on-no-reply",
+      "type": "java.lang.Boolean",
+      "description": "If sync is enabled then this option dictates MinaConsumer if it should disconnect where there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mina component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.encoder-max-line-length",
+      "type": "java.lang.Integer",
+      "description": "To set the textline protocol encoder max line length. By default the default value of Mina itself is used which are Integer.MAX_VALUE.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.mina.encoding",
+      "type": "java.lang.String",
+      "description": "You can configure the encoding (a charset name) to use for the TCP textline codec and the UDP protocol. If not provided, Camel will use the JVM default Charset",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.filters",
+      "type": "java.util.List<org.apache.mina.core.filterchain.IoFilter>",
+      "description": "You can set a list of Mina IoFilters to use.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.lazy-session-creation",
+      "type": "java.lang.Boolean",
+      "description": "Sessions can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.maximum-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Number of worker threads in the worker pool for TCP and UDP",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 16
+    },
+    {
+      "name": "camel.component.mina.mina-logger",
+      "type": "java.lang.Boolean",
+      "description": "You can enable the Apache MINA logging filter. Apache MINA uses slf4j logging at INFO level to log all input and output.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.no-reply-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If sync is enabled this option dictates MinaConsumer which logging level to use when logging a there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.ordered-thread-pool-executor",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure SSL security. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.sync",
+      "type": "java.lang.Boolean",
+      "description": "Setting to set endpoint as one-way or request-response.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mina.textline",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specified or the value is false, then Object Serialization is assumed over TCP.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.textline-delimiter",
+      "type": "org.apache.camel.component.mina.MinaTextLineDelimiter",
+      "description": "Only used for TCP and if textline=true. Sets the text line delimiter to use. If none provided, Camel will use DEFAULT. This delimiter is used to mark the end of text.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mina.timeout",
+      "type": "java.lang.Long",
+      "description": "You can configure the timeout that specifies how long to wait for a response from a remote server. The timeout unit is in milliseconds, so 60000 is 60 seconds.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.mina.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mina.write-timeout",
+      "type": "java.lang.Long",
+      "description": "Maximum amount of time it should take to send data to the MINA session. Default is 10000 milliseconds.",
+      "sourceType": "org.apache.camel.component.mina.springboot.MinaComponentConfiguration",
+      "defaultValue": 10000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/minio.json b/docs/components/modules/spring-boot/examples/json/minio.json
new file mode 100644
index 0000000..3dded73
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/minio.json
@@ -0,0 +1,331 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.minio",
+      "type": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.minio.access-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Secret Access Key or Minio Access Key. If not set camel will connect to service for anonymous access.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.auto-close-body",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true and includeBody is true, then the MinioObject.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the MinioObject stream. Setting autocloseBody to true, will close the MinioObject stream automatically.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.auto-create-bucket",
+      "type": "java.lang.Boolean",
+      "description": "Setting the autocreation of the bucket if bucket name not exist.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.bypass-governance-mode",
+      "type": "java.lang.Boolean",
+      "description": "Set this flag if you want to bypassGovernanceMode when deleting a particular object.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.configuration",
+      "type": "org.apache.camel.component.minio.MinioConfiguration",
+      "description": "The component configuration. The option is a org.apache.camel.component.minio.MinioConfiguration type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.custom-http-client",
+      "type": "okhttp3.OkHttpClient",
+      "description": "Set custom HTTP client for authenticated access. The option is a okhttp3.OkHttpClient type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.minio.delete-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Delete objects from Minio after they have been retrieved. The delete is only performed if the Exchange is committed. If a rollback occurs, the object is not deleted. If this option is false, then the same objects will be retrieve over and over again on the polls. Therefore you need to use the Idempotent Consumer EIP in the route to filter out duplicates. You can filter using the MinioConstants#BUCKET_NAME and MinioConstants#OBJECT_NAME headers, or only the MinioConstants#OBJECT_NAME header.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.delete-after-write",
+      "type": "java.lang.Boolean",
+      "description": "Delete file object after the Minio file has been uploaded.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter which is used in the ListObjectsRequest to only consume objects we are interested in.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.destination-bucket-name",
+      "type": "java.lang.String",
+      "description": "Source bucket name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.destination-object-name",
+      "type": "java.lang.String",
+      "description": "Source object name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the minio component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.endpoint",
+      "type": "java.lang.String",
+      "description": "Endpoint can be an URL, domain name, IPv4 address or IPv6 address.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.include-body",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the exchange body will be set to a stream to the contents of the file. If false, the headers will be set with the Minio object metadata, but the body will be null. This option is strongly related to autocloseBody option. In case of setting includeBody to true and autocloseBody to false, it will be up to the caller to close the MinioObject stream. Setting autocloseBody to true, will close the MinioObject stream automatically.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.minio.include-folders",
+      "type": "java.lang.Boolean",
+      "description": "The flag which is used in the ListObjectsRequest to set include folders.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.include-user-metadata",
+      "type": "java.lang.Boolean",
+      "description": "The flag which is used in the ListObjectsRequest to get objects with user meta data.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.include-versions",
+      "type": "java.lang.Boolean",
+      "description": "The flag which is used in the ListObjectsRequest to get objects with versioning.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.key-name",
+      "type": "java.lang.String",
+      "description": "Setting the key name for an element in the bucket through endpoint parameter.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.length",
+      "type": "java.lang.Long",
+      "description": "Number of bytes of object data from offset.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.match-e-tag",
+      "type": "java.lang.String",
+      "description": "Set match ETag parameter for get object(s).",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.max-connections",
+      "type": "java.lang.Integer",
+      "description": "Set the maxConnections parameter in the minio client configuration",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.minio.max-messages-per-poll",
+      "type": "java.lang.Integer",
+      "description": "Gets the maximum number of messages as a limit to poll at each polling. Gets the maximum number of messages as a limit to poll at each polling. The default value is 10. Use 0 or a negative number to set it as unlimited.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.minio.minio-client",
+      "type": "io.minio.MinioClient",
+      "description": "Reference to a Minio Client object in the registry. The option is a io.minio.MinioClient type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.modified-since",
+      "type": "java.time.ZonedDateTime",
+      "description": "Set modified since parameter for get object(s). The option is a java.time.ZonedDateTime type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.move-after-read",
+      "type": "java.lang.Boolean",
+      "description": "Move objects from bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.not-match-e-tag",
+      "type": "java.lang.String",
+      "description": "Set not match ETag parameter for get object(s).",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.object-lock",
+      "type": "java.lang.Boolean",
+      "description": "Set when creating new bucket.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.object-name",
+      "type": "java.lang.String",
+      "description": "To get the object from the bucket with the given object name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.offset",
+      "type": "java.lang.Long",
+      "description": "Start byte position of object data.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.operation",
+      "type": "org.apache.camel.component.minio.MinioOperations",
+      "description": "The operation to do in case the user don't want to do only an upload.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.pojo-request",
+      "type": "java.lang.Boolean",
+      "description": "If we want to use a POJO request as body or not.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.policy",
+      "type": "java.lang.String",
+      "description": "The policy for this queue to set in the method.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.prefix",
+      "type": "java.lang.String",
+      "description": "Object name starts with prefix.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "TCP\/IP port number. 80 and 443 are used as defaults for HTTP and HTTPS.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.recursive",
+      "type": "java.lang.Boolean",
+      "description": "List recursively than directory structure emulation.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.region",
+      "type": "java.lang.String",
+      "description": "The region in which Minio client needs to work. When using this parameter, the configuration will expect the lowercase name of the region (for example ap-east-1). You'll need to use the name Region.EU_WEST_1.id()",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.secret-key",
+      "type": "java.lang.String",
+      "description": "Amazon AWS Access Key Id or Minio Secret Key. If not set camel will connect to service for anonymous access.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.secure",
+      "type": "java.lang.Boolean",
+      "description": "Flag to indicate to use secure connection to minio service or not.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.server-side-encryption",
+      "type": "io.minio.ServerSideEncryption",
+      "description": "Server-side encryption. The option is a io.minio.ServerSideEncryption type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.server-side-encryption-customer-key",
+      "type": "io.minio.ServerSideEncryptionCustomerKey",
+      "description": "Server-side encryption for source object while copy\/move objects. The option is a io.minio.ServerSideEncryptionCustomerKey type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.start-after",
+      "type": "java.lang.String",
+      "description": "list objects in bucket after this object name.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.storage-class",
+      "type": "java.lang.String",
+      "description": "The storage class to set in the request.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.un-modified-since",
+      "type": "java.time.ZonedDateTime",
+      "description": "Set un modified since parameter for get object(s). The option is a java.time.ZonedDateTime type.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.minio.use-version1",
+      "type": "java.lang.Boolean",
+      "description": "when true, version 1 of REST API is used.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.minio.version-id",
+      "type": "java.lang.String",
+      "description": "Set specific version_ID of a object when deleting the object.",
+      "sourceType": "org.apache.camel.component.minio.springboot.MinioComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mllp.json b/docs/components/modules/spring-boot/examples/json/mllp.json
new file mode 100644
index 0000000..9a87d87
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mllp.json
@@ -0,0 +1,70 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mllp",
+      "type": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mllp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mllp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mllp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mllp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mllp.default-charset",
+      "type": "java.nio.charset.Charset",
+      "description": "Set the default character set to use for byte to\/from String conversions. The option is a java.nio.charset.Charset type.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mllp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mllp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mllp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mllp.log-phi",
+      "type": "java.lang.Boolean",
+      "description": "Set the component to log PHI data.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mllp.log-phi-max-bytes",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum number of bytes of PHI that will be logged in a log entry.",
+      "sourceType": "org.apache.camel.component.mllp.springboot.MllpComponentConfiguration",
+      "defaultValue": 5120
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mock.json b/docs/components/modules/spring-boot/examples/json/mock.json
new file mode 100644
index 0000000..eff1e5b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mock.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mock",
+      "type": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mock.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mock.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mock.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mock.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mock component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mock.exchange-formatter",
+      "type": "org.apache.camel.spi.ExchangeFormatter",
+      "description": "Sets a custom ExchangeFormatter to convert the Exchange to a String suitable for logging. If not specified, we default to DefaultExchangeFormatter. The option is a org.apache.camel.spi.ExchangeFormatter type.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mock.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mock.log",
+      "type": "java.lang.Boolean",
+      "description": "To turn on logging when the mock receives an incoming message. This will log only one time at INFO level for the incoming message. For more detailed logging then set the logger to DEBUG level for the org.apache.camel.component.mock.MockEndpoint class.",
+      "sourceType": "org.apache.camel.component.mock.springboot.MockComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mongodb-gridfs.json b/docs/components/modules/spring-boot/examples/json/mongodb-gridfs.json
new file mode 100644
index 0000000..30fa46c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mongodb-gridfs.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mongodb-gridfs",
+      "type": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mongodb-gridfs.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mongodb-gridfs component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb-gridfs.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mongodb.gridfs.springboot.GridFsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mongodb.json b/docs/components/modules/spring-boot/examples/json/mongodb.json
new file mode 100644
index 0000000..9ba58a2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mongodb.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mongodb",
+      "type": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mongodb.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mongodb.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mongodb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mongodb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mongodb component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mongodb.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mongodb.mongo-connection",
+      "type": "com.mongodb.client.MongoClient",
+      "description": "Shared client used for connection. All endpoints generated from the component will share this connection client. The option is a com.mongodb.client.MongoClient type.",
+      "sourceType": "org.apache.camel.component.mongodb.springboot.MongoDbComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/msv.json b/docs/components/modules/spring-boot/examples/json/msv.json
new file mode 100644
index 0000000..595e9aa
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/msv.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.msv",
+      "type": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    },
+    {
+      "name": "camel.component.msv.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.msv.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.msv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.msv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the msv component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    },
+    {
+      "name": "camel.component.msv.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.msv.resource-resolver-factory",
+      "type": "org.apache.camel.component.validator.ValidatorResourceResolverFactory",
+      "description": "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The option is a org.apache.camel.component.validator.ValidatorResourceResolverFactory type.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    },
+    {
+      "name": "camel.component.msv.schema-factory",
+      "type": "javax.xml.validation.SchemaFactory",
+      "description": "To use the javax.xml.validation.SchemaFactory. The option is a javax.xml.validation.SchemaFactory type.",
+      "sourceType": "org.apache.camel.component.validator.msv.springboot.MsvComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mustache.json b/docs/components/modules/spring-boot/examples/json/mustache.json
new file mode 100644
index 0000000..ffc8b9c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mustache.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mustache",
+      "type": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mustache.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mustache.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mustache.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mustache.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mustache.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mustache.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mustache component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mustache.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mustache.mustache-factory",
+      "type": "com.github.mustachejava.MustacheFactory",
+      "description": "To use a custom MustacheFactory. The option is a com.github.mustachejava.MustacheFactory type.",
+      "sourceType": "org.apache.camel.component.mustache.springboot.MustacheComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mvel.json b/docs/components/modules/spring-boot/examples/json/mvel.json
new file mode 100644
index 0000000..9178ce4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mvel.json
@@ -0,0 +1,86 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mvel",
+      "type": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mvel.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.mvel",
+      "type": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.mvel.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mvel.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mvel.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mvel.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mvel.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mvel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mvel component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mvel.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mvel.springboot.MvelComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.mvel.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.mvel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mvel language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.mvel.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.mvel.springboot.MvelLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/mybatis.json b/docs/components/modules/spring-boot/examples/json/mybatis.json
new file mode 100644
index 0000000..133233b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/mybatis.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.mybatis",
+      "type": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis-bean",
+      "type": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis-bean.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.mybatis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.mybatis-bean.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mybatis-bean.configuration-uri",
+      "type": "java.lang.String",
+      "description": "Location of MyBatis xml configuration file. The default value is: SqlMapConfig.xml loaded from the classpath",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "defaultValue": "SqlMapConfig.xml"
+    },
+    {
+      "name": "camel.component.mybatis-bean.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mybatis-bean.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mybatis-bean component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis-bean.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mybatis-bean.sql-session-factory",
+      "type": "org.apache.ibatis.session.SqlSessionFactory",
+      "description": "To use the SqlSessionFactory. The option is a org.apache.ibatis.session.SqlSessionFactory type.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisBeanComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.mybatis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mybatis.configuration-uri",
+      "type": "java.lang.String",
+      "description": "Location of MyBatis xml configuration file. The default value is: SqlMapConfig.xml loaded from the classpath",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": "SqlMapConfig.xml"
+    },
+    {
+      "name": "camel.component.mybatis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.mybatis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the mybatis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.mybatis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.mybatis.sql-session-factory",
+      "type": "org.apache.ibatis.session.SqlSessionFactory",
+      "description": "To use the SqlSessionFactory. The option is a org.apache.ibatis.session.SqlSessionFactory type.",
+      "sourceType": "org.apache.camel.component.mybatis.springboot.MyBatisComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/nagios.json b/docs/components/modules/spring-boot/examples/json/nagios.json
new file mode 100644
index 0000000..1891bc4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/nagios.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nagios",
+      "type": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nagios.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nagios.configuration",
+      "type": "org.apache.camel.component.nagios.NagiosConfiguration",
+      "description": "To use a shared NagiosConfiguration. The option is a org.apache.camel.component.nagios.NagiosConfiguration type.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Connection timeout in millis.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.nagios.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nagios.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nagios component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.encryption",
+      "type": "com.googlecode.jsendnsca.encryption.Encryption",
+      "description": "To specify an encryption method.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nagios.password",
+      "type": "java.lang.String",
+      "description": "Password to be authenticated when sending checks to Nagios.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nagios.timeout",
+      "type": "java.lang.Integer",
+      "description": "Sending timeout in millis.",
+      "sourceType": "org.apache.camel.component.nagios.springboot.NagiosComponentConfiguration",
+      "defaultValue": 5000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/nats.json b/docs/components/modules/spring-boot/examples/json/nats.json
new file mode 100644
index 0000000..a254ed7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/nats.json
@@ -0,0 +1,76 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nats",
+      "type": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nats.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nats.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nats.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nats.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nats component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nats.servers",
+      "type": "java.lang.String",
+      "description": "URLs to one or more NAT servers. Use comma to separate URLs when specifying multiple servers.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nats.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nats.verbose",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not running in verbose mode",
+      "sourceType": "org.apache.camel.component.nats.springboot.NatsComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/netty-http.json b/docs/components/modules/spring-boot/examples/json/netty-http.json
new file mode 100644
index 0000000..c3eaa5d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/netty-http.json
@@ -0,0 +1,430 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.netty-http",
+      "type": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.netty-http.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP when transferExchange is true. When set to true, serializable objects in headers and properties will be added to the exchange. Otherwise Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.backlog",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. Setting this option to a value such as 200, 500 or 1000, tells the TCP stack how long the accept queue can be If this option is not configured, then the backlog depends on OS setting.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.boss-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User can use this option to override the default bossCount from Netty",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.netty-http.boss-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.channel-group",
+      "type": "io.netty.channel.group.ChannelGroup",
+      "description": "To use a explicit ChannelGroup. The option is a io.netty.channel.group.ChannelGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.client-initializer-factory",
+      "type": "org.apache.camel.component.netty.ClientInitializerFactory",
+      "description": "To use a custom ClientInitializerFactory. The option is a org.apache.camel.component.netty.ClientInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.configuration",
+      "type": "org.apache.camel.component.netty.NettyConfiguration",
+      "description": "To use the NettyConfiguration as configuration when creating endpoints. The option is a org.apache.camel.component.netty.NettyConfiguration type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "Time to wait for a socket connection to be available. Value is in milliseconds.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.netty-http.correlation-manager",
+      "type": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager",
+      "description": "To use a custom correlation manager to manage how request and reply messages are mapped when using request\/reply with the netty producer. This should only be used if you have a way to map requests together with replies such as if there is correlation ids in both the request and reply messages. This can be used if you want to multiplex concurrent messages on the same channel (aka connection) in netty. When doing this you must have a way to correlate the request and reply messages so you can store the right reply on the inflight Camel Exchange before its continued routed. We recommend extending the TimeoutCorrelationManagerSupport when you build custom correlation managers. This provides support for timeout and other complexities you otherwise would need to implement as well. See also the producerPoolEnabled option for more details. The option is a org.apache.camel.component.netty.NettyCamelStateCorrelationManager type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.netty-http.decoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.disconnect-on-no-reply",
+      "type": "java.lang.Boolean",
+      "description": "If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the netty-http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.enabled-protocols",
+      "type": "java.lang.String",
+      "description": "Which protocols to enable when using SSL",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": "TLSv1,TLSv1.1,TLSv1.2"
+    },
+    {
+      "name": "camel.component.netty-http.encoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.executor-service",
+      "type": "io.netty.util.concurrent.EventExecutorGroup",
+      "description": "To use the given EventExecutorGroup. The option is a io.netty.util.concurrent.EventExecutorGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter headers. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.hostname-verification",
+      "type": "java.lang.Boolean",
+      "description": "To enable\/disable hostname verification on SSLEngine",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.keep-alive",
+      "type": "java.lang.Boolean",
+      "description": "Setting to ensure socket is not closed due to inactivity",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.key-store-file",
+      "type": "java.io.File",
+      "description": "Client side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.key-store-format",
+      "type": "java.lang.String",
+      "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.key-store-resource",
+      "type": "java.lang.String",
+      "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.lazy-channel-creation",
+      "type": "java.lang.Boolean",
+      "description": "Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.maximum-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets a maximum thread pool size for the netty consumer ordered thread pool. The default size is 2 x cpu_core plus 1. Setting this value to eg 10 will then use 10 threads unless 2 x cpu_core plus 1 is a higher value, which then will override and be used. For example if there are 8 cores, then the consumer thread pool will be 17. This thread pool is used to route messages received from Netty by Camel. We use a separate thread pool to ensure ordering of messages and also in case some messages will block, then nettys worker threads (event loop) wont be affected.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.native-transport",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host operating system and is only supported on some platforms. You need to add the netty JAR for the host operating system you are using. See more details at: http:\/\/netty.io\/wiki\/native-transports.html",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.need-client-auth",
+      "type": "java.lang.Boolean",
+      "description": "Configures whether the server needs client authentication when using SSL.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.netty-http-binding",
+      "type": "org.apache.camel.component.netty.http.NettyHttpBinding",
+      "description": "To use a custom org.apache.camel.component.netty.http.NettyHttpBinding for binding to\/from Netty and Camel Message API. The option is a org.apache.camel.component.netty.http.NettyHttpBinding type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.netty-server-bootstrap-factory",
+      "type": "org.apache.camel.component.netty.NettyServerBootstrapFactory",
+      "description": "To use a custom NettyServerBootstrapFactory. The option is a org.apache.camel.component.netty.NettyServerBootstrapFactory type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.no-reply-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.options",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure additional netty options using option. as prefix. For example option.child.keepAlive=false to set the netty option child.keepAlive=false. See the Netty documentation for possible options that can be used.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.passphrase",
+      "type": "java.lang.String",
+      "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether producer pool is enabled or not. Important: If you turn this off then a single shared connection is used for the producer, also if you are doing request\/reply. That means there is a potential issue with interleaved responses if replies comes back out-of-order. Therefore you need to have a correlation id in both the request and reply messages so you can properly correlate the replies to the Camel callback that is responsible for continue processing the message in Camel. To do this you need to implement NettyCamelStateCorrelationManager as correlation manager and configure it via the correlationManager option. See also the correlationManager option for more details.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-max-active",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time. Use a negative value for no limit.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-max-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of idle instances in the pool.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-min-evictable-idle",
+      "type": "java.lang.Long",
+      "description": "Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.netty-http.producer-pool-min-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.receive-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty-http.receive-buffer-size-predictor",
+      "type": "java.lang.Integer",
+      "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is in milli seconds, so eg 30000 is 30 seconds. The requestTimeout is using Netty's ReadTimeoutHandler to trigger the timeout.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.reuse-address",
+      "type": "java.lang.Boolean",
+      "description": "Setting to facilitate socket multiplexing",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.reuse-channel",
+      "type": "java.lang.Boolean",
+      "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecycle of processing the Exchange. This is useful if you need to call a server multiple times in a Camel route and want to use the same network connection. When using this, the channel is not returned to the connection pool until the Exchange is done; or disconnected if the disconnect option is set to true. The reused Channel is stored on the Exchange as an exchange property with the key NettyConstants#NETTY_CHANNEL which allows you to obtain the channel during routing and use it as well.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.security-configuration",
+      "type": "org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration",
+      "description": "Refers to a org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration for configuring secure web resources. The option is a org.apache.camel.component.netty.http.NettyHttpSecurityConfiguration type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.security-provider",
+      "type": "java.lang.String",
+      "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.send-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty-http.server-closed-channel-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an java.nio.channels.ClosedChannelException then its logged using this logging level. This is used to avoid logging the closed channel exceptions, as clients can disconnect abruptly and then cause a flood of closed exceptions in the Netty server.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.server-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an exception then its logged using this logging level.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.server-initializer-factory",
+      "type": "org.apache.camel.component.netty.ServerInitializerFactory",
+      "description": "To use a custom ServerInitializerFactory. The option is a org.apache.camel.component.netty.ServerInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.ssl",
+      "type": "java.lang.Boolean",
+      "description": "Setting to specify whether SSL encryption is applied to this endpoint",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.ssl-client-cert-headers",
+      "type": "java.lang.Boolean",
+      "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message with headers having information about the client certificate such as subject name, issuer name, serial number, and the valid date range.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.ssl-handler",
+      "type": "io.netty.handler.ssl.SslHandler",
+      "description": "Reference to a class that could be used to return an SSL Handler. The option is a io.netty.handler.ssl.SslHandler type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.sync",
+      "type": "java.lang.Boolean",
+      "description": "Setting to set endpoint as one-way or request-response",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.tcp-no-delay",
+      "type": "java.lang.Boolean",
+      "description": "Setting to improve TCP protocol performance",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.trust-store-file",
+      "type": "java.io.File",
+      "description": "Server side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.trust-store-resource",
+      "type": "java.lang.String",
+      "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty-http.using-executor-service",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty-http.worker-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this option to override the default workerCount from Netty.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty-http.worker-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multiple consumers or producers. By default each consumer or producer has their own worker pool with 2 x cpu count core threads. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.http.springboot.NettyHttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/netty.json b/docs/components/modules/spring-boot/examples/json/netty.json
new file mode 100644
index 0000000..1b4cbfa
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/netty.json
@@ -0,0 +1,507 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.netty",
+      "type": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.netty.allow-default-codec",
+      "type": "java.lang.Boolean",
+      "description": "The netty component installs a default codec if both, encoder\/decoder is null and textline is false. Setting allowDefaultCodec to false prevents the netty component from installing a default codec as the first element in the filter chain.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.allow-serialized-headers",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP when transferExchange is true. When set to true, serializable objects in headers and properties will be added to the exchange. Otherwise Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.auto-append-delimiter",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to auto append missing end delimiter when sending using the textline codec.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.backlog",
+      "type": "java.lang.Integer",
+      "description": "Allows to configure a backlog for netty consumer (server). Note the backlog is just a best effort depending on the OS. Setting this option to a value such as 200, 500 or 1000, tells the TCP stack how long the accept queue can be If this option is not configured, then the backlog depends on OS setting.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.boss-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default bossCount parameter from Netty, which is 1. User can use this option to override the default bossCount from Netty",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.netty.boss-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "Set the BossGroup which could be used for handling the new connection of the server side across the NettyEndpoint. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.broadcast",
+      "type": "java.lang.Boolean",
+      "description": "Setting to choose Multicast over UDP",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.channel-group",
+      "type": "io.netty.channel.group.ChannelGroup",
+      "description": "To use a explicit ChannelGroup. The option is a io.netty.channel.group.ChannelGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.client-initializer-factory",
+      "type": "org.apache.camel.component.netty.ClientInitializerFactory",
+      "description": "To use a custom ClientInitializerFactory. The option is a org.apache.camel.component.netty.ClientInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.client-mode",
+      "type": "java.lang.Boolean",
+      "description": "If the clientMode is true, netty consumer will connect the address as a TCP client.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.configuration",
+      "type": "org.apache.camel.component.netty.NettyConfiguration",
+      "description": "To use the NettyConfiguration as configuration when creating endpoints. The option is a org.apache.camel.component.netty.NettyConfiguration type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "Time to wait for a socket connection to be available. Value is in milliseconds.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.netty.correlation-manager",
+      "type": "org.apache.camel.component.netty.NettyCamelStateCorrelationManager",
+      "description": "To use a custom correlation manager to manage how request and reply messages are mapped when using request\/reply with the netty producer. This should only be used if you have a way to map requests together with replies such as if there is correlation ids in both the request and reply messages. This can be used if you want to multiplex concurrent messages on the same channel (aka connection) in netty. When doing this you must have a way to correlate the request and reply messages so you can store the right reply on the inflight Camel Exchange before its continued routed. We recommend extending the TimeoutCorrelationManagerSupport when you build custom correlation managers. This provides support for timeout and other complexities you otherwise would need to implement as well. See also the producerPoolEnabled option for more details. The option is a org.apache.camel.component.netty.NettyCamelStateCorrelationManager type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.netty.decoder-max-line-length",
+      "type": "java.lang.Integer",
+      "description": "The max line length to use for the textline codec.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 1024
+    },
+    {
+      "name": "camel.component.netty.decoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of decoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.delimiter",
+      "type": "org.apache.camel.component.netty.TextLineDelimiter",
+      "description": "The delimiter to use for the textline codec. Possible values are LINE and NULL.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.disconnect",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not to disconnect(close) from Netty Channel right after use. Can be used for both consumer and producer.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.disconnect-on-no-reply",
+      "type": "java.lang.Boolean",
+      "description": "If sync is enabled then this option dictates NettyConsumer if it should disconnect where there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the netty component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.enabled-protocols",
+      "type": "java.lang.String",
+      "description": "Which protocols to enable when using SSL",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": "TLSv1,TLSv1.1,TLSv1.2"
+    },
+    {
+      "name": "camel.component.netty.encoders",
+      "type": "java.util.List<io.netty.channel.ChannelHandler>",
+      "description": "A list of encoders to be used. You can use a String which have values separated by comma, and have the values be looked up in the Registry. Just remember to prefix the value with # so Camel knows it should lookup.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.encoding",
+      "type": "java.lang.String",
+      "description": "The encoding (a charset name) to use for the textline codec. If not provided, Camel will use the JVM default Charset.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.executor-service",
+      "type": "io.netty.util.concurrent.EventExecutorGroup",
+      "description": "To use the given EventExecutorGroup. The option is a io.netty.util.concurrent.EventExecutorGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.hostname-verification",
+      "type": "java.lang.Boolean",
+      "description": "To enable\/disable hostname verification on SSLEngine",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.keep-alive",
+      "type": "java.lang.Boolean",
+      "description": "Setting to ensure socket is not closed due to inactivity",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.key-store-file",
+      "type": "java.io.File",
+      "description": "Client side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.key-store-format",
+      "type": "java.lang.String",
+      "description": "Keystore format to be used for payload encryption. Defaults to JKS if not set",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.key-store-resource",
+      "type": "java.lang.String",
+      "description": "Client side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.lazy-channel-creation",
+      "type": "java.lang.Boolean",
+      "description": "Channels can be lazily created to avoid exceptions, if the remote server is not up and running when the Camel producer is started.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.maximum-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Sets a maximum thread pool size for the netty consumer ordered thread pool. The default size is 2 x cpu_core plus 1. Setting this value to eg 10 will then use 10 threads unless 2 x cpu_core plus 1 is a higher value, which then will override and be used. For example if there are 8 cores, then the consumer thread pool will be 17. This thread pool is used to route messages received from Netty by Camel. We use a separate thread pool to ensure ordering of messages and also in case some messages will block, then nettys worker threads (event loop) wont be affected.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.native-transport",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use native transport instead of NIO. Native transport takes advantage of the host operating system and is only supported on some platforms. You need to add the netty JAR for the host operating system you are using. See more details at: http:\/\/netty.io\/wiki\/native-transports.html",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.need-client-auth",
+      "type": "java.lang.Boolean",
+      "description": "Configures whether the server needs client authentication when using SSL.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.netty-server-bootstrap-factory",
+      "type": "org.apache.camel.component.netty.NettyServerBootstrapFactory",
+      "description": "To use a custom NettyServerBootstrapFactory. The option is a org.apache.camel.component.netty.NettyServerBootstrapFactory type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.network-interface",
+      "type": "java.lang.String",
+      "description": "When using UDP then this option can be used to specify a network interface by its name, such as eth0 to join a multicast group.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.no-reply-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If sync is enabled this option dictates NettyConsumer which logging level to use when logging a there is no reply to send back.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.options",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Allows to configure additional netty options using option. as prefix. For example option.child.keepAlive=false to set the netty option child.keepAlive=false. See the Netty documentation for possible options that can be used.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.passphrase",
+      "type": "java.lang.String",
+      "description": "Password setting to use in order to encrypt\/decrypt payloads sent using SSH",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.producer-pool-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether producer pool is enabled or not. Important: If you turn this off then a single shared connection is used for the producer, also if you are doing request\/reply. That means there is a potential issue with interleaved responses if replies comes back out-of-order. Therefore you need to have a correlation id in both the request and reply messages so you can properly correlate the replies to the Camel callback that is responsible for continue processing the message in Camel. To do this you need to implement NettyCamelStateCorrelationManager as correlation manager and configure it via the correlationManager option. See also the correlationManager option for more details.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.producer-pool-max-active",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of objects that can be allocated by the pool (checked out to clients, or idle awaiting checkout) at a given time. Use a negative value for no limit.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.netty.producer-pool-max-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the cap on the number of idle instances in the pool.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.netty.producer-pool-min-evictable-idle",
+      "type": "java.lang.Long",
+      "description": "Sets the minimum amount of time (value in millis) an object may sit idle in the pool before it is eligible for eviction by the idle object evictor.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.netty.producer-pool-min-idle",
+      "type": "java.lang.Integer",
+      "description": "Sets the minimum number of instances allowed in the producer pool before the evictor thread (if active) spawns new objects.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.receive-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during inbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty.receive-buffer-size-predictor",
+      "type": "java.lang.Integer",
+      "description": "Configures the buffer size predictor. See details at Jetty documentation and this mail thread.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.reconnect",
+      "type": "java.lang.Boolean",
+      "description": "Used only in clientMode in consumer, the consumer will attempt to reconnect on disconnection if this is enabled",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.reconnect-interval",
+      "type": "java.lang.Integer",
+      "description": "Used if reconnect and clientMode is enabled. The interval in milli seconds to attempt reconnection",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.netty.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Allows to use a timeout for the Netty producer when calling a remote server. By default no timeout is in use. The value is in milli seconds, so eg 30000 is 30 seconds. The requestTimeout is using Netty's ReadTimeoutHandler to trigger the timeout.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.reuse-address",
+      "type": "java.lang.Boolean",
+      "description": "Setting to facilitate socket multiplexing",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.reuse-channel",
+      "type": "java.lang.Boolean",
+      "description": "This option allows producers and consumers (in client mode) to reuse the same Netty Channel for the lifecycle of processing the Exchange. This is useful if you need to call a server multiple times in a Camel route and want to use the same network connection. When using this, the channel is not returned to the connection pool until the Exchange is done; or disconnected if the disconnect option is set to true. The reused Channel is stored on the Exchange as an exchange property with the key NettyConstants#NETTY_CHANNEL which allows you to obtain the channel during routing and use it as well.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.security-provider",
+      "type": "java.lang.String",
+      "description": "Security provider to be used for payload encryption. Defaults to SunX509 if not set.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.send-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "The TCP\/UDP buffer sizes to be used during outbound communication. Size is bytes.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": 65536
+    },
+    {
+      "name": "camel.component.netty.server-closed-channel-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an java.nio.channels.ClosedChannelException then its logged using this logging level. This is used to avoid logging the closed channel exceptions, as clients can disconnect abruptly and then cause a flood of closed exceptions in the Netty server.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.server-exception-caught-log-level",
+      "type": "org.apache.camel.LoggingLevel",
+      "description": "If the server (NettyConsumer) catches an exception then its logged using this logging level.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.server-initializer-factory",
+      "type": "org.apache.camel.component.netty.ServerInitializerFactory",
+      "description": "To use a custom ServerInitializerFactory. The option is a org.apache.camel.component.netty.ServerInitializerFactory type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.ssl",
+      "type": "java.lang.Boolean",
+      "description": "Setting to specify whether SSL encryption is applied to this endpoint",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.ssl-client-cert-headers",
+      "type": "java.lang.Boolean",
+      "description": "When enabled and in SSL mode, then the Netty consumer will enrich the Camel Message with headers having information about the client certificate such as subject name, issuer name, serial number, and the valid date range.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.ssl-handler",
+      "type": "io.netty.handler.ssl.SslHandler",
+      "description": "Reference to a class that could be used to return an SSL Handler. The option is a io.netty.handler.ssl.SslHandler type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.sync",
+      "type": "java.lang.Boolean",
+      "description": "Setting to set endpoint as one-way or request-response",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.tcp-no-delay",
+      "type": "java.lang.Boolean",
+      "description": "Setting to improve TCP protocol performance",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.textline",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. If no codec is specified, you can use this flag to indicate a text line based codec; if not specified or the value is false, then Object Serialization is assumed over TCP - however only Strings are allowed to be serialized by default.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.transfer-exchange",
+      "type": "java.lang.Boolean",
+      "description": "Only used for TCP. You can transfer the exchange over the wire instead of just the body. The following fields are transferred: In body, Out body, fault body, In headers, Out headers, fault headers, exchange properties, exchange exception. This requires that the objects are serializable. Camel will exclude any non-serializable objects and log it at WARN level.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.trust-store-file",
+      "type": "java.io.File",
+      "description": "Server side certificate keystore to be used for encryption",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.trust-store-resource",
+      "type": "java.lang.String",
+      "description": "Server side certificate keystore to be used for encryption. Is loaded by default from classpath, but you can prefix with classpath:, file:, or http: to load the resource from different systems.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.udp-byte-array-codec",
+      "type": "java.lang.Boolean",
+      "description": "For UDP only. If enabled the using byte array codec instead of Java serialization protocol.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.udp-connectionless-sending",
+      "type": "java.lang.Boolean",
+      "description": "This option supports connection less udp sending which is a real fire and forget. A connected udp send receive the PortUnreachableException if no one is listen on the receiving port.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.use-byte-buf",
+      "type": "java.lang.Boolean",
+      "description": "If the useByteBuf is true, netty producer will turn the message body into ByteBuf before sending it out.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.netty.using-executor-service",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use ordered thread pool, to ensure events are processed orderly on the same channel.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.netty.worker-count",
+      "type": "java.lang.Integer",
+      "description": "When netty works on nio mode, it uses default workerCount parameter from Netty (which is cpu_core_threads x 2). User can use this option to override the default workerCount from Netty.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.netty.worker-group",
+      "type": "io.netty.channel.EventLoopGroup",
+      "description": "To use a explicit EventLoopGroup as the boss thread pool. For example to share a thread pool with multiple consumers or producers. By default each consumer or producer has their own worker pool with 2 x cpu count core threads. The option is a io.netty.channel.EventLoopGroup type.",
+      "sourceType": "org.apache.camel.component.netty.springboot.NettyComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/nitrite.json b/docs/components/modules/spring-boot/examples/json/nitrite.json
new file mode 100644
index 0000000..c0a7bdf
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/nitrite.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nitrite",
+      "type": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nitrite.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nitrite.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nitrite.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nitrite.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nitrite.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nitrite component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nitrite.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nitrite.springboot.NitriteComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/nsq.json b/docs/components/modules/spring-boot/examples/json/nsq.json
new file mode 100644
index 0000000..6426f06
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/nsq.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.nsq",
+      "type": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nsq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.nsq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.nsq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nsq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.nsq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the nsq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nsq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.nsq.servers",
+      "type": "java.lang.String",
+      "description": "The hostnames of one or more nsqlookupd servers (consumer) or nsqd servers (producer).",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration"
+    },
+    {
+      "name": "camel.component.nsq.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.nsq.springboot.NsqComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/oaipmh.json b/docs/components/modules/spring-boot/examples/json/oaipmh.json
new file mode 100644
index 0000000..5044887
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/oaipmh.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.oaipmh",
+      "type": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration"
+    },
+    {
+      "name": "camel.component.oaipmh.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.oaipmh.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.oaipmh.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.oaipmh.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.oaipmh.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the oaipmh component. This is enabled by default.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration"
+    },
+    {
+      "name": "camel.component.oaipmh.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.oaipmh.component.springboot.OAIPMHComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ognl.json b/docs/components/modules/spring-boot/examples/json/ognl.json
new file mode 100644
index 0000000..a0c0be4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ognl.json
@@ -0,0 +1,36 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.ognl",
+      "type": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ognl.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.ognl.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.ognl.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ognl language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.ognl.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.ognl.springboot.OgnlLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/olingo2.json b/docs/components/modules/spring-boot/examples/json/olingo2.json
new file mode 100644
index 0000000..a7ff0dd
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/olingo2.json
@@ -0,0 +1,146 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.olingo2",
+      "type": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.olingo2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo2.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo2.configuration",
+      "type": "org.apache.camel.component.olingo2.Olingo2Configuration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.olingo2.Olingo2Configuration type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP connection creation timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo2.content-type",
+      "type": "java.lang.String",
+      "description": "Content-Type header value can be used to specify JSON or XML message format, defaults to application\/json;charset=utf-8",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": "application\/json;charset=utf-8"
+    },
+    {
+      "name": "camel.component.olingo2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.olingo2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the olingo2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.entity-provider-read-properties",
+      "type": "org.apache.olingo.odata2.api.ep.EntityProviderReadProperties",
+      "description": "Custom entity provider read properties applied to all read operations. The option is a org.apache.olingo.odata2.api.ep.EntityProviderReadProperties type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.entity-provider-write-properties",
+      "type": "org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties",
+      "description": "Custom entity provider write properties applied to create, update, patch, batch and merge operations. For instance users can skip the Json object wrapper or enable content only mode when sending request data. A service URI set in the properties will always be overwritten by the serviceUri configuration parameter. Please consider to using the serviceUri configuration parameter instead of setting the respective write property here. The option is a org.apache.olingo.odata2.api.ep.EntityProviderWriteProperties type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.filter-already-seen",
+      "type": "java.lang.Boolean",
+      "description": "Set this to true to filter out results that have already been communicated by this component.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo2.http-async-client-builder",
+      "type": "org.apache.http.impl.nio.client.HttpAsyncClientBuilder",
+      "description": "Custom HTTP async client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.nio.client.HttpAsyncClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.http-client-builder",
+      "type": "org.apache.http.impl.client.HttpClientBuilder",
+      "description": "Custom HTTP client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.client.HttpClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.http-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Custom HTTP headers to inject into every request, this could include OAuth tokens, etc.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo2.proxy",
+      "type": "org.apache.http.HttpHost",
+      "description": "HTTP proxy server configuration. The option is a org.apache.http.HttpHost type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.service-uri",
+      "type": "java.lang.String",
+      "description": "Target OData service base URI, e.g. http:\/\/services.odata.org\/OData\/OData.svc",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP request timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo2.split-result",
+      "type": "java.lang.Boolean",
+      "description": "For endpoints that return an array or collection, a consumer endpoint will map every element to distinct messages, unless splitResult is set to false.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo2.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo2.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.olingo2.springboot.Olingo2ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/olingo4.json b/docs/components/modules/spring-boot/examples/json/olingo4.json
new file mode 100644
index 0000000..18e246c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/olingo4.json
@@ -0,0 +1,134 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.olingo4",
+      "type": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.olingo4.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo4.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo4.configuration",
+      "type": "org.apache.camel.component.olingo4.Olingo4Configuration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.olingo4.Olingo4Configuration type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.connect-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP connection creation timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo4.content-type",
+      "type": "java.lang.String",
+      "description": "Content-Type header value can be used to specify JSON or XML message format, defaults to application\/json;charset=utf-8",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": "application\/json;charset=utf-8"
+    },
+    {
+      "name": "camel.component.olingo4.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.olingo4.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the olingo4 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.filter-already-seen",
+      "type": "java.lang.Boolean",
+      "description": "Set this to true to filter out results that have already been communicated by this component.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo4.http-async-client-builder",
+      "type": "org.apache.http.impl.nio.client.HttpAsyncClientBuilder",
+      "description": "Custom HTTP async client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.nio.client.HttpAsyncClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.http-client-builder",
+      "type": "org.apache.http.impl.client.HttpClientBuilder",
+      "description": "Custom HTTP client builder for more complex HTTP client configuration, overrides connectionTimeout, socketTimeout, proxy and sslContext. Note that a socketTimeout MUST be specified in the builder, otherwise OData requests could block indefinitely. The option is a org.apache.http.impl.client.HttpClientBuilder type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.http-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Custom HTTP headers to inject into every request, this could include OAuth tokens, etc.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.olingo4.proxy",
+      "type": "org.apache.http.HttpHost",
+      "description": "HTTP proxy server configuration. The option is a org.apache.http.HttpHost type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.service-uri",
+      "type": "java.lang.String",
+      "description": "Target OData service base URI, e.g. http:\/\/services.odata.org\/OData\/OData.svc",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.socket-timeout",
+      "type": "java.lang.Integer",
+      "description": "HTTP request timeout in milliseconds, defaults to 30,000 (30 seconds)",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.olingo4.split-result",
+      "type": "java.lang.Boolean",
+      "description": "For endpoints that return an array or collection, a consumer endpoint will map every element to distinct messages, unless splitResult is set to false.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.olingo4.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.olingo4.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.olingo4.springboot.Olingo4ComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/openapi-java.json b/docs/components/modules/spring-boot/examples/json/openapi-java.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/openapi-java.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/openstack.json b/docs/components/modules/spring-boot/examples/json/openstack.json
new file mode 100644
index 0000000..2a3d9e6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/openstack.json
@@ -0,0 +1,223 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.openstack-cinder",
+      "type": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-cinder.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-glance",
+      "type": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-glance.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-keystone",
+      "type": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-keystone.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-neutron",
+      "type": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-neutron.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-nova",
+      "type": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-nova.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.openstack-swift",
+      "type": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-swift.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.openstack-cinder.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-cinder.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-cinder.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-cinder component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-cinder.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.cinder.springboot.CinderComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-glance.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-glance.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-glance.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-glance component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-glance.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.glance.springboot.GlanceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-keystone.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-keystone.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-keystone.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-keystone component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-keystone.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.keystone.springboot.KeystoneComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-neutron.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-neutron.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-neutron.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-neutron component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-neutron.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.neutron.springboot.NeutronComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-nova.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-nova.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-nova.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-nova component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-nova.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.nova.springboot.NovaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.openstack-swift.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.openstack-swift.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.openstack-swift.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the openstack-swift component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.openstack-swift.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.openstack.swift.springboot.SwiftComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/opentelemetry.json b/docs/components/modules/spring-boot/examples/json/opentelemetry.json
new file mode 100644
index 0000000..f199607
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/opentelemetry.json
@@ -0,0 +1,24 @@
+{
+  "groups": [
+    {
+      "name": "camel.opentelemetry",
+      "type": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.opentelemetry.encoding",
+      "type": "java.lang.Boolean",
+      "description": "Activate or deactivate dash encoding in headers (required by JMS) for messaging",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    },
+    {
+      "name": "camel.opentelemetry.exclude-patterns",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Sets exclude pattern(s) that will disable tracing for Camel messages that matches the pattern.",
+      "sourceType": "org.apache.camel.opentelemetry.starter.OpenTelemetryConfigurationProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/opentracing.json b/docs/components/modules/spring-boot/examples/json/opentracing.json
new file mode 100644
index 0000000..8dfe5a3
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/opentracing.json
@@ -0,0 +1,24 @@
+{
+  "groups": [
+    {
+      "name": "camel.opentracing",
+      "type": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties",
+      "sourceType": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.opentracing.encoding",
+      "type": "java.lang.Boolean",
+      "description": "Activate or deactivate dash encoding in headers (required by JMS) for messaging",
+      "sourceType": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties"
+    },
+    {
+      "name": "camel.opentracing.exclude-patterns",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Sets exclude pattern(s) that will disable tracing for Camel messages that matches the pattern.",
+      "sourceType": "org.apache.camel.opentracing.starter.OpenTracingConfigurationProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/optaplanner.json b/docs/components/modules/spring-boot/examples/json/optaplanner.json
new file mode 100644
index 0000000..9fa103a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/optaplanner.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.optaplanner",
+      "type": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.optaplanner.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.optaplanner.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.optaplanner.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.optaplanner.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.optaplanner.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the optaplanner component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.optaplanner.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.optaplanner.springboot.OptaPlannerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/paho-mqtt5.json b/docs/components/modules/spring-boot/examples/json/paho-mqtt5.json
new file mode 100644
index 0000000..82cedf0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/paho-mqtt5.json
@@ -0,0 +1,238 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.paho-mqtt5",
+      "type": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.paho-mqtt5.automatic-reconnect",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client will automatically attempt to reconnect to the server if the connection is lost. If set to false, the client will not attempt to automatically reconnect to the server in the event that the connection is lost. If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.broker-url",
+      "type": "java.lang.String",
+      "description": "The URL of the MQTT broker.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": "tcp:\/\/localhost:1883"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.clean-start",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client and server should remember state across restarts and reconnects. If set to false both the client and server will maintain state across restarts of the client, the server and the connection. As state is maintained: Message delivery will be reliable meeting the specified QOS even if the client, server or connection are restarted. The server will treat a subscription as durable. If set to true the client and server will not maintain state across restarts of the client, the server or the connection. This means Message delivery to the specified QOS cannot be maintained if the client, server or connection are restarted The server will treat a subscription as non-durable",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.client",
+      "type": "org.eclipse.paho.mqttv5.client.MqttClient",
+      "description": "To use a shared Paho client. The option is a org.eclipse.paho.mqttv5.client.MqttClient type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.client-id",
+      "type": "java.lang.String",
+      "description": "MQTT client identifier. The identifier must be unique.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.configuration",
+      "type": "org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration",
+      "description": "To use the shared Paho configuration. The option is a org.apache.camel.component.paho.mqtt5.PahoMqtt5Configuration type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Sets the connection timeout value. This value, measured in seconds, defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 30
+    },
+    {
+      "name": "camel.component.paho-mqtt5.custom-web-socket-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets the Custom WebSocket Headers for the WebSocket Connection.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the paho-mqtt5 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.executor-service-timeout",
+      "type": "java.lang.Integer",
+      "description": "Set the time in seconds that the executor service should wait when terminating before forcefully terminating. It is not recommended to change this value unless you are absolutely sure that you need to.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.paho-mqtt5.file-persistence-directory",
+      "type": "java.lang.String",
+      "description": "Base directory used by file persistence. Will by default use user directory.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.https-hostname-verification-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether SSL HostnameVerifier is enabled or not. The default value is true.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho-mqtt5.keep-alive-interval",
+      "type": "java.lang.Integer",
+      "description": "Sets the keep alive interval. This value, measured in seconds, defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP\/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small ping message, which the server will acknowledge. A value of 0 disables keepalive processing in the client. The default value is 60 seconds",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.paho-mqtt5.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.max-reconnect-delay",
+      "type": "java.lang.Integer",
+      "description": "Get the maximum time (in millis) to wait between reconnects",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 128000
+    },
+    {
+      "name": "camel.component.paho-mqtt5.password",
+      "type": "java.lang.String",
+      "description": "Password to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.persistence",
+      "type": "org.apache.camel.component.paho.mqtt5.PahoMqtt5Persistence",
+      "description": "Client persistence to be used - memory or file.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.qos",
+      "type": "java.lang.Integer",
+      "description": "Client quality of service level (0-2).",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.paho-mqtt5.receive-maximum",
+      "type": "java.lang.Integer",
+      "description": "Sets the Receive Maximum. This value represents the limit of QoS 1 and QoS 2 publications that the client is willing to process concurrently. There is no mechanism to limit the number of QoS 0 publications that the Server might try to send. The default value is 65535",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 65535
+    },
+    {
+      "name": "camel.component.paho-mqtt5.retained",
+      "type": "java.lang.Boolean",
+      "description": "Retain option",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.server-u-r-is",
+      "type": "java.lang.String",
+      "description": "Set a list of one or more serverURIs the client may connect to. Multiple servers can be separated by comma. Each serverURI specifies the address of a server that the client may connect to. Two types of connection are supported tcp:\/\/ for a TCP connection and ssl:\/\/ for a TCP connection secured by SSL\/TLS. For example: tcp:\/\/localhost:1883 ssl:\/\/localhost:8883 If the port is not specified, it will default to 1883 for tcp:\/\/ URIs, and 8883 for ssl:\/\/ URIs. If serverURIs is set then it overrides the serverURI parameter passed in on the constructor of the MQTT client. When an attempt to connect is initiated the client will start with the first serverURI in the list and work through the list until a connection is established with a server. If a connection cannot be made to any of the servers then the connect attempt fails. Specifying a list of servers that a client may connect to has several uses: High Availability and reliable message delivery Some MQTT servers support a high availability feature where two or more equal MQTT servers share state. An MQTT client can connect to any of the equal servers and be assured that messages are reliably delivered and durable subscriptions are maintained no matter which server the client connects to. The cleansession flag must be set to false if durable subscriptions and\/or reliable message delivery is required. Hunt List A set of servers may be specified that are not equal (as in the high availability option). As no state is shared across the servers reliable message delivery and durable subscriptions are not valid. The cleansession flag must be set to true if the hunt list mode is used",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.session-expiry-interval",
+      "type": "java.lang.Long",
+      "description": "Sets the Session Expiry Interval. This value, measured in seconds, defines the maximum time that the broker will maintain the session for once the client disconnects. Clients should only connect with a long Session Expiry interval if they intend to connect to the server at some later point in time. By default this value is -1 and so will not be sent, in this case, the session will not expire. If a 0 is sent, the session will end immediately once the Network Connection is closed. When the client has determined that it has no longer any use for the session, it should disconnect with a Session Expiry Interval set to 0.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.paho-mqtt5.socket-factory",
+      "type": "javax.net.SocketFactory",
+      "description": "Sets the SocketFactory to use. This allows an application to apply its own policies around the creation of network sockets. If using an SSL connection, an SSLSocketFactory can be used to supply application-specific security settings. The option is a javax.net.SocketFactory type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.ssl-client-props",
+      "type": "java.util.Properties",
+      "description": "Sets the SSL properties for the connection. Note that these properties are only valid if an implementation of the Java Secure Socket Extensions (JSSE) is available. These properties are not used if a custom SocketFactory has been set. The following properties can be used: com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE provider. For example IBMJSSE2 or SunJSSE com.ibm.ssl.keyStore The name of the file that contains the KeyStore object that you want the KeyManager to use. For example \/mydir\/etc\/key.p12 com.ibm.ssl.keyStorePassword The password for the KeyStore object that you want the KeyManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.keyStoreType Type of key store, for example PKCS12, JKS, or JCEKS. com.ibm.ssl.keyStoreProvider Key store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.trustStore The name of the file that contains the KeyStore object that you want the TrustManager to use. com.ibm.ssl.trustStorePassword The password for the TrustStore object that you want the TrustManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.trustStoreType The type of KeyStore object that you want the default TrustManager to use. Same possible values as keyStoreType. com.ibm.ssl.trustStoreProvider Trust store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A list of which ciphers are enabled. Values are dependent on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager Sets the algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Example values: IbmX509 or IBMJ9X509. com.ibm.ssl.trustManager Sets the algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Example values: PKIX or IBMJ9X509. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.ssl-hostname-verifier",
+      "type": "javax.net.ssl.HostnameVerifier",
+      "description": "Sets the HostnameVerifier for the SSL connection. Note that it will be used after handshake on a connection and you should do actions by yourself when hostname is verified error. There is no default HostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.user-name",
+      "type": "java.lang.String",
+      "description": "Username to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-mqtt-properties",
+      "type": "org.eclipse.paho.mqttv5.common.packet.MqttProperties",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The MQTT properties set for the message. The option is a org.eclipse.paho.mqttv5.common.packet.MqttProperties type.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-payload",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The byte payload for the message.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-qos",
+      "type": "java.lang.Integer",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The quality of service to publish the message at (0, 1 or 2).",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-retained",
+      "type": "java.lang.Boolean",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho-mqtt5.will-topic",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to.",
+      "sourceType": "org.apache.camel.component.paho.mqtt5.springboot.PahoMqtt5ComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/paho.json b/docs/components/modules/spring-boot/examples/json/paho.json
new file mode 100644
index 0000000..c38d0e0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/paho.json
@@ -0,0 +1,230 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.paho",
+      "type": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.paho.automatic-reconnect",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client will automatically attempt to reconnect to the server if the connection is lost. If set to false, the client will not attempt to automatically reconnect to the server in the event that the connection is lost. If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server. It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay will double until it is at 2 minutes at which point the delay will stay at 2 minutes.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.broker-url",
+      "type": "java.lang.String",
+      "description": "The URL of the MQTT broker.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": "tcp:\/\/localhost:1883"
+    },
+    {
+      "name": "camel.component.paho.clean-session",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the client and server should remember state across restarts and reconnects. If set to false both the client and server will maintain state across restarts of the client, the server and the connection. As state is maintained: Message delivery will be reliable meeting the specified QOS even if the client, server or connection are restarted. The server will treat a subscription as durable. If set to true the client and server will not maintain state across restarts of the client, the server or the connection. This means Message delivery to the specified QOS cannot be maintained if the client, server or connection are restarted The server will treat a subscription as non-durable",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.client",
+      "type": "org.eclipse.paho.client.mqttv3.MqttClient",
+      "description": "To use a shared Paho client. The option is a org.eclipse.paho.client.mqttv3.MqttClient type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.client-id",
+      "type": "java.lang.String",
+      "description": "MQTT client identifier. The identifier must be unique.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.configuration",
+      "type": "org.apache.camel.component.paho.PahoConfiguration",
+      "description": "To use the shared Paho configuration. The option is a org.apache.camel.component.paho.PahoConfiguration type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Sets the connection timeout value. This value, measured in seconds, defines the maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 30
+    },
+    {
+      "name": "camel.component.paho.custom-web-socket-headers",
+      "type": "java.util.Properties",
+      "description": "Sets the Custom WebSocket Headers for the WebSocket Connection. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.paho.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the paho component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.executor-service-timeout",
+      "type": "java.lang.Integer",
+      "description": "Set the time in seconds that the executor service should wait when terminating before forcefully terminating. It is not recommended to change this value unless you are absolutely sure that you need to.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.paho.file-persistence-directory",
+      "type": "java.lang.String",
+      "description": "Base directory used by file persistence. Will by default use user directory.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.https-hostname-verification-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether SSL HostnameVerifier is enabled or not. The default value is true.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.paho.keep-alive-interval",
+      "type": "java.lang.Integer",
+      "description": "Sets the keep alive interval. This value, measured in seconds, defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP\/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small ping message, which the server will acknowledge. A value of 0 disables keepalive processing in the client. The default value is 60 seconds",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.paho.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.max-inflight",
+      "type": "java.lang.Integer",
+      "description": "Sets the max inflight. please increase this value in a high traffic environment. The default value is 10",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.paho.max-reconnect-delay",
+      "type": "java.lang.Integer",
+      "description": "Get the maximum time (in millis) to wait between reconnects",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 128000
+    },
+    {
+      "name": "camel.component.paho.mqtt-version",
+      "type": "java.lang.Integer",
+      "description": "Sets the MQTT version. The default action is to connect with version 3.1.1, and to fall back to 3.1 if that fails. Version 3.1.1 or 3.1 can be selected specifically, with no fall back, by using the MQTT_VERSION_3_1_1 or MQTT_VERSION_3_1 options respectively.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.password",
+      "type": "java.lang.String",
+      "description": "Password to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.persistence",
+      "type": "org.apache.camel.component.paho.PahoPersistence",
+      "description": "Client persistence to be used - memory or file.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.qos",
+      "type": "java.lang.Integer",
+      "description": "Client quality of service level (0-2).",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.paho.retained",
+      "type": "java.lang.Boolean",
+      "description": "Retain option",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.server-u-r-is",
+      "type": "java.lang.String",
+      "description": "Set a list of one or more serverURIs the client may connect to. Multiple servers can be separated by comma. Each serverURI specifies the address of a server that the client may connect to. Two types of connection are supported tcp:\/\/ for a TCP connection and ssl:\/\/ for a TCP connection secured by SSL\/TLS. For example: tcp:\/\/localhost:1883 ssl:\/\/localhost:8883 If the port is not specified, it will default to 1883 for tcp:\/\/ URIs, and 8883 for ssl:\/\/ URIs. If serverURIs is set then it overrides the serverURI parameter passed in on the constructor of the MQTT client. When an attempt to connect is initiated the client will start with the first serverURI in the list and work through the list until a connection is established with a server. If a connection cannot be made to any of the servers then the connect attempt fails. Specifying a list of servers that a client may connect to has several uses: High Availability and reliable message delivery Some MQTT servers support a high availability feature where two or more equal MQTT servers share state. An MQTT client can connect to any of the equal servers and be assured that messages are reliably delivered and durable subscriptions are maintained no matter which server the client connects to. The cleansession flag must be set to false if durable subscriptions and\/or reliable message delivery is required. Hunt List A set of servers may be specified that are not equal (as in the high availability option). As no state is shared across the servers reliable message delivery and durable subscriptions are not valid. The cleansession flag must be set to true if the hunt list mode is used",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.socket-factory",
+      "type": "javax.net.SocketFactory",
+      "description": "Sets the SocketFactory to use. This allows an application to apply its own policies around the creation of network sockets. If using an SSL connection, an SSLSocketFactory can be used to supply application-specific security settings. The option is a javax.net.SocketFactory type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.ssl-client-props",
+      "type": "java.util.Properties",
+      "description": "Sets the SSL properties for the connection. Note that these properties are only valid if an implementation of the Java Secure Socket Extensions (JSSE) is available. These properties are not used if a custom SocketFactory has been set. The following properties can be used: com.ibm.ssl.protocol One of: SSL, SSLv3, TLS, TLSv1, SSL_TLS. com.ibm.ssl.contextProvider Underlying JSSE provider. For example IBMJSSE2 or SunJSSE com.ibm.ssl.keyStore The name of the file that contains the KeyStore object that you want the KeyManager to use. For example \/mydir\/etc\/key.p12 com.ibm.ssl.keyStorePassword The password for the KeyStore object that you want the KeyManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.keyStoreType Type of key store, for example PKCS12, JKS, or JCEKS. com.ibm.ssl.keyStoreProvider Key store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.trustStore The name of the file that contains the KeyStore object that you want the TrustManager to use. com.ibm.ssl.trustStorePassword The password for the TrustStore object that you want the TrustManager to use. The password can either be in plain-text, or may be obfuscated using the static method: com.ibm.micro.security.Password.obfuscate(char password). This obfuscates the password using a simple and insecure XOR and Base64 encoding mechanism. Note that this is only a simple scrambler to obfuscate clear-text passwords. com.ibm.ssl.trustStoreType The type of KeyStore object that you want the default TrustManager to use. Same possible values as keyStoreType. com.ibm.ssl.trustStoreProvider Trust store provider, for example IBMJCE or IBMJCEFIPS. com.ibm.ssl.enabledCipherSuites A list of which ciphers are enabled. Values are dependent on the provider, for example: SSL_RSA_WITH_AES_128_CBC_SHA;SSL_RSA_WITH_3DES_EDE_CBC_SHA. com.ibm.ssl.keyManager Sets the algorithm that will be used to instantiate a KeyManagerFactory object instead of using the default algorithm available in the platform. Example values: IbmX509 or IBMJ9X509. com.ibm.ssl.trustManager Sets the algorithm that will be used to instantiate a TrustManagerFactory object instead of using the default algorithm available in the platform. Example values: PKIX or IBMJ9X509. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.ssl-hostname-verifier",
+      "type": "javax.net.ssl.HostnameVerifier",
+      "description": "Sets the HostnameVerifier for the SSL connection. Note that it will be used after handshake on a connection and you should do actions by yourself when hostname is verified error. There is no default HostnameVerifier. The option is a javax.net.ssl.HostnameVerifier type.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.user-name",
+      "type": "java.lang.String",
+      "description": "Username to be used for authentication against the MQTT broker",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.will-payload",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.will-qos",
+      "type": "java.lang.Integer",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    },
+    {
+      "name": "camel.component.paho.will-retained",
+      "type": "java.lang.Boolean",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.paho.will-topic",
+      "type": "java.lang.String",
+      "description": "Sets the Last Will and Testament (LWT) for the connection. In the event that this client unexpectedly loses its connection to the server, the server will publish a message to itself using the supplied details. The topic to publish to The byte payload for the message. The quality of service to publish the message at (0, 1 or 2). Whether or not the message should be retained.",
+      "sourceType": "org.apache.camel.component.paho.springboot.PahoComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/pdf.json b/docs/components/modules/spring-boot/examples/json/pdf.json
new file mode 100644
index 0000000..503682a
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/pdf.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pdf",
+      "type": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pdf.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pdf.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pdf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pdf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pdf component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pdf.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pdf.springboot.PdfComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/pg-replication-slot.json b/docs/components/modules/spring-boot/examples/json/pg-replication-slot.json
new file mode 100644
index 0000000..261eb51
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/pg-replication-slot.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pg-replication-slot",
+      "type": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pg-replication-slot.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pg-replication-slot.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pg-replication-slot.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pg-replication-slot.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pg-replication-slot.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pg-replication-slot component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pg.replication.slot.springboot.PgReplicationSlotComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/pgevent.json b/docs/components/modules/spring-boot/examples/json/pgevent.json
new file mode 100644
index 0000000..64e6961
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/pgevent.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pgevent",
+      "type": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pgevent.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pgevent.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pgevent.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pgevent.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pgevent.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pgevent component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pgevent.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pgevent.springboot.PgEventComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/platform-http.json b/docs/components/modules/spring-boot/examples/json/platform-http.json
new file mode 100644
index 0000000..6bb6a07
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/platform-http.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.platform-http",
+      "type": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.platform-http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.platform-http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.platform-http.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.platform-http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.platform-http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the platform-http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.platform-http.engine",
+      "type": "org.apache.camel.component.platform.http.spi.PlatformHttpEngine",
+      "description": "An HTTP Server engine implementation to serve the requests. The option is a org.apache.camel.component.platform.http.spi.PlatformHttpEngine type.",
+      "sourceType": "org.apache.camel.component.platform.http.springboot.PlatformHttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/printer.json b/docs/components/modules/spring-boot/examples/json/printer.json
new file mode 100644
index 0000000..96cdd16
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/printer.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.lpr",
+      "type": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lpr.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.lpr.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.lpr.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.lpr.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the lpr component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.lpr.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.printer.springboot.PrinterComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/protobuf.json b/docs/components/modules/spring-boot/examples/json/protobuf.json
new file mode 100644
index 0000000..487b5ea
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/protobuf.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.protobuf",
+      "type": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.protobuf.content-type-format",
+      "type": "java.lang.String",
+      "description": "Defines a content type format in which protobuf message will be serialized\/deserialized from(to) the Java been. The format can either be native or json for either native protobuf or json fields representation. The default value is native.",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "defaultValue": "native"
+    },
+    {
+      "name": "camel.dataformat.protobuf.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.protobuf.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.protobuf.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the protobuf data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.protobuf.instance-class",
+      "type": "java.lang.String",
+      "description": "Name of class to use when unmarshalling",
+      "sourceType": "org.apache.camel.dataformat.protobuf.springboot.ProtobufDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/pubnub.json b/docs/components/modules/spring-boot/examples/json/pubnub.json
new file mode 100644
index 0000000..1cc2d8c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/pubnub.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pubnub",
+      "type": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pubnub.auth-key",
+      "type": "java.lang.String",
+      "description": "If Access Manager is utilized, client will use this authKey in all restricted requests.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pubnub.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pubnub.cipher-key",
+      "type": "java.lang.String",
+      "description": "If cipher is passed, all communications to\/from PubNub will be encrypted.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.configuration",
+      "type": "org.apache.camel.component.pubnub.PubNubConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.pubnub.PubNubConfiguration type.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pubnub.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pubnub component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pubnub.operation",
+      "type": "java.lang.String",
+      "description": "The operation to perform. PUBLISH: Default. Send a message to all subscribers of a channel. FIRE: allows the client to send a message to BLOCKS Event Handlers. These messages will go directly to any Event Handlers registered on the channel. HERENOW: Obtain information about the current state of a channel including a list of unique user-ids currently subscribed to the channel and the total occupancy count. WHERENOW: Obtain information about the current list of channels to which a uuid is subscribed to. GETSTATE: Used to get key\/value pairs specific to a subscriber uuid. State information is supplied as a JSON object of key\/value pairs SETSTATE: Used to set key\/value pairs specific to a subscriber uuid GETHISTORY: Fetches historical messages of a channel.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.publish-key",
+      "type": "java.lang.String",
+      "description": "The publish key obtained from your PubNub account. Required when publishing messages.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.secret-key",
+      "type": "java.lang.String",
+      "description": "The secret key used for message signing.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.secure",
+      "type": "java.lang.Boolean",
+      "description": "Use SSL for secure transmission.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pubnub.subscribe-key",
+      "type": "java.lang.String",
+      "description": "The subscribe key obtained from your PubNub account. Required when subscribing to channels or listening for presence events",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.uuid",
+      "type": "java.lang.String",
+      "description": "UUID to be used as a device identifier, a default UUID is generated if not passed.",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pubnub.with-presence",
+      "type": "java.lang.Boolean",
+      "description": "Also subscribe to related presence information",
+      "sourceType": "org.apache.camel.component.pubnub.springboot.PubNubComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/pulsar.json b/docs/components/modules/spring-boot/examples/json/pulsar.json
new file mode 100644
index 0000000..5e2a9aa
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/pulsar.json
@@ -0,0 +1,299 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.pulsar",
+      "type": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.pulsar.ack-group-time-millis",
+      "type": "java.lang.Long",
+      "description": "Group the consumer acknowledgments for the specified time in milliseconds - defaults to 100",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.pulsar.ack-timeout-millis",
+      "type": "java.lang.Long",
+      "description": "Timeout for unacknowledged messages in milliseconds - defaults to 10000",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.pulsar.allow-manual-acknowledgement",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow manual message acknowledgements. If this option is enabled, then messages are not acknowledged automatically after successful route completion. Instead, an instance of PulsarMessageReceipt is stored as a header on the org.apache.camel.Exchange. Messages can then be acknowledged using PulsarMessageReceipt at any time before the ackTimeout occurs.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.authentication-class",
+      "type": "java.lang.String",
+      "description": "The Authentication FQCN to be used while creating the client from URI",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.authentication-params",
+      "type": "java.lang.String",
+      "description": "The Authentication Parameters to be used while creating the client from URI",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.auto-configuration",
+      "type": "org.apache.camel.component.pulsar.utils.AutoConfiguration",
+      "description": "The pulsar auto configuration. The option is a org.apache.camel.component.pulsar.utils.AutoConfiguration type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pulsar.batcher-builder",
+      "type": "org.apache.pulsar.client.api.BatcherBuilder",
+      "description": "Control batching method used by the producer. The option is a org.apache.pulsar.client.api.BatcherBuilder type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.batching-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Control whether automatic batching of messages is enabled for the producer.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pulsar.batching-max-messages",
+      "type": "java.lang.Integer",
+      "description": "The maximum size to batch messages.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.pulsar.batching-max-publish-delay-micros",
+      "type": "java.lang.Long",
+      "description": "The maximum time period within which the messages sent will be batched if batchingEnabled is true.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.pulsar.block-if-queue-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether to block the producing thread if pending messages queue is full or to throw a ProducerQueueIsFullError",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.compression-type",
+      "type": "org.apache.pulsar.client.api.CompressionType",
+      "description": "Compression type to use",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.configuration",
+      "type": "org.apache.camel.component.pulsar.PulsarConfiguration",
+      "description": "Allows to pre-configure the Pulsar component with common options that the endpoints will reuse. The option is a org.apache.camel.component.pulsar.PulsarConfiguration type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.consumer-name",
+      "type": "java.lang.String",
+      "description": "Name of the consumer when subscription is EXCLUSIVE",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": "sole-consumer"
+    },
+    {
+      "name": "camel.component.pulsar.consumer-name-prefix",
+      "type": "java.lang.String",
+      "description": "Prefix to add to consumer names when a SHARED or FAILOVER subscription is used",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": "cons"
+    },
+    {
+      "name": "camel.component.pulsar.consumer-queue-size",
+      "type": "java.lang.Integer",
+      "description": "Size of the consumer queue - defaults to 10",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.pulsar.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.pulsar.dead-letter-topic",
+      "type": "java.lang.String",
+      "description": "Name of the topic where the messages which fail maxRedeliverCount times will be sent. Note: if not set, default topic name will be topicName-subscriptionName-DLQ",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the pulsar component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.initial-sequence-id",
+      "type": "java.lang.Long",
+      "description": "The first message published will have a sequence Id of initialSequenceId 1.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.pulsar.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.max-pending-messages",
+      "type": "java.lang.Integer",
+      "description": "Size of the pending massages queue. When the queue is full, by default, any further sends will fail unless blockIfQueueFull=true",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.pulsar.max-pending-messages-across-partitions",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of pending messages for partitioned topics. The maxPendingMessages value will be reduced if (number of partitions maxPendingMessages) exceeds this value. Partitioned topics have a pending message queue for each partition.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 50000
+    },
+    {
+      "name": "camel.component.pulsar.max-redeliver-count",
+      "type": "java.lang.Integer",
+      "description": "Maximum number of times that a message will be redelivered before being sent to the dead letter queue. If this value is not set, no Dead Letter Policy will be created",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.message-listener",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use the messageListener interface, or to receive messages using a separate thread pool",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.pulsar.message-router",
+      "type": "org.apache.pulsar.client.api.MessageRouter",
+      "description": "Custom Message Router to use. The option is a org.apache.pulsar.client.api.MessageRouter type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.message-routing-mode",
+      "type": "org.apache.pulsar.client.api.MessageRoutingMode",
+      "description": "Message Routing Mode to use",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.negative-ack-redelivery-delay-micros",
+      "type": "java.lang.Long",
+      "description": "Set the negative acknowledgement delay",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 60000000
+    },
+    {
+      "name": "camel.component.pulsar.number-of-consumer-threads",
+      "type": "java.lang.Integer",
+      "description": "Number of threads to receive and handle messages when using a separate thread pool",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.pulsar.number-of-consumers",
+      "type": "java.lang.Integer",
+      "description": "Number of consumers - defaults to 1",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.pulsar.producer-name",
+      "type": "java.lang.String",
+      "description": "Name of the producer. If unset, lets Pulsar select a unique identifier.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.pulsar-client",
+      "type": "org.apache.pulsar.client.api.PulsarClient",
+      "description": "The pulsar client. The option is a org.apache.pulsar.client.api.PulsarClient type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.pulsar-message-receipt-factory",
+      "type": "org.apache.camel.component.pulsar.PulsarMessageReceiptFactory",
+      "description": "Provide a factory to create an alternate implementation of PulsarMessageReceipt. The option is a org.apache.camel.component.pulsar.PulsarMessageReceiptFactory type.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.read-compacted",
+      "type": "java.lang.Boolean",
+      "description": "Enable compacted topic reading.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.pulsar.send-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "Send timeout in milliseconds",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.pulsar.service-url",
+      "type": "java.lang.String",
+      "description": "The Pulsar Service URL to point while creating the client from URI",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-initial-position",
+      "type": "org.apache.camel.component.pulsar.utils.consumers.SubscriptionInitialPosition",
+      "description": "Control the initial position in the topic of a newly created subscription. Default is latest message.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-name",
+      "type": "java.lang.String",
+      "description": "Name of the subscription to use",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": "subs"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-topics-mode",
+      "type": "org.apache.pulsar.client.api.RegexSubscriptionMode",
+      "description": "Determines to which topics this consumer should be subscribed to - Persistent, Non-Persistent, or both. Only used with pattern subscriptions.",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.subscription-type",
+      "type": "org.apache.camel.component.pulsar.utils.consumers.SubscriptionType",
+      "description": "Type of the subscription EXCLUSIVESHAREDFAILOVERKEY_SHARED, defaults to EXCLUSIVE",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration"
+    },
+    {
+      "name": "camel.component.pulsar.topics-pattern",
+      "type": "java.lang.Boolean",
+      "description": "Whether the topic is a pattern (regular expression) that allows the consumer to subscribe to all matching topics in the namespace",
+      "sourceType": "org.apache.camel.component.pulsar.springboot.PulsarComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/quartz.json b/docs/components/modules/spring-boot/examples/json/quartz.json
new file mode 100644
index 0000000..05b4afa
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/quartz.json
@@ -0,0 +1,114 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.quartz",
+      "type": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.quartz.auto-start-scheduler",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the scheduler should be auto started. This options is default true",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quartz.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.quartz.enable-jmx",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable Quartz JMX which allows to manage the Quartz scheduler from JMX. This options is default true",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the quartz component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.interrupt-jobs-on-shutdown",
+      "type": "java.lang.Boolean",
+      "description": "Whether to interrupt jobs on shutdown which forces the scheduler to shutdown quicker and attempt to interrupt any running jobs. If this is enabled then any running jobs can fail due to being interrupted. When a job is interrupted then Camel will mark the exchange to stop continue routing and set java.util.concurrent.RejectedExecutionException as caused exception. Therefore use this with care, as its often better to allow Camel jobs to complete and shutdown gracefully.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quartz.prefix-instance-name",
+      "type": "java.lang.Boolean",
+      "description": "Whether to prefix the Quartz Scheduler instance name with the CamelContext name. This is enabled by default, to let each CamelContext use its own Quartz scheduler instance by default. You can set this option to false to reuse Quartz scheduler instances between multiple CamelContext's.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quartz.prefix-job-name-with-endpoint-id",
+      "type": "java.lang.Boolean",
+      "description": "Whether to prefix the quartz job with the endpoint id. This option is default false.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quartz.properties",
+      "type": "java.util.Map",
+      "description": "Properties to configure the Quartz scheduler.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.properties-file",
+      "type": "java.lang.String",
+      "description": "File name of the properties to load from the classpath",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.properties-ref",
+      "type": "java.lang.String",
+      "description": "References to an existing Properties or Map to lookup in the registry to use for configuring quartz.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.scheduler",
+      "type": "org.quartz.Scheduler",
+      "description": "To use the custom configured Quartz scheduler, instead of creating a new Scheduler. The option is a org.quartz.Scheduler type.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.scheduler-factory",
+      "type": "org.quartz.SchedulerFactory",
+      "description": "To use the custom SchedulerFactory which is used to create the Scheduler. The option is a org.quartz.SchedulerFactory type.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quartz.start-delayed-seconds",
+      "type": "java.lang.Integer",
+      "description": "Seconds to wait before starting the quartz scheduler.",
+      "sourceType": "org.apache.camel.component.quartz.springboot.QuartzComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/quickfix.json b/docs/components/modules/spring-boot/examples/json/quickfix.json
new file mode 100644
index 0000000..bffc746
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/quickfix.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.quickfix",
+      "type": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.quickfix.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.quickfix.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quickfix.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.quickfix.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the quickfix component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.lazy-create-engines",
+      "type": "java.lang.Boolean",
+      "description": "If set to true, the engines will be created and started when needed (when first message is send)",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quickfix.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.quickfix.log-factory",
+      "type": "quickfix.LogFactory",
+      "description": "To use the given LogFactory. The option is a quickfix.LogFactory type.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.message-factory",
+      "type": "quickfix.MessageFactory",
+      "description": "To use the given MessageFactory. The option is a quickfix.MessageFactory type.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    },
+    {
+      "name": "camel.component.quickfix.message-store-factory",
+      "type": "quickfix.MessageStoreFactory",
+      "description": "To use the given MessageStoreFactory. The option is a quickfix.MessageStoreFactory type.",
+      "sourceType": "org.apache.camel.component.quickfixj.springboot.QuickfixjComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/rabbitmq.json b/docs/components/modules/spring-boot/examples/json/rabbitmq.json
new file mode 100644
index 0000000..086bd3b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/rabbitmq.json
@@ -0,0 +1,403 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rabbitmq",
+      "type": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rabbitmq.additional-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Map of additional headers. These headers will be set only when the 'allowCustomHeaders' is set to true",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Map of additional properties. These are standard RabbitMQ properties as defined in com.rabbitmq.client.AMQP.BasicProperties The map keys should be from org.apache.camel.component.rabbitmq.RabbitMQConstants. Any other keys will be ignored. When the message already contains these headers they will be given precedence over these properties.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.addresses",
+      "type": "java.lang.String",
+      "description": "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",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.allow-null-headers",
+      "type": "java.lang.Boolean",
+      "description": "Allow pass null values to header",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.args",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Specify arguments for configuring the different RabbitMQ concepts, a different prefix is required for each: Exchange: arg.exchange. Queue: arg.queue. Binding: arg.binding. DLQ: arg.dlq.queue. DLQ Binding: arg.dlq.binding. For example to declare a queue with message ttl argument: http:\/\/localhost:5672\/exchange\/queueargs=arg.queue.x-message-ttl=60000",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.auto-ack",
+      "type": "java.lang.Boolean",
+      "description": "If messages should be auto acknowledged",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.auto-delete",
+      "type": "java.lang.Boolean",
+      "description": "If it is true, the exchange will be deleted when it is no longer in use",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.auto-detect-connection-factory",
+      "type": "java.lang.Boolean",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.automatic-recovery-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables connection automatic recovery (uses connection implementation that performs automatic recovery when connection shutdown is not initiated by the application)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.channel-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Get maximum number of opened channel in pool",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.rabbitmq.channel-pool-max-wait",
+      "type": "java.lang.Long",
+      "description": "Set the maximum number of milliseconds to wait for a channel from the pool",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.rabbitmq.client-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Connection client properties (client info used in negotiating with the server)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.connection-factory",
+      "type": "com.rabbitmq.client.ConnectionFactory",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.connection-factory-exception-handler",
+      "type": "com.rabbitmq.client.ExceptionHandler",
+      "description": "Custom rabbitmq ExceptionHandler for ConnectionFactory. The option is a com.rabbitmq.client.ExceptionHandler type.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Connection timeout",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.rabbitmq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-exchange",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-exchange-type",
+      "type": "java.lang.String",
+      "description": "The type of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "direct"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-queue",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter queue",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.dead-letter-routing-key",
+      "type": "java.lang.String",
+      "description": "The routing key for the dead letter exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.declare",
+      "type": "java.lang.Boolean",
+      "description": "If the option is true, camel declare the exchange and queue name and bind them together. If the option is false, camel won't declare the exchange and queue name on the server.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.durable",
+      "type": "java.lang.Boolean",
+      "description": "If we are declaring a durable exchange (the exchange will survive a server restart)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rabbitmq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rabbitmq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.exclusive",
+      "type": "java.lang.Boolean",
+      "description": "Exclusive queues may only be accessed by the current connection, and are deleted when that connection closes.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.exclusive-consumer",
+      "type": "java.lang.Boolean",
+      "description": "Request exclusive access to the queue (meaning only this consumer can access the queue). This is useful when you want a long-lived shared queue to be temporarily accessible by just one consumer.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.guaranteed-deliveries",
+      "type": "java.lang.Boolean",
+      "description": "When true, an exception will be thrown when the message cannot be delivered (basic.return) and the message is marked as mandatory. PublisherAcknowledgement will also be activated in this case. See also publisher acknowledgements - When will messages be confirmed.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.hostname",
+      "type": "java.lang.String",
+      "description": "The hostname of the running RabbitMQ instance or cluster.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.immediate",
+      "type": "java.lang.Boolean",
+      "description": "This flag tells the server how to react if the message cannot be routed to a queue consumer immediately. If this flag is set, the server will return an undeliverable message with a Return method. If this flag is zero, the server will queue the message, but with no guarantee that it will ever be consumed. If the header is present rabbitmq.IMMEDIATE it will override this option.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.mandatory",
+      "type": "java.lang.Boolean",
+      "description": "This flag tells the server how to react if the message cannot be routed to a queue. If this flag is set, the server will return an unroutable message with a Return method. If this flag is zero, the server silently drops the message. If the header is present rabbitmq.MANDATORY it will override this option.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.network-recovery-interval",
+      "type": "java.lang.Integer",
+      "description": "Network recovery interval in milliseconds (interval used when recovering from network failure)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.rabbitmq.passive",
+      "type": "java.lang.Boolean",
+      "description": "Passive queues depend on the queue already to be available at RabbitMQ.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.password",
+      "type": "java.lang.String",
+      "description": "Password for authenticated access",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "guest"
+    },
+    {
+      "name": "camel.component.rabbitmq.port-number",
+      "type": "java.lang.Integer",
+      "description": "Port number for the host with the running rabbitmq instance or cluster.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 5672
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of messages that the server will deliver, 0 if unlimited. You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables the quality of service on the RabbitMQConsumer side. You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-global",
+      "type": "java.lang.Boolean",
+      "description": "If the settings should be applied to the entire channel rather than each consumer You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.prefetch-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of content (measured in octets) that the server will deliver, 0 if unlimited. You need to specify the option of prefetchSize, prefetchCount, prefetchGlobal at the same time",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.publisher-acknowledgements",
+      "type": "java.lang.Boolean",
+      "description": "When true, the message will be published with publisher acknowledgements turned on",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.publisher-acknowledgements-timeout",
+      "type": "java.lang.Long",
+      "description": "The amount of time in milliseconds to wait for a basic.ack response from RabbitMQ server",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.recover-from-declare-exception",
+      "type": "java.lang.Boolean",
+      "description": "Decides whether an exception during declaration of exchanges or queues is recoverable or not. If the option is false, camel will throw an exception when starting the consumer, which will interrupt application startup (e.g. in the case when the exchange \/ queue is already declared in RabbitMQ and has incompatible configuration). If set to true, the consumer will try to reconnect periodically.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.request-timeout",
+      "type": "java.lang.Long",
+      "description": "Set timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 20000
+    },
+    {
+      "name": "camel.component.rabbitmq.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Set requestTimeoutCheckerInterval for inOut exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.rabbitmq.requested-channel-max",
+      "type": "java.lang.Integer",
+      "description": "Connection requested channel max (max number of channels offered)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 2047
+    },
+    {
+      "name": "camel.component.rabbitmq.requested-frame-max",
+      "type": "java.lang.Integer",
+      "description": "Connection requested frame max (max size of frame offered)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.rabbitmq.requested-heartbeat",
+      "type": "java.lang.Integer",
+      "description": "Connection requested heartbeat (heart-beat in seconds offered)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.rabbitmq.skip-exchange-declare",
+      "type": "java.lang.Boolean",
+      "description": "This can be used if we need to declare the queue but not the exchange",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.skip-queue-bind",
+      "type": "java.lang.Boolean",
+      "description": "If true the queue will not be bound to the exchange after declaring it",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.skip-queue-declare",
+      "type": "java.lang.Boolean",
+      "description": "If true the producer will not declare and bind a queue. This can be used for directing messages via an existing routing key.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.ssl-protocol",
+      "type": "java.lang.String",
+      "description": "Enables SSL on connection, accepted value are true, TLS and 'SSLv3",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.thread-pool-size",
+      "type": "java.lang.Integer",
+      "description": "The consumer uses a Thread Pool Executor with a fixed number of threads. This setting allows you to set that number of threads.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.rabbitmq.topology-recovery-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables connection topology recovery (should topology recovery be performed)",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.transfer-exception",
+      "type": "java.lang.Boolean",
+      "description": "When true and an inOut Exchange failed on the consumer side send the caused Exception back in the response",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rabbitmq.trust-manager",
+      "type": "javax.net.ssl.TrustManager",
+      "description": "Configure SSL trust manager, SSL should be enabled for this option to be effective. The option is a javax.net.ssl.TrustManager type.",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rabbitmq.username",
+      "type": "java.lang.String",
+      "description": "Username in case of authenticated access",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "guest"
+    },
+    {
+      "name": "camel.component.rabbitmq.vhost",
+      "type": "java.lang.String",
+      "description": "The vhost for the channel",
+      "sourceType": "org.apache.camel.component.rabbitmq.springboot.RabbitMQComponentConfiguration",
+      "defaultValue": "\/"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/reactive-streams.json b/docs/components/modules/spring-boot/examples/json/reactive-streams.json
new file mode 100644
index 0000000..aa4b685
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/reactive-streams.json
@@ -0,0 +1,88 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.reactive-streams",
+      "type": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.reactive-streams.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.reactive-streams.backpressure-strategy",
+      "type": "org.apache.camel.component.reactive.streams.ReactiveStreamsBackpressureStrategy",
+      "description": "The backpressure strategy to use when pushing events to a slow subscriber.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.reactive-streams.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.reactive-streams.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the reactive-streams component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.reactive-streams.reactive-streams-engine-configuration",
+      "type": "org.apache.camel.component.reactive.streams.engine.ReactiveStreamsEngineConfiguration",
+      "description": "To use an existing reactive stream engine configuration. The option is a org.apache.camel.component.reactive.streams.engine.ReactiveStreamsEngineConfiguration type.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.service-type",
+      "type": "java.lang.String",
+      "description": "Set the type of the underlying reactive streams implementation to use. The implementation is looked up from the registry or using a ServiceLoader, the default implementation is DefaultCamelReactiveStreamsService",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.thread-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of threads used by the reactive streams internal engine.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.reactive-streams.thread-pool-min-size",
+      "type": "java.lang.Integer",
+      "description": "The minimum number of threads used by the reactive streams internal engine.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.reactive-streams.thread-pool-name",
+      "type": "java.lang.String",
+      "description": "The name of the thread pool used by the reactive streams internal engine.",
+      "sourceType": "org.apache.camel.component.reactive.streams.springboot.ReactiveStreamsComponentConfiguration",
+      "defaultValue": "CamelReactiveStreamsWorker"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/reactor.json b/docs/components/modules/spring-boot/examples/json/reactor.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/reactor.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ref.json b/docs/components/modules/spring-boot/examples/json/ref.json
new file mode 100644
index 0000000..8835428
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ref.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ref",
+      "type": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ref.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ref.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ref.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ref.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ref.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ref component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ref.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ref.springboot.RefComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/resilience4j.json b/docs/components/modules/spring-boot/examples/json/resilience4j.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/resilience4j.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/rest-openapi.json b/docs/components/modules/spring-boot/examples/json/rest-openapi.json
new file mode 100644
index 0000000..b4f4f15
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/rest-openapi.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rest-openapi",
+      "type": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rest-openapi.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest-openapi.base-path",
+      "type": "java.lang.String",
+      "description": "API basePath, for example \/v2. Default is unset, if set overrides the value present in OpenApi specification.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.component-name",
+      "type": "java.lang.String",
+      "description": "Name of the Camel component that will perform the requests. The component must be present in Camel registry and it must implement RestProducerFactory service provider interface. If not set CLASSPATH is searched for single component that implements RestProducerFactory SPI. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.consumes",
+      "type": "java.lang.String",
+      "description": "What payload type this component capable of consuming. Could be one type, like application\/json or multiple types as application\/json, application\/xml; q=0.5 according to the RFC7231. This equates to the value of Accept HTTP header. If set overrides any value found in the OpenApi specification. Can be overridden in endpoint configuration",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest-openapi.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest-openapi component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.host",
+      "type": "java.lang.String",
+      "description": "Scheme hostname and port to direct the HTTP requests to in the form of https:\/\/hostname:port. Can be configured at the endpoint, component or in the corresponding REST configuration in the Camel Context. If you give this component a name (e.g. petstore) that REST configuration is consulted first, rest-openapi next, and global configuration last. If set overrides any value found in the OpenApi specification, RestConfiguration. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest-openapi.produces",
+      "type": "java.lang.String",
+      "description": "What payload type this component is producing. For example application\/json according to the RFC7231. This equates to the value of Content-Type HTTP header. If set overrides any value present in the OpenApi specification. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.specification-uri",
+      "type": "java.net.URI",
+      "description": "Path to the OpenApi specification file. The scheme, host base path are taken from this specification, but these can be overridden with properties on the component or endpoint level. If not given the component tries to load openapi.json resource. Note that the host defined on the component and endpoint of this Component should contain the scheme, hostname and optionally the port in the URI syntax (i.e. https:\/\/api.example.com:8080). Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Customize TLS parameters used by the component. If not set defaults to the TLS parameters set in the Camel context. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-openapi.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.rest.openapi.springboot.RestOpenApiComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/rest-swagger.json b/docs/components/modules/spring-boot/examples/json/rest-swagger.json
new file mode 100644
index 0000000..919b8d7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/rest-swagger.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rest-swagger",
+      "type": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rest-swagger.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest-swagger.base-path",
+      "type": "java.lang.String",
+      "description": "API basePath, for example \/v2. Default is unset, if set overrides the value present in Swagger specification.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.component-name",
+      "type": "java.lang.String",
+      "description": "Name of the Camel component that will perform the requests. The component must be present in Camel registry and it must implement RestProducerFactory service provider interface. If not set CLASSPATH is searched for single component that implements RestProducerFactory SPI. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.consumes",
+      "type": "java.lang.String",
+      "description": "What payload type this component capable of consuming. Could be one type, like application\/json or multiple types as application\/json, application\/xml; q=0.5 according to the RFC7231. This equates to the value of Accept HTTP header. If set overrides any value found in the Swagger specification. Can be overridden in endpoint configuration",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest-swagger.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest-swagger component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.host",
+      "type": "java.lang.String",
+      "description": "Scheme hostname and port to direct the HTTP requests to in the form of https:\/\/hostname:port. Can be configured at the endpoint, component or in the corresponding REST configuration in the Camel Context. If you give this component a name (e.g. petstore) that REST configuration is consulted first, rest-swagger next, and global configuration last. If set overrides any value found in the Swagger specification, RestConfiguration. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest-swagger.produces",
+      "type": "java.lang.String",
+      "description": "What payload type this component is producing. For example application\/json according to the RFC7231. This equates to the value of Content-Type HTTP header. If set overrides any value present in the Swagger specification. Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.specification-uri",
+      "type": "java.net.URI",
+      "description": "Path to the Swagger specification file. The scheme, host base path are taken from this specification, but these can be overridden with properties on the component or endpoint level. If not given the component tries to load swagger.json resource. Note that the host defined on the component and endpoint of this Component should contain the scheme, hostname and optionally the port in the URI syntax (i.e. https:\/\/api.example.com:8080). Can be overridden in endpoint configuration.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "Customize TLS parameters used by the component. If not set defaults to the TLS parameters set in the Camel context. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-swagger.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.rest.swagger.springboot.RestSwaggerComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/rest.json b/docs/components/modules/spring-boot/examples/json/rest.json
new file mode 100644
index 0000000..cdb9fb4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/rest.json
@@ -0,0 +1,118 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rest",
+      "type": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-api",
+      "type": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest-api.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.rest.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rest-api.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest-api.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest-api.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest-api.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest-api component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestApiComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.api-doc",
+      "type": "java.lang.String",
+      "description": "The swagger api doc resource to use. The resource is loaded from classpath by default and must be in JSON format.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rest.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest.consumer-component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for (consumer) the REST transport, such as jetty, servlet, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestConsumerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rest.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rest component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.host",
+      "type": "java.lang.String",
+      "description": "Host and port of HTTP service to use (override host in swagger schema)",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rest.producer-component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rest.component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for (producer) the REST transport, such as http, undertow. If no component has been explicit configured, then Camel will lookup if there is a Camel component that integrates with the Rest DSL, or if a org.apache.camel.spi.RestProducerFactory is registered in the registry. If either one is found, then that is being used.",
+      "sourceType": "org.apache.camel.component.rest.springboot.RestComponentConfiguration",
+      "deprecated": true,
+      "deprecation": {}
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/resteasy.json b/docs/components/modules/spring-boot/examples/json/resteasy.json
new file mode 100644
index 0000000..ff20fa1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/resteasy.json
@@ -0,0 +1,146 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.resteasy",
+      "type": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.resteasy.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.auth-caching-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables authentication scheme caching",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.automatic-retries-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic request recovery and re-execution",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.resteasy.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.connection-state-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables connection state tracking",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.content-compression-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic content decompression",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.cookie-management-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables state (cookie) management",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.copy-headers",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true then IN exchange headers will be copied to OUT exchange headers according to copy strategy. Setting this to false, allows to only include the headers from the HTTP response (not propagating IN headers).",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.resteasy.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.resteasy.default-user-agent-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables the default user agent set by this builder if none has been provided by the user",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the resteasy component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.proxy-consumers-classes",
+      "type": "java.lang.String",
+      "description": "Proxy classes for consumer endpoints. Multiple classes can be separated by comma.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration"
+    },
+    {
+      "name": "camel.component.resteasy.redirect-handling-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Disables automatic redirect handling",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.response-payload-streaming-threshold",
+      "type": "java.lang.Integer",
+      "description": "This threshold in bytes controls whether the response payload should be stored in memory as a byte array or be streaming based. Set this to -1 to always use streaming mode.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.resteasy.skip-request-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the Camel headers as HTTP request headers. If there are no data from Camel headers needed to be included in the HTTP request then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.resteasy.skip-response-headers",
+      "type": "java.lang.Boolean",
+      "description": "Whether to skip mapping all the HTTP response headers to Camel headers. If there are no data needed from HTTP headers then this can avoid parsing overhead with many object allocations for the JVM garbage collector.",
+      "sourceType": "org.apache.camel.component.resteasy.springboot.ResteasyComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ribbon.json b/docs/components/modules/spring-boot/examples/json/ribbon.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ribbon.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/robotframework.json b/docs/components/modules/spring-boot/examples/json/robotframework.json
new file mode 100644
index 0000000..6550e42
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/robotframework.json
@@ -0,0 +1,348 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.robotframework",
+      "type": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.robotframework.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.argument-file",
+      "type": "java.io.File",
+      "description": "A text file to read more arguments from.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.robotframework.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.combined-tag-stats",
+      "type": "java.lang.String",
+      "description": "Creates combined statistics based on tags. Use the format tags:title List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.configuration",
+      "type": "org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration",
+      "description": "The configuration. The option is a org.apache.camel.component.robotframework.RobotFrameworkCamelConfiguration type.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.critical-tags",
+      "type": "java.lang.String",
+      "description": "Tests that have the given tags are considered critical. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.robotframework.debug-file",
+      "type": "java.io.File",
+      "description": "A debug file that is written during execution.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.document",
+      "type": "java.lang.String",
+      "description": "Sets the documentation of the top-level tests suites.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.dryrun",
+      "type": "java.lang.Boolean",
+      "description": "Sets dryrun mode on use. In the dry run mode tests are run without executing keywords originating from test libraries. Useful for validating test data syntax.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the robotframework component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.excludes",
+      "type": "java.lang.String",
+      "description": "Selects the tests cases by tags. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.exit-on-failure",
+      "type": "java.lang.Boolean",
+      "description": "Sets robot to stop execution immediately if a critical test fails.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.includes",
+      "type": "java.lang.String",
+      "description": "Selects the tests cases by tags. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.listener",
+      "type": "java.lang.String",
+      "description": "Sets a single listener for monitoring tests execution",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.listeners",
+      "type": "java.lang.String",
+      "description": "Sets multiple listeners for monitoring tests execution. Use the format ListenerWithArgs:arg1:arg2 or simply ListenerWithoutArgs List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.log",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated log file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.log-level",
+      "type": "java.lang.String",
+      "description": "Sets the threshold level for logging.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.log-title",
+      "type": "java.lang.String",
+      "description": "Sets a title for the generated tests log.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.metadata",
+      "type": "java.lang.String",
+      "description": "Sets free metadata for the top level tests suites. comma seperated list of string resulting as List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.monitor-colors",
+      "type": "java.lang.String",
+      "description": "Using ANSI colors in console. Normally colors work in unixes but not in Windows. Default is 'on'. 'on' - use colors in unixes but not in Windows 'off' - never use colors 'force' - always use colors (also in Windows)",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.monitor-width",
+      "type": "java.lang.String",
+      "description": "Width of the monitor output. Default is 78.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": "78"
+    },
+    {
+      "name": "camel.component.robotframework.name",
+      "type": "java.lang.String",
+      "description": "Sets the name of the top-level tests suites.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.no-status-return-code",
+      "type": "java.lang.Boolean",
+      "description": "If true, sets the return code to zero regardless of failures in test cases. Error codes are returned normally.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.non-critical-tags",
+      "type": "java.lang.String",
+      "description": "Tests that have the given tags are not critical. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.output",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated output file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.output-directory",
+      "type": "java.io.File",
+      "description": "Configures where generated reports are to be placed.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.randomize",
+      "type": "java.lang.String",
+      "description": "Sets the test execution order to be randomized. Valid values are all, suite, and test",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.report",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated report file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.report-background",
+      "type": "java.lang.String",
+      "description": "Sets background colors for the generated report and summary.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.report-title",
+      "type": "java.lang.String",
+      "description": "Sets a title for the generated tests report.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.run-empty-suite",
+      "type": "java.lang.Boolean",
+      "description": "Executes tests also if the top level test suite is empty. Useful e.g. with --include\/--exclude when it is not an error that no test matches the condition.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.run-failed",
+      "type": "java.io.File",
+      "description": "Re-run failed tests, based on output.xml file.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.run-mode",
+      "type": "java.lang.String",
+      "description": "Sets the execution mode for this tests run. Note that this setting has been deprecated in Robot Framework 2.8. Use separate dryryn, skipTeardownOnExit, exitOnFailure, and randomize settings instead.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.skip-teardown-on-exit",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the teardowns are skipped if the test execution is prematurely stopped.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.split-outputs",
+      "type": "java.lang.String",
+      "description": "Splits output and log files.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.suite-stat-level",
+      "type": "java.lang.String",
+      "description": "Defines how many levels to show in the Statistics by Suite table in outputs.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.suites",
+      "type": "java.lang.String",
+      "description": "Selects the tests suites by name. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.summary-title",
+      "type": "java.lang.String",
+      "description": "Sets a title for the generated summary report.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-docs",
+      "type": "java.lang.String",
+      "description": "Adds documentation to the specified tags. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-stat-excludes",
+      "type": "java.lang.String",
+      "description": "Excludes these tags from the Statistics by Tag and Test Details by Tag tables in outputs. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-stat-includes",
+      "type": "java.lang.String",
+      "description": "Includes only these tags in the Statistics by Tag and Test Details by Tag tables in outputs. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tag-stat-links",
+      "type": "java.lang.String",
+      "description": "Adds external links to the Statistics by Tag table in outputs. Use the format pattern:link:title List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tags",
+      "type": "java.lang.String",
+      "description": "Sets the tags(s) to all executed tests cases. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.tests",
+      "type": "java.lang.String",
+      "description": "Selects the tests cases by name. List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.timestamp-outputs",
+      "type": "java.lang.Boolean",
+      "description": "Adds a timestamp to all output files.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.variable-files",
+      "type": "java.lang.String",
+      "description": "Sets variables using variables files. Use the format path:args List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.variables",
+      "type": "java.lang.String",
+      "description": "Sets individual variables. Use the format name:value List",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.robotframework.warn-on-skipped-files",
+      "type": "java.lang.Boolean",
+      "description": "Show a warning when an invalid file is skipped.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.robotframework.xunit-file",
+      "type": "java.io.File",
+      "description": "Sets the path to the generated XUnit compatible result file, relative to outputDirectory. The file is in xml format. By default, the file name is derived from the testCasesDirectory parameter, replacing blanks in the directory name by underscores.",
+      "sourceType": "org.apache.camel.component.robotframework.springboot.RobotFrameworkComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/rss.json b/docs/components/modules/spring-boot/examples/json/rss.json
new file mode 100644
index 0000000..6469f6b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/rss.json
@@ -0,0 +1,65 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.rss",
+      "type": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration"
+    },
+    {
+      "name": "camel.component.rss.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.rss",
+      "type": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.rss.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.rss.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.rss.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.rss.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.rss.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rss component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.rss.springboot.RssComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.rss.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.rss.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the rss data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.rss.springboot.RssDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/rxjava.json b/docs/components/modules/spring-boot/examples/json/rxjava.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/rxjava.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/saga.json b/docs/components/modules/spring-boot/examples/json/saga.json
new file mode 100644
index 0000000..a3a814b
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/saga.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.saga",
+      "type": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.saga.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.saga.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.saga.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.saga.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the saga component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.saga.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.saga.springboot.SagaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/salesforce.json b/docs/components/modules/spring-boot/examples/json/salesforce.json
new file mode 100644
index 0000000..060d6d2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/salesforce.json
@@ -0,0 +1,572 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.salesforce",
+      "type": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.salesforce.all-or-none",
+      "type": "java.lang.Boolean",
+      "description": "Composite API option to indicate to rollback all records if any are not successful.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.apex-method",
+      "type": "java.lang.String",
+      "description": "APEX method name",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.apex-query-params",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Query params for APEX method",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.apex-url",
+      "type": "java.lang.String",
+      "description": "APEX method URL",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.api-version",
+      "type": "java.lang.String",
+      "description": "Salesforce API version.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": "50.0"
+    },
+    {
+      "name": "camel.component.salesforce.authentication-type",
+      "type": "org.apache.camel.component.salesforce.AuthenticationType",
+      "description": "Explicit authentication method to be used, one of USERNAME_PASSWORD, REFRESH_TOKEN or JWT. Salesforce component can auto-determine the authentication method to use from the properties set, set this property to eliminate any ambiguity.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.salesforce.backoff-increment",
+      "type": "java.lang.Long",
+      "description": "Backoff interval increment for Streaming connection restart attempts for failures beyond CometD auto-reconnect. The option is a long type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.salesforce.batch-id",
+      "type": "java.lang.String",
+      "description": "Bulk API Batch ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.client-id",
+      "type": "java.lang.String",
+      "description": "OAuth Consumer Key of the connected app configured in the Salesforce instance setup. Typically a connected app needs to be configured but one can be provided by installing a package.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.client-secret",
+      "type": "java.lang.String",
+      "description": "OAuth Consumer Secret of the connected app configured in the Salesforce instance setup.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.composite-method",
+      "type": "java.lang.String",
+      "description": "Composite (raw) method.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.config",
+      "type": "org.apache.camel.component.salesforce.SalesforceEndpointConfig",
+      "description": "Global endpoint configuration - use to set values that are common to all endpoints. The option is a org.apache.camel.component.salesforce.SalesforceEndpointConfig type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.content-type",
+      "type": "org.apache.camel.component.salesforce.api.dto.bulk.ContentType",
+      "description": "Bulk API content type, one of XML, CSV, ZIP_XML, ZIP_CSV",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.salesforce.default-replay-id",
+      "type": "java.lang.Long",
+      "description": "Default replayId setting if no value is found in initialReplayIdMap",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.salesforce.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the salesforce component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.format",
+      "type": "org.apache.camel.component.salesforce.internal.PayloadFormat",
+      "description": "Payload format to use for Salesforce API calls, either JSON or XML, defaults to JSON. As of Camel 3.12, this option only applies to the Raw operation.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-client",
+      "type": "org.apache.camel.component.salesforce.SalesforceHttpClient",
+      "description": "Custom Jetty Http Client to use to connect to Salesforce. The option is a org.apache.camel.component.salesforce.SalesforceHttpClient type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-client-connection-timeout",
+      "type": "java.lang.Long",
+      "description": "Connection timeout used by the HttpClient when connecting to the Salesforce server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.salesforce.http-client-idle-timeout",
+      "type": "java.lang.Long",
+      "description": "Timeout used by the HttpClient when waiting for response from the Salesforce server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.salesforce.http-client-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-max-content-length",
+      "type": "java.lang.Integer",
+      "description": "Max content length of an HTTP response.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-auth-uri",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-excluded-addresses",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "A list of addresses for which HTTP proxy server should not be used.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "Hostname of the HTTP proxy server to use.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-included-addresses",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "A list of addresses for which HTTP proxy server should be used.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "Password to use to authenticate against the HTTP proxy server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "Port number of the HTTP proxy server to use.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-realm",
+      "type": "java.lang.String",
+      "description": "Realm of the proxy server, used in preemptive Basic\/Digest authentication methods against the HTTP proxy server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-secure",
+      "type": "java.lang.Boolean",
+      "description": "If set to false disables the use of TLS when accessing the HTTP proxy.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-socks4",
+      "type": "java.lang.Boolean",
+      "description": "If set to true the configures the HTTP proxy to use as a SOCKS4 proxy.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-use-digest-auth",
+      "type": "java.lang.Boolean",
+      "description": "If set to true Digest authentication will be used when authenticating to the HTTP proxy, otherwise Basic authorization method will be used",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.http-proxy-username",
+      "type": "java.lang.String",
+      "description": "Username to use to authenticate against the HTTP proxy server.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.http-request-buffer-size",
+      "type": "java.lang.Integer",
+      "description": "HTTP request buffer size. May need to be increased for large SOQL queries.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 8192
+    },
+    {
+      "name": "camel.component.salesforce.include-details",
+      "type": "java.lang.Boolean",
+      "description": "Include details in Salesforce1 Analytics report, defaults to false.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.initial-replay-id-map",
+      "type": "java.util.Map<java.lang.String,java.lang.Long>",
+      "description": "Replay IDs to start from per channel name.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.instance-id",
+      "type": "java.lang.String",
+      "description": "Salesforce1 Analytics report execution instance ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.instance-url",
+      "type": "java.lang.String",
+      "description": "URL of the Salesforce instance used after authentication, by default received from Salesforce on successful authentication",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.job-id",
+      "type": "java.lang.String",
+      "description": "Bulk API Job ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.jwt-audience",
+      "type": "java.lang.String",
+      "description": "Value to use for the Audience claim (aud) when using OAuth JWT flow. If not set, the login URL will be used, which is appropriate in most cases.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.keystore",
+      "type": "org.apache.camel.support.jsse.KeyStoreParameters",
+      "description": "KeyStore parameters to use in OAuth JWT flow. The KeyStore should contain only one entry with private key and certificate. Salesforce does not verify the certificate chain, so this can easily be a selfsigned certificate. Make sure that you upload the certificate to the corresponding connected app. The option is a org.apache.camel.support.jsse.KeyStoreParameters type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.lazy-login",
+      "type": "java.lang.Boolean",
+      "description": "If set to true prevents the component from authenticating to Salesforce with the start of the component. You would generally set this to the (default) false and authenticate early and be immediately aware of any authentication issues.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.limit",
+      "type": "java.lang.Integer",
+      "description": "Limit on number of returned records. Applicable to some of the API, check the Salesforce documentation.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.login-config",
+      "type": "org.apache.camel.component.salesforce.SalesforceLoginConfig",
+      "description": "All authentication configuration in one nested bean, all properties set there can be set directly on the component as well. The option is a org.apache.camel.component.salesforce.SalesforceLoginConfig type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.login-url",
+      "type": "java.lang.String",
+      "description": "URL of the Salesforce instance used for authentication, by default set to https:\/\/login.salesforce.com",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": "https:\/\/login.salesforce.com"
+    },
+    {
+      "name": "camel.component.salesforce.long-polling-transport-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Used to set any properties that can be configured on the LongPollingTransport used by the BayeuxClient (CometD) used by the streaming api",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.max-backoff",
+      "type": "java.lang.Long",
+      "description": "Maximum backoff interval for Streaming connection restart attempts for failures beyond CometD auto-reconnect. The option is a long type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.salesforce.not-found-behaviour",
+      "type": "org.apache.camel.component.salesforce.NotFoundBehaviour",
+      "description": "Sets the behaviour of 404 not found status received from Salesforce API. Should the body be set to NULL NotFoundBehaviour#NULL or should a exception be signaled on the exchange NotFoundBehaviour#EXCEPTION - the default.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-fields",
+      "type": "org.apache.camel.component.salesforce.internal.dto.NotifyForFieldsEnum",
+      "description": "Notify for fields, options are ALL, REFERENCED, SELECT, WHERE",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-create",
+      "type": "java.lang.Boolean",
+      "description": "Notify for create operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-delete",
+      "type": "java.lang.Boolean",
+      "description": "Notify for delete operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-undelete",
+      "type": "java.lang.Boolean",
+      "description": "Notify for un-delete operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operation-update",
+      "type": "java.lang.Boolean",
+      "description": "Notify for update operation, defaults to false (API version = 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.notify-for-operations",
+      "type": "org.apache.camel.component.salesforce.internal.dto.NotifyForOperationsEnum",
+      "description": "Notify for operations, options are ALL, CREATE, EXTENDED, UPDATE (API version 29.0)",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.object-mapper",
+      "type": "com.fasterxml.jackson.databind.ObjectMapper",
+      "description": "Custom Jackson ObjectMapper to use when serializing\/deserializing Salesforce objects. The option is a com.fasterxml.jackson.databind.ObjectMapper type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.packages",
+      "type": "java.lang.String",
+      "description": "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. Multiple packages can be separated by comma.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.password",
+      "type": "java.lang.String",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking",
+      "type": "java.lang.Boolean",
+      "description": "Use PK Chunking. Only for use in original Bulk API. Bulk 2.0 API performs PK chunking automatically, if necessary.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking-chunk-size",
+      "type": "java.lang.Integer",
+      "description": "Chunk size for use with PK Chunking. If unspecified, salesforce default is 100,000. Maximum size is 250,000.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking-parent",
+      "type": "java.lang.String",
+      "description": "Specifies the parent object when you're enabling PK chunking for queries on sharing objects. The chunks are based on the parent object's records rather than the sharing object's records. For example, when querying on AccountShare, specify Account as the parent object. PK chunking is supported for sharing objects as long as the parent object is supported.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.pk-chunking-start-row",
+      "type": "java.lang.String",
+      "description": "Specifies the 15-character or 18-character record ID to be used as the lower boundary for the first chunk. Use this parameter to specify a starting ID when restarting a job that failed between batches.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.query-locator",
+      "type": "java.lang.String",
+      "description": "Query Locator provided by salesforce for use when a query results in more records than can be retrieved in a single call. Use this value in a subsequent call to retrieve additional records.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-http-headers",
+      "type": "java.lang.String",
+      "description": "Comma separated list of message headers to include as HTTP parameters for Raw operation.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-method",
+      "type": "java.lang.String",
+      "description": "HTTP method to use for the Raw operation",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-path",
+      "type": "java.lang.String",
+      "description": "The portion of the endpoint URL after the domain name. E.g., '\/services\/data\/v52.0\/sobjects\/Account\/'",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.raw-payload",
+      "type": "java.lang.Boolean",
+      "description": "Use raw payload String for request and response (either JSON or XML depending on format), instead of DTOs, false by default",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.raw-query-parameters",
+      "type": "java.lang.String",
+      "description": "Comma separated list of message headers to include as query parameters for Raw operation. Do not url-encode values as this will be done automatically.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.refresh-token",
+      "type": "java.lang.String",
+      "description": "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 hosting the callback web application at localhost.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.report-id",
+      "type": "java.lang.String",
+      "description": "Salesforce1 Analytics report Id",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.report-metadata",
+      "type": "org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportMetadata",
+      "description": "Salesforce1 Analytics report metadata for filtering. The option is a org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportMetadata type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.result-id",
+      "type": "java.lang.String",
+      "description": "Bulk API Result ID",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-blob-field-name",
+      "type": "java.lang.String",
+      "description": "SObject blob field name",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-class",
+      "type": "java.lang.String",
+      "description": "Fully qualified SObject class name, usually generated using camel-salesforce-maven-plugin",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-fields",
+      "type": "java.lang.String",
+      "description": "SObject fields to retrieve",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-id",
+      "type": "java.lang.String",
+      "description": "SObject ID if required by API",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-id-name",
+      "type": "java.lang.String",
+      "description": "SObject external ID field name",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-id-value",
+      "type": "java.lang.String",
+      "description": "SObject external ID field value",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-name",
+      "type": "java.lang.String",
+      "description": "SObject name if required or supported by API",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-query",
+      "type": "java.lang.String",
+      "description": "Salesforce SOQL query string",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.s-object-search",
+      "type": "java.lang.String",
+      "description": "Salesforce SOSL search string",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "SSL parameters to use, see SSLContextParameters class for all available options. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.update-topic",
+      "type": "java.lang.Boolean",
+      "description": "Whether to update an existing Push Topic when using the Streaming API, defaults to false",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.salesforce.user-name",
+      "type": "java.lang.String",
+      "description": "Username 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.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.salesforce.worker-pool-max-size",
+      "type": "java.lang.Integer",
+      "description": "Maximum size of the thread pool used to handle HTTP responses.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 20
+    },
+    {
+      "name": "camel.component.salesforce.worker-pool-size",
+      "type": "java.lang.Integer",
+      "description": "Size of the thread pool used to handle HTTP responses.",
+      "sourceType": "org.apache.camel.component.salesforce.springboot.SalesforceComponentConfiguration",
+      "defaultValue": 10
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/sap-netweaver.json b/docs/components/modules/spring-boot/examples/json/sap-netweaver.json
new file mode 100644
index 0000000..ddb2323
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/sap-netweaver.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sap-netweaver",
+      "type": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sap-netweaver.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sap-netweaver.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sap-netweaver.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sap-netweaver.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sap-netweaver component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sap-netweaver.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sap.netweaver.springboot.NetWeaverComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/saxon.json b/docs/components/modules/spring-boot/examples/json/saxon.json
new file mode 100644
index 0000000..4431b56
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/saxon.json
@@ -0,0 +1,109 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xquery",
+      "type": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.xquery",
+      "type": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xquery.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xquery.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xquery.configuration",
+      "type": "net.sf.saxon.Configuration",
+      "description": "To use a custom Saxon configuration. The option is a net.sf.saxon.Configuration type.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "To set custom Saxon configuration properties",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xquery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xquery component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xquery.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xquery.module-u-r-i-resolver",
+      "type": "net.sf.saxon.lib.ModuleURIResolver",
+      "description": "To use the custom ModuleURIResolver. The option is a net.sf.saxon.lib.ModuleURIResolver type.",
+      "sourceType": "org.apache.camel.component.xquery.springboot.XQueryComponentConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.configuration-ref",
+      "type": "java.lang.String",
+      "description": "Reference to a saxon configuration instance in the registry to use for xquery (requires camel-saxon). This may be needed to add custom functions to a saxon configuration, so these custom functions can be used in xquery expressions.",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.xquery.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xquery language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xquery.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.xquery.type",
+      "type": "java.lang.String",
+      "description": "Sets the class name of the result type (type from output) The default result type is NodeSet",
+      "sourceType": "org.apache.camel.language.xquery.springboot.XQueryLanguageConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/scheduler.json b/docs/components/modules/spring-boot/examples/json/scheduler.json
new file mode 100644
index 0000000..8c691d5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/scheduler.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.scheduler",
+      "type": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scheduler.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.scheduler.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.scheduler.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.scheduler.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.scheduler.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the scheduler component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.scheduler.pool-size",
+      "type": "java.lang.Integer",
+      "description": "Number of core threads in the thread pool used by the scheduling thread pool. Is by default using a single thread",
+      "sourceType": "org.apache.camel.component.scheduler.springboot.SchedulerComponentConfiguration",
+      "defaultValue": 1
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/schematron.json b/docs/components/modules/spring-boot/examples/json/schematron.json
new file mode 100644
index 0000000..0f79ad9
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/schematron.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.schematron",
+      "type": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.schematron.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.schematron.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.schematron.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.schematron.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the schematron component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration"
+    },
+    {
+      "name": "camel.component.schematron.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.schematron.springboot.SchematronComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/seda.json b/docs/components/modules/spring-boot/examples/json/seda.json
new file mode 100644
index 0000000..16a3a21
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/seda.json
@@ -0,0 +1,90 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.seda",
+      "type": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.seda.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.seda.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Sets the default number of concurrent threads processing exchanges.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.seda.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.seda.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.default-discard-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will be discarded. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will give up sending and continue, meaning that the message was not sent to the SEDA queue.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.default-offer-timeout",
+      "type": "java.lang.Long",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, where a configured timeout can be added to the block case. Utilizing the .offer(timeout) method of the underlining java queue",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.default-queue-factory",
+      "type": "org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange>",
+      "description": "Sets the default queue factory. The option is a org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange> type.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the seda component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.seda.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.seda.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum capacity of the SEDA queue (i.e., the number of messages it can hold).",
+      "sourceType": "org.apache.camel.component.seda.springboot.SedaComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/service.json b/docs/components/modules/spring-boot/examples/json/service.json
new file mode 100644
index 0000000..7514f04
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/service.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.service",
+      "type": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.service.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.service.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.service.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.service.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.service.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the service component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.service.service",
+      "type": "org.apache.camel.cloud.ServiceRegistry",
+      "description": "Inject the service to use. The option is a org.apache.camel.cloud.ServiceRegistry type.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.service.service-selector",
+      "type": "org.apache.camel.cloud.ServiceRegistry$Selector",
+      "description": "Inject the service selector used to lookup the ServiceRegistry to use. The option is a org.apache.camel.cloud.ServiceRegistry.Selector type.",
+      "sourceType": "org.apache.camel.component.service.springboot.ServiceComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/servicenow.json b/docs/components/modules/spring-boot/examples/json/servicenow.json
new file mode 100644
index 0000000..4170974
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/servicenow.json
@@ -0,0 +1,327 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.servicenow",
+      "type": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.servicenow.api-url",
+      "type": "java.lang.String",
+      "description": "The ServiceNow REST API url",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.api-version",
+      "type": "java.lang.String",
+      "description": "The ServiceNow REST API version, default latest",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.servicenow.configuration",
+      "type": "org.apache.camel.component.servicenow.ServiceNowConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.servicenow.ServiceNowConfiguration type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.servicenow.date-format",
+      "type": "java.lang.String",
+      "description": "The date format used for Json serialization\/deserialization",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "yyyy-MM-dd"
+    },
+    {
+      "name": "camel.component.servicenow.date-time-format",
+      "type": "java.lang.String",
+      "description": "The date-time format used for Json serialization\/deserialization",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "yyyy-MM-dd HH:mm:ss"
+    },
+    {
+      "name": "camel.component.servicenow.display",
+      "type": "java.lang.String",
+      "description": "Set this parameter to true to return only scorecards where the indicator Display field is selected. Set this parameter to all to return scorecards with any Display field value. This parameter is true by default.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "true"
+    },
+    {
+      "name": "camel.component.servicenow.display-value",
+      "type": "java.lang.String",
+      "description": "Return the display value (true), actual value (false), or both (all) for reference fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "false"
+    },
+    {
+      "name": "camel.component.servicenow.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the servicenow component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.exclude-reference-link",
+      "type": "java.lang.Boolean",
+      "description": "True to exclude Table API links for reference fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.favorites",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return only scorecards that are favorites of the querying user.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.http-client-policy",
+      "type": "org.apache.cxf.transports.http.configuration.HTTPClientPolicy",
+      "description": "To configure http-client. The option is a org.apache.cxf.transports.http.configuration.HTTPClientPolicy type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-aggregates",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to always return all available aggregates for an indicator, including when an aggregate has already been applied. If a value is not specified, this parameter defaults to false and returns no aggregates.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-available-aggregates",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all available aggregates for an indicator when no aggregate has been applied. If a value is not specified, this parameter defaults to false and returns no aggregates.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-available-breakdowns",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all available breakdowns for an indicator. If a value is not specified, this parameter defaults to false and returns no breakdowns.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-score-notes",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all notes associated with the score. The note element contains the note text as well as the author and timestamp when the note was added.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.include-scores",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return all scores for a scorecard. If a value is not specified, this parameter defaults to false and returns only the most recent score value.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.input-display-value",
+      "type": "java.lang.Boolean",
+      "description": "True to set raw value of input fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.instance-name",
+      "type": "java.lang.String",
+      "description": "The ServiceNow instance name",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.key",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return only scorecards for key indicators.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servicenow.mapper",
+      "type": "com.fasterxml.jackson.databind.ObjectMapper",
+      "description": "Sets Jackson's ObjectMapper to use for request\/reply. The option is a com.fasterxml.jackson.databind.ObjectMapper type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.models",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Defines both request and response models",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.oauth-client-id",
+      "type": "java.lang.String",
+      "description": "OAuth2 ClientID",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.oauth-client-secret",
+      "type": "java.lang.String",
+      "description": "OAuth2 ClientSecret",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.oauth-token-url",
+      "type": "java.lang.String",
+      "description": "OAuth token Url",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.password",
+      "type": "java.lang.String",
+      "description": "ServiceNow account password, MUST be provided",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.per-page",
+      "type": "java.lang.Integer",
+      "description": "Enter the maximum number of scorecards each query can return. By default this value is 10, and the maximum is 100.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": 10
+    },
+    {
+      "name": "camel.component.servicenow.proxy-authorization-policy",
+      "type": "org.apache.cxf.configuration.security.ProxyAuthorizationPolicy",
+      "description": "To configure proxy authentication. The option is a org.apache.cxf.configuration.security.ProxyAuthorizationPolicy type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-host",
+      "type": "java.lang.String",
+      "description": "The proxy host name",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-password",
+      "type": "java.lang.String",
+      "description": "Password for proxy authentication",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The proxy port number",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.proxy-user-name",
+      "type": "java.lang.String",
+      "description": "Username for proxy authentication",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.release",
+      "type": "org.apache.camel.component.servicenow.ServiceNowRelease",
+      "description": "The ServiceNow release to target, default to Helsinki See https:\/\/docs.servicenow.com",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.request-models",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Defines the request model",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.resource",
+      "type": "java.lang.String",
+      "description": "The default resource, can be overridden by header CamelServiceNowResource",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.response-models",
+      "type": "java.util.Map<java.lang.String,java.lang.Class<java.lang.Object>>",
+      "description": "Defines the response model",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.retrieve-target-record-on-import",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to retrieve the target record when using import set api. The import set result is then replaced by the target record",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servicenow.sort-by",
+      "type": "java.lang.String",
+      "description": "Specify the value to use when sorting results. By default, queries sort records by value.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.sort-dir",
+      "type": "java.lang.String",
+      "description": "Specify the sort direction, ascending or descending. By default, queries sort records in descending order. Use sysparm_sortdir=asc to sort in ascending order.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. See http:\/\/camel.apache.org\/camel-configuration-utilities.html. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.suppress-auto-sys-field",
+      "type": "java.lang.Boolean",
+      "description": "True to suppress auto generation of system fields (default: false)",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.suppress-pagination-header",
+      "type": "java.lang.Boolean",
+      "description": "Set this value to true to remove the Link header from the response. The Link header allows you to request additional pages of data when the number of records matching your query exceeds the query limit",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.table",
+      "type": "java.lang.String",
+      "description": "The default table, can be overridden by header CamelServiceNowTable",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.target",
+      "type": "java.lang.Boolean",
+      "description": "Set this parameter to true to return only scorecards that have a target.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.time-format",
+      "type": "java.lang.String",
+      "description": "The time format used for Json serialization\/deserialization",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": "HH:mm:ss"
+    },
+    {
+      "name": "camel.component.servicenow.top-level-only",
+      "type": "java.lang.Boolean",
+      "description": "Gets only those categories whose parent is a catalog.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servicenow.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servicenow.user-name",
+      "type": "java.lang.String",
+      "description": "ServiceNow user account name, MUST be provided",
+      "sourceType": "org.apache.camel.component.servicenow.springboot.ServiceNowComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/servlet.json b/docs/components/modules/spring-boot/examples/json/servlet.json
new file mode 100644
index 0000000..89bc997
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/servlet.json
@@ -0,0 +1,120 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.servlet",
+      "type": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.servlet.mapping",
+      "type": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.servlet.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request uses context-type=application\/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servlet.attachment-multipart-binding",
+      "type": "java.lang.Boolean",
+      "description": "Whether to automatic bind multipart\/form-data as attachments on the Camel Exchange. The options attachmentMultipartBinding=true and disableStreamCache=false cannot work together. Remove disableStreamCache to use AttachmentMultipartBinding. This is turn off by default as this may require servlet specific configuration to enable this when using Servlet's.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servlet.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.servlet.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.servlet.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.servlet.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the servlet component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.file-name-ext-whitelist",
+      "type": "java.lang.String",
+      "description": "Whitelist of accepted filename extensions for accepting uploaded files. Multiple extensions can be separated by comma, such as txt,xml.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.http-binding",
+      "type": "org.apache.camel.http.common.HttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.http-configuration",
+      "type": "org.apache.camel.http.common.HttpConfiguration",
+      "description": "To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.http-registry",
+      "type": "org.apache.camel.http.common.HttpRegistry",
+      "description": "To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.http.common.HttpRegistry type.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration"
+    },
+    {
+      "name": "camel.component.servlet.servlet-name",
+      "type": "java.lang.String",
+      "description": "Default name of servlet to use. The default name is CamelServlet.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletComponentConfiguration",
+      "defaultValue": "CamelServlet"
+    },
+    {
+      "name": "camel.servlet.mapping.context-path",
+      "type": "java.lang.String",
+      "description": "Context path used by the servlet component for automatic mapping.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "defaultValue": "\/camel\/*"
+    },
+    {
+      "name": "camel.servlet.mapping.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Enables the automatic mapping of the servlet component into the Spring web context.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.servlet.mapping.servlet-name",
+      "type": "java.lang.String",
+      "description": "The name of the Camel servlet.",
+      "sourceType": "org.apache.camel.component.servlet.springboot.ServletMappingConfiguration",
+      "defaultValue": "CamelServlet"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/shiro.json b/docs/components/modules/spring-boot/examples/json/shiro.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/shiro.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/sip.json b/docs/components/modules/spring-boot/examples/json/sip.json
new file mode 100644
index 0000000..8f7f501
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/sip.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sip",
+      "type": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sip.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sip.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sip.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sip.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sip.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sip component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sip.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sip.springboot.SipComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/sjms.json b/docs/components/modules/spring-boot/examples/json/sjms.json
new file mode 100644
index 0000000..aa595a0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/sjms.json
@@ -0,0 +1,101 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sjms",
+      "type": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sjms.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sjms.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sjms.destination-creation-strategy",
+      "type": "org.apache.camel.component.sjms.jms.DestinationCreationStrategy",
+      "description": "To use a custom DestinationCreationStrategy. The option is a org.apache.camel.component.sjms.jms.DestinationCreationStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sjms component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.jms-key-format-strategy",
+      "type": "org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation. The option is a org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms.message-created-strategy",
+      "type": "org.apache.camel.component.sjms.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.sjms.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.sjms.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.sjms.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms.springboot.SjmsComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/sjms2.json b/docs/components/modules/spring-boot/examples/json/sjms2.json
new file mode 100644
index 0000000..81ddbde
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/sjms2.json
@@ -0,0 +1,101 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sjms2",
+      "type": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sjms2.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sjms2.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms2.connection-factory",
+      "type": "javax.jms.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a javax.jms.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sjms2.destination-creation-strategy",
+      "type": "org.apache.camel.component.sjms.jms.DestinationCreationStrategy",
+      "description": "To use a custom DestinationCreationStrategy. The option is a org.apache.camel.component.sjms.jms.DestinationCreationStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sjms2 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.jms-key-format-strategy",
+      "type": "org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy",
+      "description": "Pluggable strategy for encoding and decoding JMS keys so they can be compliant with the JMS specification. Camel provides one implementation out of the box: default. The default strategy will safely marshal dots and hyphens (. and -). Can be used for JMS brokers which do not care whether JMS header keys contain illegal characters. You can provide your own implementation of the org.apache.camel.component.jms.JmsKeyFormatStrategy and refer to it using the # notation. The option is a org.apache.camel.component.sjms.jms.JmsKeyFormatStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sjms2.message-created-strategy",
+      "type": "org.apache.camel.component.sjms.jms.MessageCreatedStrategy",
+      "description": "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances of javax.jms.Message objects when Camel is sending a JMS message. The option is a org.apache.camel.component.sjms.jms.MessageCreatedStrategy type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sjms2.recovery-interval",
+      "type": "java.lang.Long",
+      "description": "Specifies the interval between recovery attempts, i.e. when a connection is being refreshed, in milliseconds. The default is 5000 ms, that is, 5 seconds. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.sjms2.reply-to-on-timeout-max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Specifies the maximum number of concurrent consumers for continue routing when timeout occurred when using request\/reply over JMS.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.sjms2.request-timeout-checker-interval",
+      "type": "java.lang.Long",
+      "description": "Configures how often Camel should check for timed out Exchanges when doing request\/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.sjms2.springboot.Sjms2ComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/slack.json b/docs/components/modules/spring-boot/examples/json/slack.json
new file mode 100644
index 0000000..5804fe8
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/slack.json
@@ -0,0 +1,62 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.slack",
+      "type": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.slack.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.slack.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.slack.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.slack.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.slack.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the slack component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.slack.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.slack.token",
+      "type": "java.lang.String",
+      "description": "The token to use",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    },
+    {
+      "name": "camel.component.slack.webhook-url",
+      "type": "java.lang.String",
+      "description": "The incoming webhook URL",
+      "sourceType": "org.apache.camel.component.slack.springboot.SlackComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/smpp.json b/docs/components/modules/spring-boot/examples/json/smpp.json
new file mode 100644
index 0000000..db9e2eb
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/smpp.json
@@ -0,0 +1,293 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.smpp",
+      "type": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.smpp.address-range",
+      "type": "java.lang.String",
+      "description": "You can specify the address range for the SmppConsumer as defined in section 5.2.7 of the SMPP 3.4 specification. The SmppConsumer will receive messages only from SMSC's which target an address (MSISDN or IP address) within this range.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.alphabet",
+      "type": "java.lang.Byte",
+      "description": "Defines encoding of data according the SMPP 3.4 specification, section 5.2.19. 0: SMSC Default Alphabet 4: 8 bit Alphabet 8: UCS2 Alphabet",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.smpp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.configuration",
+      "type": "org.apache.camel.component.smpp.SmppConfiguration",
+      "description": "To use the shared SmppConfiguration as configuration. The option is a org.apache.camel.component.smpp.SmppConfiguration type.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.smpp.data-coding",
+      "type": "java.lang.Byte",
+      "description": "Defines the data coding according the SMPP 3.4 specification, section 5.2.19. Example data encodings are: 0: SMSC Default Alphabet 3: Latin 1 (ISO-8859-1) 4: Octet unspecified (8-bit binary) 8: UCS2 (ISO\/IEC-10646) 13: Extended Kanji JIS(X 0212-1990)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.dest-addr",
+      "type": "java.lang.String",
+      "description": "Defines the destination SME address. For mobile terminated messages, this is the directory number of the recipient MS. Only for SubmitSm, SubmitMulti, CancelSm and DataSm.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "1717"
+    },
+    {
+      "name": "camel.component.smpp.dest-addr-npi",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME destination address parameters. Only for SubmitSm, SubmitMulti, CancelSm and DataSm. The following NPI values are defined: 0: Unknown 1: ISDN (E163\/E164) 2: Data (X.121) 3: Telex (F.69) 6: Land Mobile (E.212) 8: National 9: Private 10: ERMES 13: Internet (IP) 18: WAP Client Id (to be defined by WAP Forum)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.dest-addr-ton",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME destination address parameters. Only for SubmitSm, SubmitMulti, CancelSm and DataSm. The following TON values are defined: 0: Unknown 1: International 2: National 3: Network Specific 4: Subscriber Number 5: Alphanumeric 6: Abbreviated",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the smpp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.encoding",
+      "type": "java.lang.String",
+      "description": "Defines the encoding scheme of the short message user data. Only for SubmitSm, ReplaceSm and SubmitMulti.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "ISO-8859-1"
+    },
+    {
+      "name": "camel.component.smpp.enquire-link-timer",
+      "type": "java.lang.Integer",
+      "description": "Defines the interval in milliseconds between the confidence checks. The confidence check is used to test the communication path between an ESME and an SMSC.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the hostname or ip address of your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "If your HTTP proxy requires basic authentication, set this attribute to the password required for your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "If you need to tunnel SMPP through a HTTP proxy, set this attribute to the port of your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 3128
+    },
+    {
+      "name": "camel.component.smpp.http-proxy-username",
+      "type": "java.lang.String",
+      "description": "If your HTTP proxy requires basic authentication, set this attribute to the username required for your HTTP proxy.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.initial-reconnect-delay",
+      "type": "java.lang.Long",
+      "description": "Defines the initial delay in milliseconds after the consumer\/producer tries to reconnect to the SMSC, after the connection was lost.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.smpp.lazy-session-creation",
+      "type": "java.lang.Boolean",
+      "description": "Sessions can be lazily created to avoid exceptions, if the SMSC is not available when the Camel producer is started. Camel will check the in message headers 'CamelSmppSystemId' and 'CamelSmppPassword' of the first exchange. If they are present, Camel will use these data to connect to the SMSC.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.max-reconnect",
+      "type": "java.lang.Integer",
+      "description": "Defines the maximum number of attempts to reconnect to the SMSC, if SMSC returns a negative bind response",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 2147483647
+    },
+    {
+      "name": "camel.component.smpp.numbering-plan-indicator",
+      "type": "java.lang.Byte",
+      "description": "Defines the numeric plan indicator (NPI) to be used in the SME. The following NPI values are defined: 0: Unknown 1: ISDN (E163\/E164) 2: Data (X.121) 3: Telex (F.69) 6: Land Mobile (E.212) 8: National 9: Private 10: ERMES 13: Internet (IP) 18: WAP Client Id (to be defined by WAP Forum)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.password",
+      "type": "java.lang.String",
+      "description": "The password for connecting to SMSC server.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.pdu-processor-degree",
+      "type": "java.lang.Integer",
+      "description": "Sets the number of threads which can read PDU and process them in parallel.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 3
+    },
+    {
+      "name": "camel.component.smpp.pdu-processor-queue-capacity",
+      "type": "java.lang.Integer",
+      "description": "Sets the capacity of the working queue for PDU processing.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.smpp.priority-flag",
+      "type": "java.lang.Byte",
+      "description": "Allows the originating SME to assign a priority level to the short message. Only for SubmitSm and SubmitMulti. Four Priority Levels are supported: 0: Level 0 (lowest) priority 1: Level 1 priority 2: Level 2 priority 3: Level 3 (highest) priority",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.protocol-id",
+      "type": "java.lang.Byte",
+      "description": "The protocol id",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.proxy-headers",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "These headers will be passed to the proxy server while establishing the connection.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.reconnect-delay",
+      "type": "java.lang.Long",
+      "description": "Defines the interval in milliseconds between the reconnect attempts, if the connection to the SMSC was lost and the previous was not succeed.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.smpp.registered-delivery",
+      "type": "java.lang.Byte",
+      "description": "Is used to request an SMSC delivery receipt and\/or SME originated acknowledgements. The following values are defined: 0: No SMSC delivery receipt requested. 1: SMSC delivery receipt requested where final delivery outcome is success or failure. 2: SMSC delivery receipt requested where the final delivery outcome is delivery failure.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.replace-if-present-flag",
+      "type": "java.lang.Byte",
+      "description": "Used to request the SMSC to replace a previously submitted message, that is still pending delivery. The SMSC will replace an existing message provided that the source address, destination address and service type match the same fields in the new message. The following replace if present flag values are defined: 0: Don't replace 1: Replace",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.service-type",
+      "type": "java.lang.String",
+      "description": "The service type parameter can be used to indicate the SMS Application service associated with the message. The following generic service_types are defined: CMT: Cellular Messaging CPT: Cellular Paging VMN: Voice Mail Notification VMA: Voice Mail Alerting WAP: Wireless Application Protocol USSD: Unstructured Supplementary Services Data",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.session-state-listener",
+      "type": "org.jsmpp.session.SessionStateListener",
+      "description": "You can refer to a org.jsmpp.session.SessionStateListener in the Registry to receive callbacks when the session state changed. The option is a org.jsmpp.session.SessionStateListener type.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.single-d-l-r",
+      "type": "java.lang.Boolean",
+      "description": "When true, the SMSC delivery receipt would be requested only for the last segment of a multi-segment (long) message. For short messages, with only 1 segment the behaviour is unchanged.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.smpp.source-addr",
+      "type": "java.lang.String",
+      "description": "Defines the address of SME (Short Message Entity) which originated this message.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "1616"
+    },
+    {
+      "name": "camel.component.smpp.source-addr-npi",
+      "type": "java.lang.Byte",
+      "description": "Defines the numeric plan indicator (NPI) to be used in the SME originator address parameters. The following NPI values are defined: 0: Unknown 1: ISDN (E163\/E164) 2: Data (X.121) 3: Telex (F.69) 6: Land Mobile (E.212) 8: National 9: Private 10: ERMES 13: Internet (IP) 18: WAP Client Id (to be defined by WAP Forum)",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.source-addr-ton",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME originator address parameters. The following TON values are defined: 0: Unknown 1: International 2: National 3: Network Specific 4: Subscriber Number 5: Alphanumeric 6: Abbreviated",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.splitting-policy",
+      "type": "org.apache.camel.component.smpp.SmppSplittingPolicy",
+      "description": "You can specify a policy for handling long messages: ALLOW - the default, long messages are split to 140 bytes per message TRUNCATE - long messages are split and only the first fragment will be sent to the SMSC. Some carriers drop subsequent fragments so this reduces load on the SMPP connection sending parts of a message that will never be delivered. REJECT - if a message would need to be split, it is rejected with an SMPP NegativeResponseException and the reason code signifying the message is too long.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.system-id",
+      "type": "java.lang.String",
+      "description": "The system id (username) for connecting to SMSC server.",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": "smppclient"
+    },
+    {
+      "name": "camel.component.smpp.system-type",
+      "type": "java.lang.String",
+      "description": "This parameter is used to categorize the type of ESME (External Short Message Entity) that is binding to the SMSC (max. 13 characters).",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.transaction-timer",
+      "type": "java.lang.Integer",
+      "description": "Defines the maximum period of inactivity allowed after a transaction, after which an SMPP entity may assume that the session is no longer active. This timer may be active on either communicating SMPP entity (i.e. SMSC or ESME).",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.smpp.type-of-number",
+      "type": "java.lang.Byte",
+      "description": "Defines the type of number (TON) to be used in the SME. The following TON values are defined: 0: Unknown 1: International 2: National 3: Network Specific 4: Subscriber Number 5: Alphanumeric 6: Abbreviated",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.smpp.using-s-s-l",
+      "type": "java.lang.Boolean",
+      "description": "Whether using SSL with the smpps protocol",
+      "sourceType": "org.apache.camel.component.smpp.springboot.SmppComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/snakeyaml.json b/docs/components/modules/spring-boot/examples/json/snakeyaml.json
new file mode 100644
index 0000000..d3ac923
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/snakeyaml.json
@@ -0,0 +1,94 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.yaml-snakeyaml",
+      "type": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.allow-any-type",
+      "type": "java.lang.Boolean",
+      "description": "Allow any class to be un-marshaled",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.allow-recursive-keys",
+      "type": "java.lang.Boolean",
+      "description": "Set whether recursive keys are allowed.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.constructor",
+      "type": "java.lang.String",
+      "description": "BaseConstructor to construct incoming documents.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.dumper-options",
+      "type": "java.lang.String",
+      "description": "DumperOptions to configure outgoing objects.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the yaml-snakeyaml data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.max-aliases-for-collections",
+      "type": "java.lang.Integer",
+      "description": "Set the maximum amount of aliases allowed for collections.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.pretty-flow",
+      "type": "java.lang.Boolean",
+      "description": "Force the emitter to produce a pretty YAML document when using the flow style.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.representer",
+      "type": "java.lang.String",
+      "description": "Representer to emit outgoing objects.",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.resolver",
+      "type": "java.lang.String",
+      "description": "Resolver to detect implicit type",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.unmarshal-type",
+      "type": "java.lang.String",
+      "description": "Class name of the java type to use when unmarshalling",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.yaml-snakeyaml.use-application-context-class-loader",
+      "type": "java.lang.Boolean",
+      "description": "Use ApplicationContextClassLoader as custom ClassLoader",
+      "sourceType": "org.apache.camel.component.snakeyaml.springboot.SnakeYAMLDataFormatConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/snmp.json b/docs/components/modules/spring-boot/examples/json/snmp.json
new file mode 100644
index 0000000..5e2765f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/snmp.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.snmp",
+      "type": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.snmp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.snmp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.snmp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.snmp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.snmp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the snmp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.snmp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.snmp.springboot.SnmpComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/soap.json b/docs/components/modules/spring-boot/examples/json/soap.json
new file mode 100644
index 0000000..b2691eb
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/soap.json
@@ -0,0 +1,66 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.soapjaxb",
+      "type": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.soapjaxb.context-path",
+      "type": "java.lang.String",
+      "description": "Package name where your JAXB classes are located.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.element-name-strategy-ref",
+      "type": "java.lang.String",
+      "description": "Refers to an element strategy to lookup from the registry. An element name strategy is used for two purposes. The first is to find a xml element name for a given object and soap action when marshaling the object into a SOAP message. The second is to find an Exception class for a given soap fault name. The following three element strategy class name is provided out of the box. QNameStrategy - Uses a fixed qName that is configured on instantiation. Exception lookup is not supported TypeNameStrategy - Uses the name and namespace from the XMLType annotation of the given type. If no namespace is set then package-info is used. Exception lookup is not supported ServiceInterfaceStrategy - Uses information from a webservice interface to determine the type name and to find the exception class for a SOAP fault All three classes is located in the package name org.apache.camel.dataformat.soap.name If you have generated the web service stub code with cxf-codegen or a similar tool then you probably will want to use the ServiceInterfaceStrategy. In the case you have no annotated service interface you should use QNameStrategy or TypeNameStrategy.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the soapjaxb data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.encoding",
+      "type": "java.lang.String",
+      "description": "To overrule and use a specific encoding",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.namespace-prefix-ref",
+      "type": "java.lang.String",
+      "description": "When marshalling using JAXB or SOAP then the JAXB implementation will automatic assign namespace prefixes, such as ns2, ns3, ns4 etc. To control this mapping, Camel allows you to refer to a map which contains the desired mapping.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.schema",
+      "type": "java.lang.String",
+      "description": "To validate against an existing schema. Your can use the prefix classpath:, file: or http: to specify how the resource should by resolved. You can separate multiple schema files by using the ',' character.",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.soapjaxb.version",
+      "type": "java.lang.String",
+      "description": "SOAP version should either be 1.1 or 1.2. Is by default 1.1",
+      "sourceType": "org.apache.camel.dataformat.soap.springboot.SoapJaxbDataFormatConfiguration",
+      "defaultValue": "1.1"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/solr.json b/docs/components/modules/spring-boot/examples/json/solr.json
new file mode 100644
index 0000000..deb1bdc
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/solr.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.solr",
+      "type": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.solr.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.solr.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.solr.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.solr.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the solr component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration"
+    },
+    {
+      "name": "camel.component.solr.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.solr.springboot.SolrComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/soroush.json b/docs/components/modules/spring-boot/examples/json/soroush.json
new file mode 100644
index 0000000..6162a18
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/soroush.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.soroush",
+      "type": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.soroush.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.soroush.authorization-token",
+      "type": "java.lang.String",
+      "description": "The default Soroush authorization token to be used when the information is not provided in the endpoints.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.soroush.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.soroush.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.soroush.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.soroush.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the soroush component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration"
+    },
+    {
+      "name": "camel.component.soroush.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.soroushbot.component.springboot.SoroushBotComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spark.json b/docs/components/modules/spring-boot/examples/json/spark.json
new file mode 100644
index 0000000..fce440e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spark.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spark",
+      "type": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spark.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spark.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spark.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spark.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spark component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spark.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spark.rdd",
+      "type": "org.apache.spark.api.java.JavaRDDLike",
+      "description": "RDD to compute against. The option is a org.apache.spark.api.java.JavaRDDLike type.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spark.rdd-callback",
+      "type": "org.apache.camel.component.spark.RddCallback",
+      "description": "Function performing action against an RDD. The option is a org.apache.camel.component.spark.RddCallback type.",
+      "sourceType": "org.apache.camel.component.spark.springboot.SparkComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/splunk.json b/docs/components/modules/spring-boot/examples/json/splunk.json
new file mode 100644
index 0000000..9961e5f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/splunk.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.splunk",
+      "type": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.splunk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.splunk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.splunk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.splunk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.splunk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the splunk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration"
+    },
+    {
+      "name": "camel.component.splunk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.splunk.splunk-configuration-factory",
+      "type": "org.apache.camel.component.splunk.SplunkConfigurationFactory",
+      "description": "To use the SplunkConfigurationFactory. The option is a org.apache.camel.component.splunk.SplunkConfigurationFactory type.",
+      "sourceType": "org.apache.camel.component.splunk.springboot.SplunkComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-batch.json b/docs/components/modules/spring-boot/examples/json/spring-batch.json
new file mode 100644
index 0000000..1096dd1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-batch.json
@@ -0,0 +1,55 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-batch",
+      "type": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-batch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-batch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-batch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-batch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.job-launcher",
+      "type": "org.springframework.batch.core.launch.JobLauncher",
+      "description": "Explicitly specifies a JobLauncher to be used. The option is a org.springframework.batch.core.launch.JobLauncher type.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.job-registry",
+      "type": "org.springframework.batch.core.configuration.JobRegistry",
+      "description": "Explicitly specifies a JobRegistry to be used. The option is a org.springframework.batch.core.configuration.JobRegistry type.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-batch.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.batch.springboot.SpringBatchComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-integration.json b/docs/components/modules/spring-boot/examples/json/spring-integration.json
new file mode 100644
index 0000000..a5d3675
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-integration.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-integration",
+      "type": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-integration.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-integration.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-integration.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-integration.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-integration.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-integration component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-integration.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.integration.springboot.SpringIntegrationComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-javaconfig.json b/docs/components/modules/spring-boot/examples/json/spring-javaconfig.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-javaconfig.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-jdbc.json b/docs/components/modules/spring-boot/examples/json/spring-jdbc.json
new file mode 100644
index 0000000..2a8ef91
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-jdbc.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-jdbc",
+      "type": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-jdbc.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-jdbc.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-jdbc.connection-strategy",
+      "type": "org.apache.camel.component.jdbc.ConnectionStrategy",
+      "description": "To use a custom strategy for working with connections. Do not use a custom strategy when using the spring-jdbc component because a special Spring ConnectionStrategy is used by default to support Spring Transactions. The option is a org.apache.camel.component.jdbc.ConnectionStrategy type.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-jdbc.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-jdbc.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-jdbc component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-jdbc.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.jdbc.springboot.SpringJdbcComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-ldap.json b/docs/components/modules/spring-boot/examples/json/spring-ldap.json
new file mode 100644
index 0000000..6bd346c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-ldap.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-ldap",
+      "type": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ldap.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-ldap.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-ldap.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-ldap.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-ldap component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ldap.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.springldap.springboot.SpringLdapComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-rabbitmq.json b/docs/components/modules/spring-boot/examples/json/spring-rabbitmq.json
new file mode 100644
index 0000000..ef300aa
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-rabbitmq.json
@@ -0,0 +1,220 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-rabbitmq",
+      "type": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-rabbitmq.allow-null-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow sending messages with no body. If this option is false and the message body is null, then an MessageConversionException is thrown.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.amqp-admin",
+      "type": "org.springframework.amqp.core.AmqpAdmin",
+      "description": "Optional AMQP Admin service to use for auto declaring elements (queues, exchanges, bindings). The option is a org.springframework.amqp.core.AmqpAdmin type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.auto-declare",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer should auto declare binding between exchange, queue and routing key when starting. Enabling this can be good for development to make it easy to standup exchanges, queues and bindings on the broker.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.auto-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether the consumer container should auto-startup.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "The number of consumers",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.connection-factory",
+      "type": "org.springframework.amqp.rabbit.connection.ConnectionFactory",
+      "description": "The connection factory to be use. A connection factory must be configured either on the component or endpoint. The option is a org.springframework.amqp.rabbit.connection.ConnectionFactory type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-exchange",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-exchange-type",
+      "type": "java.lang.String",
+      "description": "The type of the dead letter exchange",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": "direct"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-queue",
+      "type": "java.lang.String",
+      "description": "The name of the dead letter queue",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.dead-letter-routing-key",
+      "type": "java.lang.String",
+      "description": "The routing key for the dead letter exchange",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-rabbitmq component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.error-handler",
+      "type": "org.springframework.util.ErrorHandler",
+      "description": "To use a custom ErrorHandler for handling exceptions from the message listener (consumer). The option is a org.springframework.util.ErrorHandler type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.ignore-declaration-exceptions",
+      "type": "java.lang.Boolean",
+      "description": "Switch on ignore exceptions such as mismatched properties when declaring",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.listener-container-factory",
+      "type": "org.apache.camel.component.springrabbit.ListenerContainerFactory",
+      "description": "To use a custom factory for creating and configuring ListenerContainer to be used by the consumer for receiving messages. The option is a org.apache.camel.component.springrabbit.ListenerContainerFactory type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.max-concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of consumers (available only with SMLC)",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.maximum-retry-attempts",
+      "type": "java.lang.Integer",
+      "description": "How many times a Rabbitmq consumer will retry the same message if Camel failed to process the message",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.message-converter",
+      "type": "org.springframework.amqp.support.converter.MessageConverter",
+      "description": "To use a custom MessageConverter so you can be in control how to map to\/from a org.springframework.amqp.core.Message. The option is a org.springframework.amqp.support.converter.MessageConverter type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.message-listener-container-type",
+      "type": "java.lang.String",
+      "description": "The type of the MessageListenerContainer",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": "DMLC"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.message-properties-converter",
+      "type": "org.apache.camel.component.springrabbit.MessagePropertiesConverter",
+      "description": "To use a custom MessagePropertiesConverter so you can be in control how to map to\/from a org.springframework.amqp.core.MessageProperties. The option is a org.apache.camel.component.springrabbit.MessagePropertiesConverter type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.prefetch-count",
+      "type": "java.lang.Integer",
+      "description": "Tell the broker how many messages to send to each consumer in a single request. Often this can be set quite high to improve throughput.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 250
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.reject-and-dont-requeue",
+      "type": "java.lang.Boolean",
+      "description": "Whether a Rabbitmq consumer should reject the message without requeuing. This enables failed messages to be sent to a Dead Letter Exchange\/Queue, if the broker is so configured.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.reply-timeout",
+      "type": "java.lang.Long",
+      "description": "Specify the timeout in milliseconds to be used when waiting for a reply message when doing request\/reply messaging. The default value is 5 seconds. A negative value indicates an indefinite timeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.retry",
+      "type": "org.springframework.retry.interceptor.RetryOperationsInterceptor",
+      "description": "Custom retry configuration to use. If this is configured then the other settings such as maximumRetryAttempts for retry are not in use. The option is a org.springframework.retry.interceptor.RetryOperationsInterceptor type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.retry-delay",
+      "type": "java.lang.Integer",
+      "description": "Delay in msec a Rabbitmq consumer will wait before redelivering a message that Camel failed to process",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.shutdown-timeout",
+      "type": "java.lang.Long",
+      "description": "The time to wait for workers in milliseconds after the container is stopped. If any workers are active when the shutdown signal comes they will be allowed to finish processing as long as they can finish within this timeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.spring-rabbitmq.test-connection-on-startup",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether to test the connection on startup. This ensures that when Camel starts that all the JMS consumers have a valid connection to the JMS broker. If a connection cannot be granted then Camel throws an exception on startup. This ensures that Camel is not started with failed connections. The JMS producers is tested as well.",
+      "sourceType": "org.apache.camel.component.springrabbit.springboot.SpringRabbitMQComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-redis.json b/docs/components/modules/spring-boot/examples/json/spring-redis.json
new file mode 100644
index 0000000..0f58ca8
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-redis.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-redis",
+      "type": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-redis.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-redis.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-redis.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-redis.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-redis.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-redis component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-redis.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-redis.redis-template",
+      "type": "org.springframework.data.redis.core.RedisTemplate",
+      "description": "Reference to a pre-configured RedisTemplate instance to use. The option is a org.springframework.data.redis.core.RedisTemplate type.",
+      "sourceType": "org.apache.camel.component.redis.springboot.RedisComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-security.json b/docs/components/modules/spring-boot/examples/json/spring-security.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-security.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring-ws.json b/docs/components/modules/spring-boot/examples/json/spring-ws.json
new file mode 100644
index 0000000..693535d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring-ws.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-ws",
+      "type": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ws.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-ws.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-ws.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-ws.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-ws.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-ws component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-ws.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-ws.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.spring.ws.springboot.SpringWebserviceComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/spring.json b/docs/components/modules/spring-boot/examples/json/spring.json
new file mode 100644
index 0000000..7eec3ae
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/spring.json
@@ -0,0 +1,79 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.spring-event",
+      "type": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-event.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.language.spel",
+      "type": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.spel.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.spring-event.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.spring-event.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.spring-event.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.spring-event.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spring-event component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration"
+    },
+    {
+      "name": "camel.component.spring-event.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.event.springboot.EventComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.spel.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.spel.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the spel language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.spel.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.spel.springboot.SpelLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/sql.json b/docs/components/modules/spring-boot/examples/json/sql.json
new file mode 100644
index 0000000..541c00e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/sql.json
@@ -0,0 +1,93 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.sql",
+      "type": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql-stored",
+      "type": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql-stored.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.sql.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.sql-stored.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sql-stored.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sql-stored.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sql-stored component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql-stored.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sql.stored.springboot.SqlStoredComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sql.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.sql.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sql.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.sql.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the sql component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration"
+    },
+    {
+      "name": "camel.component.sql.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.sql.use-placeholder",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether to use placeholder and replace all placeholder characters with sign in the SQL queries. This option is default true",
+      "sourceType": "org.apache.camel.component.sql.springboot.SqlComponentConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/ssh.json b/docs/components/modules/spring-boot/examples/json/ssh.json
new file mode 100644
index 0000000..8431c99
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/ssh.json
@@ -0,0 +1,138 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.ssh",
+      "type": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.ssh.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.ssh.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ssh.cert-resource",
+      "type": "java.lang.String",
+      "description": "Sets the resource path of the certificate to use for Authentication. Will use ResourceHelperKeyPairProvider to resolve file based certificate, and depends on keyType setting.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.cert-resource-password",
+      "type": "java.lang.String",
+      "description": "Sets the password to use in loading certResource, if certResource is an encrypted key.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.channel-type",
+      "type": "java.lang.String",
+      "description": "Sets the channel type to pass to the Channel as part of command execution. Defaults to exec.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": "exec"
+    },
+    {
+      "name": "camel.component.ssh.configuration",
+      "type": "org.apache.camel.component.ssh.SshConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.ssh.SshConfiguration type.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.ssh.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the ssh component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.fail-on-unknown-host",
+      "type": "java.lang.Boolean",
+      "description": "Specifies whether a connection to an unknown host should fail or not. This value is only checked when the property knownHosts is set.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ssh.key-pair-provider",
+      "type": "org.apache.sshd.common.keyprovider.KeyPairProvider",
+      "description": "Sets the KeyPairProvider reference to use when connecting using Certificates to the remote SSH Server. The option is a org.apache.sshd.common.keyprovider.KeyPairProvider type.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.key-type",
+      "type": "java.lang.String",
+      "description": "Sets the key type to pass to the KeyPairProvider as part of authentication. KeyPairProvider.loadKey(...) will be passed this value. From Camel 3.0.0 \/ 2.25.0, by default Camel will select the first available KeyPair that is loaded. Prior to this, a KeyType of 'ssh-rsa' was enforced by default.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.known-hosts-resource",
+      "type": "java.lang.String",
+      "description": "Sets the resource path for a known_hosts file",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.ssh.password",
+      "type": "java.lang.String",
+      "description": "Sets the password to use in connecting to remote SSH server. Requires keyPairProvider to be set to null.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.poll-command",
+      "type": "java.lang.String",
+      "description": "Sets the command string to send to the remote SSH server during every poll cycle. Only works with camel-ssh component being used as a consumer, i.e. from(ssh:\/\/...) You may need to end your command with a newline, and that must be URL encoded %0A",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.shell-prompt",
+      "type": "java.lang.String",
+      "description": "Sets the shellPrompt to be dropped when response is read after command execution",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    },
+    {
+      "name": "camel.component.ssh.sleep-for-shell-prompt",
+      "type": "java.lang.Long",
+      "description": "Sets the sleep period in milliseconds to wait reading response from shell prompt. Defaults to 100 milliseconds.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.ssh.timeout",
+      "type": "java.lang.Long",
+      "description": "Sets the timeout in milliseconds to wait in establishing the remote SSH server connection. Defaults to 30000 milliseconds.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.ssh.username",
+      "type": "java.lang.String",
+      "description": "Sets the username to use in logging into the remote SSH server.",
+      "sourceType": "org.apache.camel.component.ssh.springboot.SshComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/stax.json b/docs/components/modules/spring-boot/examples/json/stax.json
new file mode 100644
index 0000000..828ebf4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/stax.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stax",
+      "type": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stax.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stax.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stax.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stax.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stax component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stax.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stax.springboot.StAXComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/stitch.json b/docs/components/modules/spring-boot/examples/json/stitch.json
new file mode 100644
index 0000000..9b612a2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/stitch.json
@@ -0,0 +1,91 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stitch",
+      "type": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stitch.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stitch.configuration",
+      "type": "org.apache.camel.component.stitch.StitchConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.stitch.StitchConfiguration type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.connection-provider",
+      "type": "reactor.netty.resources.ConnectionProvider",
+      "description": "ConnectionProvider contain configuration for the HttpClient like Maximum connection limit .. etc, you can inject this ConnectionProvider and the StitchClient will initialize HttpClient with this ConnectionProvider. The option is a reactor.netty.resources.ConnectionProvider type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stitch.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stitch component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.http-client",
+      "type": "reactor.netty.http.client.HttpClient",
+      "description": "Reactor Netty HttpClient, you can injected it if you want to have custom HttpClient. The option is a reactor.netty.http.client.HttpClient type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.key-names",
+      "type": "java.lang.String",
+      "description": "A collection of comma separated strings representing the Primary Key fields in the source table. Stitch use these Primary Keys to de-dupe data during loading If not provided, the table will be loaded in an append-only manner.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stitch.region",
+      "type": "org.apache.camel.component.stitch.client.StitchRegion",
+      "description": "Stitch account region, e.g: europe",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.stitch-client",
+      "type": "org.apache.camel.component.stitch.client.StitchClient",
+      "description": "Set a custom StitchClient that implements org.apache.camel.component.stitch.client.StitchClient interface. The option is a org.apache.camel.component.stitch.client.StitchClient type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.stitch-schema",
+      "type": "org.apache.camel.component.stitch.client.models.StitchSchema",
+      "description": "A schema that describes the record(s). The option is a org.apache.camel.component.stitch.client.models.StitchSchema type.",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stitch.token",
+      "type": "java.lang.String",
+      "description": "Stitch access token for the Stitch Import API",
+      "sourceType": "org.apache.camel.component.stitch.springboot.StitchComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/stomp.json b/docs/components/modules/spring-boot/examples/json/stomp.json
new file mode 100644
index 0000000..6aa2fa7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/stomp.json
@@ -0,0 +1,112 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stomp",
+      "type": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stomp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stomp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stomp.broker-url",
+      "type": "java.lang.String",
+      "description": "The URI of the Stomp broker to connect to",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": "tcp:\/\/localhost:61613"
+    },
+    {
+      "name": "camel.component.stomp.configuration",
+      "type": "org.apache.camel.component.stomp.StompConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.stomp.StompConfiguration type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.custom-headers",
+      "type": "java.util.Properties",
+      "description": "To set custom headers. The option is a java.util.Properties type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stomp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stomp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.host",
+      "type": "java.lang.String",
+      "description": "The virtual host name",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stomp.login",
+      "type": "java.lang.String",
+      "description": "The username",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.passcode",
+      "type": "java.lang.String",
+      "description": "The password",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stomp.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stomp.version",
+      "type": "java.lang.String",
+      "description": "The stomp version (1.1, or 1.2)",
+      "sourceType": "org.apache.camel.component.stomp.springboot.StompComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/stream.json b/docs/components/modules/spring-boot/examples/json/stream.json
new file mode 100644
index 0000000..7254993
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/stream.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stream",
+      "type": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stream.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stream.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stream.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stream component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stream.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stream.springboot.StreamComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/stringtemplate.json b/docs/components/modules/spring-boot/examples/json/stringtemplate.json
new file mode 100644
index 0000000..828e604
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/stringtemplate.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.string-template",
+      "type": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration"
+    },
+    {
+      "name": "camel.component.string-template.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.string-template.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.string-template.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.string-template.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.string-template.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.string-template.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the string-template component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration"
+    },
+    {
+      "name": "camel.component.string-template.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stringtemplate.springboot.StringTemplateComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/stub.json b/docs/components/modules/spring-boot/examples/json/stub.json
new file mode 100644
index 0000000..3a06f72
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/stub.json
@@ -0,0 +1,90 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.stub",
+      "type": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.stub.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.stub.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Sets the default number of concurrent threads processing exchanges.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.stub.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.stub.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.default-discard-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will be discarded. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will give up sending and continue, meaning that the message was not sent to the SEDA queue.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.default-offer-timeout",
+      "type": "java.lang.Long",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, where a configured timeout can be added to the block case. Utilizing the .offer(timeout) method of the underlining java queue",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.default-queue-factory",
+      "type": "org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange>",
+      "description": "Sets the default queue factory. The option is a org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange> type.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the stub component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration"
+    },
+    {
+      "name": "camel.component.stub.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.stub.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum capacity of the SEDA queue (i.e., the number of messages it can hold).",
+      "sourceType": "org.apache.camel.component.stub.springboot.StubComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/swagger-java.json b/docs/components/modules/spring-boot/examples/json/swagger-java.json
new file mode 100644
index 0000000..da5f5f2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/swagger-java.json
@@ -0,0 +1,3 @@
+{
+  "properties": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/syslog.json b/docs/components/modules/spring-boot/examples/json/syslog.json
new file mode 100644
index 0000000..197694f
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/syslog.json
@@ -0,0 +1,29 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.syslog",
+      "type": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration",
+      "sourceType": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.syslog.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.syslog.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.syslog.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the syslog data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.syslog.springboot.SyslogDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/tagsoup.json b/docs/components/modules/spring-boot/examples/json/tagsoup.json
new file mode 100644
index 0000000..4f4d90d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/tagsoup.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.tidymarkup",
+      "type": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.tidymarkup.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.data-object-type",
+      "type": "java.lang.String",
+      "description": "What data type to unmarshal as, can either be org.w3c.dom.Node or java.lang.String. Is by default org.w3c.dom.Node",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "defaultValue": "org.w3c.dom.Node"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tidyMarkup data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tidymarkup.omit-xml-declaration",
+      "type": "java.lang.Boolean",
+      "description": "When returning a String, do we omit the XML declaration in the top.",
+      "sourceType": "org.apache.camel.dataformat.tagsoup.springboot.TidyMarkupDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/tarfile.json b/docs/components/modules/spring-boot/examples/json/tarfile.json
new file mode 100644
index 0000000..2f0b2ea
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/tarfile.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.tarfile",
+      "type": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tarfile.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.tarfile.allow-empty-directory",
+      "type": "java.lang.Boolean",
+      "description": "If the tar file has more then one entry, setting this option to true, allows to get the iterator even if the directory is empty",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.tarfile.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.tarfile.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tarfile data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.tarfile.max-decompressed-size",
+      "type": "java.lang.Long",
+      "description": "Set the maximum decompressed size of a tar file (in bytes). The default value if not specified corresponds to 1 gigabyte. An IOException will be thrown if the decompressed size exceeds this amount. Set to -1 to disable setting a maximum decompressed size.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": 1073741824
+    },
+    {
+      "name": "camel.dataformat.tarfile.preserve-path-elements",
+      "type": "java.lang.Boolean",
+      "description": "If the file name contains path elements, setting this option to true, allows the path to be maintained in the tar file.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.tarfile.using-iterator",
+      "type": "java.lang.Boolean",
+      "description": "If the tar file has more then one entry, the setting this option to true, allows to work with the splitter EIP, to split the data using an iterator in a streaming mode.",
+      "sourceType": "org.apache.camel.dataformat.tarfile.springboot.TarFileDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/telegram.json b/docs/components/modules/spring-boot/examples/json/telegram.json
new file mode 100644
index 0000000..ef7851d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/telegram.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.telegram",
+      "type": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.telegram.authorization-token",
+      "type": "java.lang.String",
+      "description": "The default Telegram authorization token to be used when the information is not provided in the endpoints.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.telegram.base-uri",
+      "type": "java.lang.String",
+      "description": "Can be used to set an alternative base URI, e.g. when you want to test the component against a mock Telegram API",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": "https:\/\/api.telegram.org"
+    },
+    {
+      "name": "camel.component.telegram.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.telegram.client",
+      "type": "org.asynchttpclient.AsyncHttpClient",
+      "description": "To use a custom AsyncHttpClient. The option is a org.asynchttpclient.AsyncHttpClient type.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.client-config",
+      "type": "org.asynchttpclient.AsyncHttpClientConfig",
+      "description": "To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.telegram.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the telegram component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration"
+    },
+    {
+      "name": "camel.component.telegram.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.telegram.springboot.TelegramComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/thrift.json b/docs/components/modules/spring-boot/examples/json/thrift.json
new file mode 100644
index 0000000..abc7e2d
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/thrift.json
@@ -0,0 +1,99 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.thrift",
+      "type": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.thrift.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.thrift",
+      "type": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.thrift.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.thrift.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.thrift.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.thrift.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.thrift.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the thrift component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration"
+    },
+    {
+      "name": "camel.component.thrift.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.thrift.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Determine if the thrift component is using global SSL context parameters",
+      "sourceType": "org.apache.camel.component.thrift.springboot.ThriftComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.thrift.content-type-format",
+      "type": "java.lang.String",
+      "description": "Defines a content type format in which thrift message will be serialized\/deserialized from(to) the Java been. The format can either be native or json for either native binary thrift, json or simple json fields representation. The default value is binary.",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "defaultValue": "binary"
+    },
+    {
+      "name": "camel.dataformat.thrift.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.thrift.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.thrift.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the thrift data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.thrift.instance-class",
+      "type": "java.lang.String",
+      "description": "Name of class to use when unmarshalling",
+      "sourceType": "org.apache.camel.dataformat.thrift.springboot.ThriftDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/tika.json b/docs/components/modules/spring-boot/examples/json/tika.json
new file mode 100644
index 0000000..ab415f1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/tika.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.tika",
+      "type": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.tika.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.tika.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.tika.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.tika.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the tika component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.tika.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.tika.springboot.TikaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/timer.json b/docs/components/modules/spring-boot/examples/json/timer.json
new file mode 100644
index 0000000..b5318c7
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/timer.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.timer",
+      "type": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.timer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.timer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.timer.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.timer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.timer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the timer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.timer.springboot.TimerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/twilio.json b/docs/components/modules/spring-boot/examples/json/twilio.json
new file mode 100644
index 0000000..303b2cc
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/twilio.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.twilio",
+      "type": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.twilio.account-sid",
+      "type": "java.lang.String",
+      "description": "The account SID to use.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twilio.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twilio.configuration",
+      "type": "org.apache.camel.component.twilio.TwilioConfiguration",
+      "description": "To use the shared configuration. The option is a org.apache.camel.component.twilio.TwilioConfiguration type.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twilio.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twilio component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twilio.password",
+      "type": "java.lang.String",
+      "description": "Auth token for the account.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.rest-client",
+      "type": "com.twilio.http.TwilioRestClient",
+      "description": "To use the shared REST client. The option is a com.twilio.http.TwilioRestClient type.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twilio.username",
+      "type": "java.lang.String",
+      "description": "The account to use.",
+      "sourceType": "org.apache.camel.component.twilio.springboot.TwilioComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/twitter.json b/docs/components/modules/spring-boot/examples/json/twitter.json
new file mode 100644
index 0000000..08ba4ec
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/twitter.json
@@ -0,0 +1,280 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.twitter-directmessage",
+      "type": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.twitter-search",
+      "type": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.twitter-timeline",
+      "type": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.twitter-directmessage.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.access-token-secret",
+      "type": "java.lang.String",
+      "description": "The access token secret",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twitter-directmessage.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-directmessage.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twitter-directmessage component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "The http proxy host which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "The http proxy password which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The http proxy port which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "The http proxy user which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-directmessage.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twitter.directmessage.springboot.TwitterDirectMessageComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-search.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.access-token-secret",
+      "type": "java.lang.String",
+      "description": "The access token secret",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twitter-search.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-search.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twitter-search.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twitter-search component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "The http proxy host which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "The http proxy password which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The http proxy port which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "The http proxy user which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-search.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twitter.search.springboot.TwitterSearchComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-timeline.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.access-token-secret",
+      "type": "java.lang.String",
+      "description": "The access token secret",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.twitter-timeline.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.twitter-timeline.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.twitter-timeline.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the twitter-timeline component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-host",
+      "type": "java.lang.String",
+      "description": "The http proxy host which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-password",
+      "type": "java.lang.String",
+      "description": "The http proxy password which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The http proxy port which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.http-proxy-user",
+      "type": "java.lang.String",
+      "description": "The http proxy user which can be used for the camel-twitter.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration"
+    },
+    {
+      "name": "camel.component.twitter-timeline.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.twitter.timeline.springboot.TwitterTimelineComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/undertow-spring-security.json b/docs/components/modules/spring-boot/examples/json/undertow-spring-security.json
new file mode 100644
index 0000000..b798d46
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/undertow-spring-security.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.security.undertow",
+      "type": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration",
+      "sourceType": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak",
+      "type": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration",
+      "sourceType": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration",
+      "sourceMethod": "getKeycloak()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.security.undertow.keycloak",
+      "type": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration",
+      "description": "Properties defined for keycloak provider. Value is gathered together from properties with prefix \"camel.component.undertow.spring.security.keycloak\"",
+      "sourceType": "org.apache.camel.undertow.spring.boot.UndertowSpringSecurityConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.client-id",
+      "type": "java.lang.String",
+      "description": "Client id from the Keycloak server used for authentication.",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.realm-id",
+      "type": "java.lang.String",
+      "description": "Realm id from the keycloak server used for authentication.",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.url",
+      "type": "java.lang.String",
+      "description": "Url to keycloak server which will be used in spring security configuration. (Example \"http:\/\/localhost:8080\")",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration"
+    },
+    {
+      "name": "camel.security.undertow.keycloak.user-name-attribute",
+      "type": "java.lang.String",
+      "description": "Name of the attribute, which will be used as username.",
+      "sourceType": "org.apache.camel.undertow.spring.boot.providers.KeycloakProviderConfiguration",
+      "defaultValue": "preferred_username"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/undertow.json b/docs/components/modules/spring-boot/examples/json/undertow.json
new file mode 100644
index 0000000..21e2261
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/undertow.json
@@ -0,0 +1,100 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.undertow",
+      "type": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.undertow.allowed-roles",
+      "type": "java.lang.String",
+      "description": "Configuration used by UndertowSecurityProvider. Comma separated list of allowed roles.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.undertow.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.undertow.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.undertow.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the undertow component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.host-options",
+      "type": "org.apache.camel.component.undertow.UndertowHostOptions",
+      "description": "To configure common options, such as thread pools. The option is a org.apache.camel.component.undertow.UndertowHostOptions type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.undertow.mute-exception",
+      "type": "java.lang.Boolean",
+      "description": "If enabled and an Exchange failed processing on the consumer side the response's body won't contain the exception's stack trace.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.undertow.security-configuration",
+      "type": "java.lang.Object",
+      "description": "Configuration used by UndertowSecurityProvider. Security configuration object for use from UndertowSecurityProvider. Configuration is UndertowSecurityProvider specific. Each provider decides, whether it accepts configuration. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.security-provider",
+      "type": "org.apache.camel.component.undertow.spi.UndertowSecurityProvider",
+      "description": "Security provider allows plug in the provider, which will be used to secure requests. SPI approach could be used too (component then finds security provider using SPI). The option is a org.apache.camel.component.undertow.spi.UndertowSecurityProvider type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.undertow-http-binding",
+      "type": "org.apache.camel.component.undertow.UndertowHttpBinding",
+      "description": "To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.component.undertow.UndertowHttpBinding type.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration"
+    },
+    {
+      "name": "camel.component.undertow.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.undertow.springboot.UndertowComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/univocity-parsers.json b/docs/components/modules/spring-boot/examples/json/univocity-parsers.json
new file mode 100644
index 0000000..2ffb9cc
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/univocity-parsers.json
@@ -0,0 +1,389 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.univocity-csv",
+      "type": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed",
+      "type": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv",
+      "type": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.univocity-csv.as-map",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.comment",
+      "type": "java.lang.String",
+      "description": "The comment symbol. The default value is #",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "#"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.delimiter",
+      "type": "java.lang.String",
+      "description": "The delimiter of values",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": ","
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.empty-value",
+      "type": "java.lang.String",
+      "description": "The String representation of an empty value",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the univocity-csv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.header-extraction-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the header must be read in the first line of the test document The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.headers-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.ignore-leading-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the leading white spaces must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.ignore-trailing-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing white spaces must ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separator of the files The default value is to use the JVM platform line separator",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.normalized-line-separator",
+      "type": "java.lang.String",
+      "description": "The normalized line separator of the files The default value is a new line character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "\\n"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.null-value",
+      "type": "java.lang.String",
+      "description": "The string representation of a null value. The default value is null",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.number-of-records-to-read",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of record to read.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.quote",
+      "type": "java.lang.String",
+      "description": "The quote symbol.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "\""
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.quote-all-fields",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not all values must be quoted when writing them.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.quote-escape",
+      "type": "java.lang.String",
+      "description": "The quote escape symbol",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": "\""
+    },
+    {
+      "name": "camel.dataformat.univocity-csv.skip-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the empty lines must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityCsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.as-map",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.comment",
+      "type": "java.lang.String",
+      "description": "The comment symbol. The default value is #",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": "#"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.empty-value",
+      "type": "java.lang.String",
+      "description": "The String representation of an empty value",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the univocity-fixed data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.header-extraction-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the header must be read in the first line of the test document The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.headers-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.ignore-leading-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the leading white spaces must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.ignore-trailing-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing white spaces must ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separator of the files The default value is to use the JVM platform line separator",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.normalized-line-separator",
+      "type": "java.lang.String",
+      "description": "The normalized line separator of the files The default value is a new line character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": "\\n"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.null-value",
+      "type": "java.lang.String",
+      "description": "The string representation of a null value. The default value is null",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.number-of-records-to-read",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of record to read.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.padding",
+      "type": "java.lang.String",
+      "description": "The padding character. The default value is a space",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.record-ends-on-newline",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the record ends on new line. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.skip-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the empty lines must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-fixed.skip-trailing-chars-until-newline",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing characters until new line must be ignored. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityFixedWidthDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.as-map",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce maps for the lines values instead of lists. It requires to have header (either defined or collected). The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.comment",
+      "type": "java.lang.String",
+      "description": "The comment symbol. The default value is #",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": "#"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.empty-value",
+      "type": "java.lang.String",
+      "description": "The String representation of an empty value",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the univocity-tsv data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.escape-char",
+      "type": "java.lang.String",
+      "description": "The escape character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": "\\"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.header-extraction-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the header must be read in the first line of the test document The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.headers-disabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the headers are disabled. When defined, this option explicitly sets the headers as null which indicates that there is no header. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.ignore-leading-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the leading white spaces must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.ignore-trailing-whitespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the trailing white spaces must ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.lazy-load",
+      "type": "java.lang.Boolean",
+      "description": "Whether the unmarshalling should produce an iterator that reads the lines on the fly or if all the lines must be read at one. The default value is false",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.line-separator",
+      "type": "java.lang.String",
+      "description": "The line separator of the files The default value is to use the JVM platform line separator",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.normalized-line-separator",
+      "type": "java.lang.String",
+      "description": "The normalized line separator of the files The default value is a new line character.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": "\\n"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.null-value",
+      "type": "java.lang.String",
+      "description": "The string representation of a null value. The default value is null",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.number-of-records-to-read",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of record to read.",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.univocity-tsv.skip-empty-lines",
+      "type": "java.lang.Boolean",
+      "description": "Whether or not the empty lines must be ignored. The default value is true",
+      "sourceType": "org.apache.camel.dataformat.univocity.springboot.UniVocityTsvDataFormatConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/validator.json b/docs/components/modules/spring-boot/examples/json/validator.json
new file mode 100644
index 0000000..a9ae3d0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/validator.json
@@ -0,0 +1,49 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.validator",
+      "type": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.validator.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.validator.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.validator.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.validator.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the validator component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration"
+    },
+    {
+      "name": "camel.component.validator.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.validator.resource-resolver-factory",
+      "type": "org.apache.camel.component.validator.ValidatorResourceResolverFactory",
+      "description": "To use a custom LSResourceResolver which depends on a dynamic endpoint resource URI. The option is a org.apache.camel.component.validator.ValidatorResourceResolverFactory type.",
+      "sourceType": "org.apache.camel.component.validator.springboot.ValidatorComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/velocity.json b/docs/components/modules/spring-boot/examples/json/velocity.json
new file mode 100644
index 0000000..222795e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/velocity.json
@@ -0,0 +1,63 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.velocity",
+      "type": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration"
+    },
+    {
+      "name": "camel.component.velocity.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.velocity.allow-context-map-all",
+      "type": "java.lang.Boolean",
+      "description": "Sets whether the context map should allow access to all details. By default only the message body and headers can be accessed. This option can be enabled for full access to the current Exchange and CamelContext. Doing so impose a potential security risk as this opens access to the full power of CamelContext API.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.velocity.allow-template-from-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow to use resource template from header or not (default false). Enabling this allows to specify dynamic templates via message header. However this can be seen as a potential security vulnerability if the header is coming from a malicious user, so use this with care.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.velocity.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.velocity.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.velocity.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the velocity component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration"
+    },
+    {
+      "name": "camel.component.velocity.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.velocity.velocity-engine",
+      "type": "org.apache.velocity.app.VelocityEngine",
+      "description": "To use the VelocityEngine otherwise a new engine is created. The option is a org.apache.velocity.app.VelocityEngine type.",
+      "sourceType": "org.apache.camel.component.velocity.springboot.VelocityComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/vertx-http.json b/docs/components/modules/spring-boot/examples/json/vertx-http.json
new file mode 100644
index 0000000..c75bd87
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/vertx-http.json
@@ -0,0 +1,142 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx-http",
+      "type": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx-http.allow-java-serialized-object",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow java serialization when a request has the Content-Type application\/x-java-serialized-object This is disabled by default. If you enable this, be aware that Java will deserialize the incoming data from the request. This can be a potential security risk.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-http.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-http.basic-auth-password",
+      "type": "java.lang.String",
+      "description": "The password to use for basic authentication",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.basic-auth-username",
+      "type": "java.lang.String",
+      "description": "The user name to use for basic authentication",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.bearer-token",
+      "type": "java.lang.String",
+      "description": "The bearer token to use for bearer token authentication",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx-http.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx-http component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-host",
+      "type": "java.lang.String",
+      "description": "The proxy server host address",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-password",
+      "type": "java.lang.String",
+      "description": "The proxy server password if authentication is required",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-port",
+      "type": "java.lang.Integer",
+      "description": "The proxy server port",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-type",
+      "type": "io.vertx.core.net.ProxyType",
+      "description": "The proxy server type",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.proxy-username",
+      "type": "java.lang.String",
+      "description": "The proxy server username if authentication is required",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.response-payload-as-byte-array",
+      "type": "java.lang.Boolean",
+      "description": "Whether the response body should be byte or as io.vertx.core.buffer.Buffer",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-http.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-http.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use an existing vertx instead of creating a new instance. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.vertx-http-binding",
+      "type": "org.apache.camel.component.vertx.http.VertxHttpBinding",
+      "description": "A custom VertxHttpBinding which can control how to bind between Vert.x and Camel. The option is a org.apache.camel.component.vertx.http.VertxHttpBinding type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-http.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "To provide a custom set of vertx options for configuring vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.http.springboot.VertxHttpComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/vertx-kafka.json b/docs/components/modules/spring-boot/examples/json/vertx-kafka.json
new file mode 100644
index 0000000..62a6c51
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/vertx-kafka.json
@@ -0,0 +1,731 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx-kafka",
+      "type": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx-kafka.acks",
+      "type": "java.lang.String",
+      "description": "The number of acknowledgments the producer requires the leader to have received before considering a request complete. This controls the durability of records that are sent. The following settings are allowed: acks=0 If set to zero then the producer will not wait for any acknowledgment from the server at all. The record will be immediately added to the socket buffer and considered sent. No guarantee can be made that the server has received the record in this case, and the retries configuration will not take effect (as the client won't generally know of any failures). The offset given back for each record will always be set to -1. acks=1 This will mean the leader will write the record to its local log but will respond without awaiting full acknowledgement from all followers. In this case should the leader fail immediately after acknowledging the record but before the followers have replicated it then the record will be lost. acks=all This means the leader will wait for the full set of in-sync replicas to acknowledge the record. This guarantees that the record will not be lost as long as at least one in-sync replica remains alive. This is the strongest available guarantee. This is equivalent to the acks=-1 setting.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "1"
+    },
+    {
+      "name": "camel.component.vertx-kafka.additional-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets additional properties for either kafka consumer or kafka producer in case they can't be set directly on the camel configurations (e.g: new Kafka properties that are not reflected yet in Camel configurations), the properties have to be prefixed with additionalProperties.. E.g: additionalProperties.transactional.id=12345&additionalProperties.schema.registry.url=http:\/\/localhost:8811\/avro",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.allow-auto-create-topics",
+      "type": "java.lang.Boolean",
+      "description": "Allow automatic topic creation on the broker when subscribing to or assigning a topic. A topic being subscribed to will be automatically created only if the broker allows for it using auto.create.topics.enable broker configuration. This configuration must be set to false when using brokers older than 0.11.0",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.allow-manual-commit",
+      "type": "java.lang.Boolean",
+      "description": "Whether to allow doing manual commits via org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit. If this option is enabled then an instance of org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit is stored on the Exchange message header, which allows end users to access this API and perform manual offset commits via the Kafka consumer. Note: To take full control of the offset committing, you may need to disable the Kafka Consumer default auto commit behavior by setting 'enableAutoCommit' to 'false'.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.auto-commit-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The frequency in milliseconds that the consumer offsets are auto-committed to Kafka if enable.auto.commit is set to true. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.vertx-kafka.auto-offset-reset",
+      "type": "java.lang.String",
+      "description": "What to do when there is no initial offset in Kafka or if the current offset does not exist any more on the server (e.g. because that data has been deleted): earliest: automatically reset the offset to the earliest offsetlatest: automatically reset the offset to the latest offsetnone: throw exception to the consumer if no previous offset is found for the consumer's groupanything else: throw exception to the consumer.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.vertx-kafka.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.batch-size",
+      "type": "java.lang.Integer",
+      "description": "The producer will attempt to batch records together into fewer requests whenever multiple records are being sent to the same partition. This helps performance on both the client and the server. This configuration controls the default batch size in bytes. No attempt will be made to batch records larger than this size. Requests sent to brokers will contain multiple batches, one for each partition with data available to be sent. A small batch size will make batching less common and may reduce throughput (a batch size of zero will disable batching entirely). A very large batch size may use memory a bit more wastefully as we will always allocate a buffer of the specified batch size in anticipation of additional records.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 16384
+    },
+    {
+      "name": "camel.component.vertx-kafka.bootstrap-servers",
+      "type": "java.lang.String",
+      "description": "A list of host\/port pairs to use for establishing the initial connection to the Kafka cluster. The client will make use of all servers irrespective of which servers are specified here for bootstrapping&mdash;this list only impacts the initial hosts used to discover the full set of servers. This list should be in the form host1:port1,host2:port2,.... Since these servers are just used for the initial connection to discover the full cluster membership (which may change dynamically), this list need not contain the full set of servers (you may want more than one, though, in case a server is down).",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.buffer-memory",
+      "type": "java.lang.Long",
+      "description": "The total bytes of memory the producer can use to buffer records waiting to be sent to the server. If records are sent faster than they can be delivered to the server the producer will block for max.block.ms after which it will throw an exception.This setting should correspond roughly to the total memory the producer will use, but is not a hard bound since not all memory the producer uses is used for buffering. Some additional memory will be used for compression (if compression is enabled) as well as for maintaining in-flight requests.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 33554432
+    },
+    {
+      "name": "camel.component.vertx-kafka.check-crcs",
+      "type": "java.lang.Boolean",
+      "description": "Automatically check the CRC32 of the records consumed. This ensures no on-the-wire or on-disk corruption to the messages occurred. This check adds some overhead, so it may be disabled in cases seeking extreme performance.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.client-dns-lookup",
+      "type": "java.lang.String",
+      "description": "Controls how the client uses DNS lookups. If set to use_all_dns_ips, connect to each returned IP address in sequence until a successful connection is established. After a disconnection, the next IP is used. Once all IPs have been used once, the client resolves the IP(s) from the hostname again (both the JVM and the OS cache DNS name lookups, however). If set to resolve_canonical_bootstrap_servers_only, resolve each bootstrap address into a list of canonical names. After the bootstrap phase, this behaves the same as use_all_dns_ips. If set to default (deprecated), attempt to connect to the first IP address returned by the lookup, even if the lookup returns multiple IP addresses.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "use_all_dns_ips"
+    },
+    {
+      "name": "camel.component.vertx-kafka.client-id",
+      "type": "java.lang.String",
+      "description": "An id string to pass to the server when making requests. The purpose of this is to be able to track the source of requests beyond just ip\/port by allowing a logical application name to be included in server-side request logging.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.client-rack",
+      "type": "java.lang.String",
+      "description": "A rack identifier for this client. This can be any string value which indicates where this client is physically located. It corresponds with the broker config 'broker.rack'",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.compression-type",
+      "type": "java.lang.String",
+      "description": "The compression type for all data generated by the producer. The default is none (i.e. no compression). Valid values are none, gzip, snappy, lz4, or zstd. Compression is of full batches of data, so the efficacy of batching will also impact the compression ratio (more batching means better compression).",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "none"
+    },
+    {
+      "name": "camel.component.vertx-kafka.configuration",
+      "type": "org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration",
+      "description": "The component configurations. The option is a org.apache.camel.component.vertx.kafka.configuration.VertxKafkaConfiguration type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.connections-max-idle-ms",
+      "type": "java.lang.Long",
+      "description": "Close idle connections after the number of milliseconds specified by this config. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 540000
+    },
+    {
+      "name": "camel.component.vertx-kafka.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx-kafka.default-api-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "Specifies the timeout (in milliseconds) for client APIs. This configuration is used as the default timeout for all client operations that do not specify a timeout parameter. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.delivery-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "An upper bound on the time to report success or failure after a call to send() returns. This limits the total time that a record will be delayed prior to sending, the time to await acknowledgement from the broker (if expected), and the time allowed for retriable send failures. The producer may report failure to send a record earlier than this config if either an unrecoverable error is encountered, the retries have been exhausted, or the record is added to a batch which reached an earlier delivery expiration deadline. The value of this config should be greater than or equal to the sum of request.timeout.ms and linger.ms. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 120000
+    },
+    {
+      "name": "camel.component.vertx-kafka.enable-auto-commit",
+      "type": "java.lang.Boolean",
+      "description": "If true the consumer's offset will be periodically committed in the background.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.enable-idempotence",
+      "type": "java.lang.Boolean",
+      "description": "When set to 'true', the producer will ensure that exactly one copy of each message is written in the stream. If 'false', producer retries due to broker failures, etc., may write duplicates of the retried message in the stream. Note that enabling idempotence requires max.in.flight.requests.per.connection to be less than or equal to 5, retries to be greater than 0 and acks must be 'all'. If these values are not explicitly set by the user, suitable values will be chosen. If incompatible values are set, a ConfigException will be thrown.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx-kafka component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.exclude-internal-topics",
+      "type": "java.lang.Boolean",
+      "description": "Whether internal topics matching a subscribed pattern should be excluded from the subscription. It is always possible to explicitly subscribe to an internal topic.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-kafka.fetch-max-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data the server should return for a fetch request. Records are fetched in batches by the consumer, and if the first record batch in the first non-empty partition of the fetch is larger than this value, the record batch will still be returned to ensure that the consumer can make progress. As such, this is not a absolute maximum. The maximum record batch size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config). Note that the consumer performs multiple fetches in parallel.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 52428800
+    },
+    {
+      "name": "camel.component.vertx-kafka.fetch-max-wait-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time the server will block before answering the fetch request if there isn't sufficient data to immediately satisfy the requirement given by fetch.min.bytes. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.vertx-kafka.fetch-min-bytes",
+      "type": "java.lang.Integer",
+      "description": "The minimum amount of data the server should return for a fetch request. If insufficient data is available the request will wait for that much data to accumulate before answering the request. The default setting of 1 byte means that fetch requests are answered as soon as a single byte of data is available or the fetch request times out waiting for data to arrive. Setting this to something greater than 1 will cause the server to wait for larger amounts of data to accumulate which can improve server throughput a bit at the cost of some additional latency.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.vertx-kafka.group-id",
+      "type": "java.lang.String",
+      "description": "A unique string that identifies the consumer group this consumer belongs to. This property is required if the consumer uses either the group management functionality by using subscribe(topic) or the Kafka-based offset management strategy.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.group-instance-id",
+      "type": "java.lang.String",
+      "description": "A unique identifier of the consumer instance provided by the end user. Only non-empty strings are permitted. If set, the consumer is treated as a static member, which means that only one instance with this ID is allowed in the consumer group at any time. This can be used in combination with a larger session timeout to avoid group rebalances caused by transient unavailability (e.g. process restarts). If not set, the consumer will join the group as a dynamic member, which is the traditional behavior.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.header-filter-strategy",
+      "type": "org.apache.camel.spi.HeaderFilterStrategy",
+      "description": "To use a custom HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.heartbeat-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The expected time between heartbeats to the consumer coordinator when using Kafka's group management facilities. Heartbeats are used to ensure that the consumer's session stays active and to facilitate rebalancing when new consumers join or leave the group. The value must be set lower than session.timeout.ms, but typically should be set no higher than 1\/3 of that value. It can be adjusted even lower to control the expected time for normal rebalances. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 3000
+    },
+    {
+      "name": "camel.component.vertx-kafka.interceptor-classes",
+      "type": "java.lang.String",
+      "description": "A list of classes to use as interceptors. Implementing the org.apache.kafka.clients.producer.ProducerInterceptor interface allows you to intercept (and possibly mutate) the records received by the producer before they are published to the Kafka cluster. By default, there are no interceptors.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.isolation-level",
+      "type": "java.lang.String",
+      "description": "Controls how to read messages written transactionally. If set to read_committed, consumer.poll() will only return transactional messages which have been committed. If set to read_uncommitted (the default), consumer.poll() will return all messages, even transactional messages which have been aborted. Non-transactional messages will be returned unconditionally in either mode. Messages will always be returned in offset order. Hence, in read_committed mode, consumer.poll() will only return messages up to the last stable offset (LSO), which is the one less than the offset of the first open transaction. In particular any messages appearing after messages belonging to ongoing transactions will be withheld until the relevant transaction has been completed. As a result, read_committed consumers will not be able to read up to the high watermark when there are in flight transactions. Further, when in read_committed the seekToEnd method will return the LSO",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "read_uncommitted"
+    },
+    {
+      "name": "camel.component.vertx-kafka.kafka-manual-commit-factory",
+      "type": "org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommitFactory",
+      "description": "Factory to use for creating org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit instances. This allows to plugin a custom factory to create custom org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommit instances in case special logic is needed when doing manual commits that deviates from the default implementation that comes out of the box. The option is a org.apache.camel.component.vertx.kafka.offset.VertxKafkaManualCommitFactory type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.key-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for key that implements the org.apache.kafka.common.serialization.Deserializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.key-serializer",
+      "type": "java.lang.String",
+      "description": "Serializer class for key that implements the org.apache.kafka.common.serialization.Serializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-kafka.linger-ms",
+      "type": "java.lang.Long",
+      "description": "The producer groups together any records that arrive in between request transmissions into a single batched request. Normally this occurs only under load when records arrive faster than they can be sent out. However in some circumstances the client may want to reduce the number of requests even under moderate load. This setting accomplishes this by adding a small amount of artificial delay&mdash;that is, rather than immediately sending out a record the producer will wait for up to the given delay to allow other records to be sent so that the sends can be batched together. This can be thought of as analogous to Nagle's algorithm in TCP. This setting gives the upper bound on the delay for batching: once we get batch.size worth of records for a partition it will be sent immediately regardless of this setting, however if we have fewer than this many bytes accumulated for this partition we will 'linger' for the specified time waiting for more records to show up. This setting defaults to 0 (i.e. no delay). Setting linger.ms=5, for example, would have the effect of reducing the number of requests sent but would add up to 5ms of latency to records sent in the absence of load. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-block-ms",
+      "type": "java.lang.Long",
+      "description": "The configuration controls how long the KafkaProducer's send(), partitionsFor(), initTransactions(), sendOffsetsToTransaction(), commitTransaction() and abortTransaction() methods will block. For send() this timeout bounds the total time waiting for both metadata fetch and buffer allocation (blocking in the user-supplied serializers or partitioner is not counted against this timeout). For partitionsFor() this timeout bounds the time spent waiting for metadata if it is unavailable. The transaction-related methods always block, but may timeout if the transaction coordinator could not be discovered or did not respond within the timeout. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-in-flight-requests-per-connection",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of unacknowledged requests the client will send on a single connection before blocking. Note that if this setting is set to be greater than 1 and there are failed sends, there is a risk of message re-ordering due to retries (i.e., if retries are enabled).",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 5
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-partition-fetch-bytes",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of data per-partition the server will return. Records are fetched in batches by the consumer. If the first record batch in the first non-empty partition of the fetch is larger than this limit, the batch will still be returned to ensure that the consumer can make progress. The maximum record batch size accepted by the broker is defined via message.max.bytes (broker config) or max.message.bytes (topic config). See fetch.max.bytes for limiting the consumer request size.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-poll-interval-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum delay between invocations of poll() when using consumer group management. This places an upper bound on the amount of time that the consumer can be idle before fetching more records. If poll() is not called before expiration of this timeout, then the consumer is considered failed and the group will rebalance in order to reassign the partitions to another member. For consumers using a non-null group.instance.id which reach this timeout, partitions will not be immediately reassigned. Instead, the consumer will stop sending heartbeats and partitions will be reassigned after expiration of session.timeout.ms. This mirrors the behavior of a static consumer which has shutdown. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-poll-records",
+      "type": "java.lang.Integer",
+      "description": "The maximum number of records returned in a single call to poll(). Note, that max.poll.records does not impact the underlying fetching behavior. The consumer will cache the records from each fetch request and returns them incrementally from each poll.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 500
+    },
+    {
+      "name": "camel.component.vertx-kafka.max-request-size",
+      "type": "java.lang.Integer",
+      "description": "The maximum size of a request in bytes. This setting will limit the number of record batches the producer will send in a single request to avoid sending huge requests. This is also effectively a cap on the maximum uncompressed record batch size. Note that the server has its own cap on the record batch size (after compression if compression is enabled) which may be different from this.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1048576
+    },
+    {
+      "name": "camel.component.vertx-kafka.metadata-max-age-ms",
+      "type": "java.lang.Long",
+      "description": "The period of time in milliseconds after which we force a refresh of metadata even if we haven't seen any partition leadership changes to proactively discover any new brokers or partitions. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.vertx-kafka.metadata-max-idle-ms",
+      "type": "java.lang.Long",
+      "description": "Controls how long the producer will cache metadata for a topic that's idle. If the elapsed time since a topic was last produced to exceeds the metadata idle duration, then the topic's metadata is forgotten and the next access to it will force a metadata fetch request. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300000
+    },
+    {
+      "name": "camel.component.vertx-kafka.metric-reporters",
+      "type": "java.lang.String",
+      "description": "A list of classes to use as metrics reporters. Implementing the org.apache.kafka.common.metrics.MetricsReporter interface allows plugging in classes that will be notified of new metric creation. The JmxReporter is always included to register JMX statistics.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.metrics-num-samples",
+      "type": "java.lang.Integer",
+      "description": "The number of samples maintained to compute metrics.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 2
+    },
+    {
+      "name": "camel.component.vertx-kafka.metrics-recording-level",
+      "type": "java.lang.String",
+      "description": "The highest recording level for metrics.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "INFO"
+    },
+    {
+      "name": "camel.component.vertx-kafka.metrics-sample-window-ms",
+      "type": "java.lang.Long",
+      "description": "The window of time a metrics sample is computed over. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.vertx-kafka.partition-assignment-strategy",
+      "type": "java.lang.String",
+      "description": "A list of class names or class types, ordered by preference, of supported partition assignment strategies that the client will use to distribute partition ownership amongst consumer instances when group management is used. Available options are:org.apache.kafka.clients.consumer.RangeAssignor: The default assignor, which works on a per-topic basis.org.apache.kafka.clients.consumer.RoundRobinAssignor: Assigns partitions to consumers in a round-robin fashion.org.apache.kafka.clients.consumer.StickyAssignor: Guarantees an assignment that is maximally balanced while preserving as many existing partition assignments as possible.org.apache.kafka.clients.consumer.CooperativeStickyAssignor: Follows the same StickyAssignor logic, but allows for cooperative rebalancing.Implementing the org.apache.kafka.clients.consumer.ConsumerPartitionAssignor interface allows you to plug in a custom assignment strategy.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.consumer.RangeAssignor"
+    },
+    {
+      "name": "camel.component.vertx-kafka.partition-id",
+      "type": "java.lang.Integer",
+      "description": "The partition to which the record will be sent (or null if no partition was specified) or read from a particular partition if set. Header VertxKafkaConstants#PARTITION_ID If configured, it will take precedence over this config",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.partitioner-class",
+      "type": "java.lang.String",
+      "description": "Partitioner class that implements the org.apache.kafka.clients.producer.Partitioner interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.clients.producer.internals.DefaultPartitioner"
+    },
+    {
+      "name": "camel.component.vertx-kafka.receive-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "The size of the TCP receive buffer (SO_RCVBUF) to use when reading data. If the value is -1, the OS default will be used.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 32768
+    },
+    {
+      "name": "camel.component.vertx-kafka.reconnect-backoff-max-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum amount of time in milliseconds to wait when reconnecting to a broker that has repeatedly failed to connect. If provided, the backoff per host will increase exponentially for each consecutive connection failure, up to this maximum. After calculating the backoff increase, 20% random jitter is added to avoid connection storms. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.component.vertx-kafka.reconnect-backoff-ms",
+      "type": "java.lang.Long",
+      "description": "The base amount of time to wait before attempting to reconnect to a given host. This avoids repeatedly connecting to a host in a tight loop. This backoff applies to all connection attempts by the client to a broker. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 50
+    },
+    {
+      "name": "camel.component.vertx-kafka.request-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The configuration controls the maximum amount of time the client will wait for the response of a request. If the response is not received before the timeout elapses the client will resend the request if necessary or fail the request if retries are exhausted. This should be larger than replica.lag.time.max.ms (a broker configuration) to reduce the possibility of message duplication due to unnecessary producer retries. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.vertx-kafka.retries",
+      "type": "java.lang.Integer",
+      "description": "Setting a value greater than zero will cause the client to resend any record whose send fails with a potentially transient error. Note that this retry is no different than if the client resent the record upon receiving the error. Allowing retries without setting max.in.flight.requests.per.connection to 1 will potentially change the ordering of records because if two batches are sent to a single partition, and the first fails and is retried but the second succeeds, then the records in the second batch may appear first. Note additionally that produce requests will be failed before the number of retries has been exhausted if the timeout configured by delivery.timeout.ms expires first before successful acknowledgement. Users should generally prefer to leave this config unset and instead use delivery.timeout.ms to control retry behavior.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 2147483647
+    },
+    {
+      "name": "camel.component.vertx-kafka.retry-backoff-ms",
+      "type": "java.lang.Long",
+      "description": "The amount of time to wait before attempting to retry a failed request to a given topic partition. This avoids repeatedly sending requests in a tight loop under some failure scenarios. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 100
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-client-callback-handler-class",
+      "type": "java.lang.String",
+      "description": "The fully qualified name of a SASL client callback handler class that implements the AuthenticateCallbackHandler interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-jaas-config",
+      "type": "java.lang.String",
+      "description": "JAAS login context parameters for SASL connections in the format used by JAAS configuration files. JAAS configuration file format is described here. The format for the value is: loginModuleClass controlFlag (optionName=optionValue);. For brokers, the config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=com.example.ScramLoginModule required;",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-kinit-cmd",
+      "type": "java.lang.String",
+      "description": "Kerberos kinit command path.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "\/usr\/bin\/kinit"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-min-time-before-relogin",
+      "type": "java.lang.Long",
+      "description": "Login thread sleep time between refresh attempts.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-service-name",
+      "type": "java.lang.String",
+      "description": "The Kerberos principal name that Kafka runs as. This can be defined either in Kafka's JAAS config or in Kafka's config.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-ticket-renew-jitter",
+      "type": "java.lang.Double",
+      "description": "Percentage of random jitter added to the renewal time.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-kerberos-ticket-renew-window-factor",
+      "type": "java.lang.Double",
+      "description": "Login thread will sleep until the specified window factor of time from last refresh to ticket's expiry has been reached, at which time it will try to renew the ticket.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-callback-handler-class",
+      "type": "java.lang.String",
+      "description": "The fully qualified name of a SASL login callback handler class that implements the AuthenticateCallbackHandler interface. For brokers, login callback handler config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.callback.handler.class=com.example.CustomScramLoginCallbackHandler",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-class",
+      "type": "java.lang.String",
+      "description": "The fully qualified name of a class that implements the Login interface. For brokers, login config must be prefixed with listener prefix and SASL mechanism name in lower-case. For example, listener.name.sasl_ssl.scram-sha-256.sasl.login.class=com.example.CustomScramLogin",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-buffer-seconds",
+      "type": "java.lang.Short",
+      "description": "The amount of buffer time before credential expiration to maintain when refreshing a credential, in seconds. If a refresh would otherwise occur closer to expiration than the number of buffer seconds then the refresh will be moved up to maintain as much of the buffer time as possible. Legal values are between 0 and 3600 (1 hour); a default value of 300 (5 minutes) is used if no value is specified. This value and sasl.login.refresh.min.period.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 300
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-min-period-seconds",
+      "type": "java.lang.Short",
+      "description": "The desired minimum time for the login refresh thread to wait before refreshing a credential, in seconds. Legal values are between 0 and 900 (15 minutes); a default value of 60 (1 minute) is used if no value is specified. This value and sasl.login.refresh.buffer.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-window-factor",
+      "type": "java.lang.Double",
+      "description": "Login refresh thread will sleep until the specified window factor relative to the credential's lifetime has been reached, at which time it will try to refresh the credential. Legal values are between 0.5 (50%) and 1.0 (100%) inclusive; a default value of 0.8 (80%) is used if no value is specified. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-login-refresh-window-jitter",
+      "type": "java.lang.Double",
+      "description": "The maximum amount of random jitter relative to the credential's lifetime that is added to the login refresh thread's sleep time. Legal values are between 0 and 0.25 (25%) inclusive; a default value of 0.05 (5%) is used if no value is specified. Currently applies only to OAUTHBEARER.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.sasl-mechanism",
+      "type": "java.lang.String",
+      "description": "SASL mechanism used for client connections. This may be any mechanism for which a security provider is available. GSSAPI is the default mechanism.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "GSSAPI"
+    },
+    {
+      "name": "camel.component.vertx-kafka.security-protocol",
+      "type": "java.lang.String",
+      "description": "Protocol used to communicate with brokers. Valid values are: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "PLAINTEXT"
+    },
+    {
+      "name": "camel.component.vertx-kafka.security-providers",
+      "type": "java.lang.String",
+      "description": "A list of configurable creator classes each returning a provider implementing security algorithms. These classes should implement the org.apache.kafka.common.security.auth.SecurityProviderCreator interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.seek-to-offset",
+      "type": "java.lang.Long",
+      "description": "Set if KafkaConsumer will read from a particular offset on startup. This config will take precedence over seekTo config",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.seek-to-position",
+      "type": "java.lang.String",
+      "description": "Set if KafkaConsumer will read from beginning or end on startup: beginning : read from beginning end : read from end.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.send-buffer-bytes",
+      "type": "java.lang.Integer",
+      "description": "The size of the TCP send buffer (SO_SNDBUF) to use when sending data. If the value is -1, the OS default will be used.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 131072
+    },
+    {
+      "name": "camel.component.vertx-kafka.session-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The timeout used to detect client failures when using Kafka's group management facility. The client sends periodic heartbeats to indicate its liveness to the broker. If no heartbeats are received by the broker before the expiration of this session timeout, then the broker will remove this client from the group and initiate a rebalance. Note that the value must be in the allowable range as configured in the broker configuration by group.min.session.timeout.ms and group.max.session.timeout.ms. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.vertx-kafka.socket-connection-setup-timeout-max-ms",
+      "type": "java.lang.Long",
+      "description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 30000
+    },
+    {
+      "name": "camel.component.vertx-kafka.socket-connection-setup-timeout-ms",
+      "type": "java.lang.Long",
+      "description": "The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel. The option is a long type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-cipher-suites",
+      "type": "java.lang.String",
+      "description": "A list of cipher suites. This is a named combination of authentication, encryption, MAC and key exchange algorithm used to negotiate the security settings for a network connection using TLS or SSL network protocol. By default all the available cipher suites are supported.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-enabled-protocols",
+      "type": "java.lang.String",
+      "description": "The list of protocols enabled for SSL connections. The default is 'TLSv1.2,TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. With the default value for Java 11, clients and servers will prefer TLSv1.3 if both support it and fallback to TLSv1.2 otherwise (assuming both support at least TLSv1.2). This default should be fine for most cases. Also see the config documentation for ssl.protocol.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "TLSv1.2,TLSv1.3"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-endpoint-identification-algorithm",
+      "type": "java.lang.String",
+      "description": "The endpoint identification algorithm to validate server hostname using server certificate.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "https"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-engine-factory-class",
+      "type": "java.lang.String",
+      "description": "The class of type org.apache.kafka.common.security.auth.SslEngineFactory to provide SSLEngine objects. Default value is org.apache.kafka.common.security.ssl.DefaultSslEngineFactory",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password of the private key in the key store file orthe PEM key specified in ssl.keystore.key'. This is required for clients only if two-way authentication is configured.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keymanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by key manager factory for SSL connections. Default value is the key manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "SunX509"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-certificate-chain",
+      "type": "java.lang.String",
+      "description": "Certificate chain in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with a list of X.509 certificates",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-key",
+      "type": "java.lang.String",
+      "description": "Private key in the format specified by 'ssl.keystore.type'. Default SSL engine factory supports only PEM format with PKCS#8 keys. If the key is encrypted, key password must be specified using 'ssl.key.password'",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-location",
+      "type": "java.lang.String",
+      "description": "The location of the key store file. This is optional for client and can be used for two-way authentication for client.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-password",
+      "type": "java.lang.String",
+      "description": "The store password for the key store file. This is optional for client and only needed if 'ssl.keystore.location' is configured. Key store password is not supported for PEM format.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-keystore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the key store file. This is optional for client.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-protocol",
+      "type": "java.lang.String",
+      "description": "The SSL protocol used to generate the SSLContext. The default is 'TLSv1.3' when running with Java 11 or newer, 'TLSv1.2' otherwise. This value should be fine for most use cases. Allowed values in recent JVMs are 'TLSv1.2' and 'TLSv1.3'. 'TLS', 'TLSv1.1', 'SSL', 'SSLv2' and 'SSLv3' may be supported in older JVMs, but their usage is discouraged due to known security vulnerabilities. With the default value for this config and 'ssl.enabled.protocols', clients will downgrade to 'TLSv1.2' if the server does not support 'TLSv1.3'. If this config is set to 'TLSv1.2', clients will not use 'TLSv1.3' even if it is one of the values in ssl.enabled.protocols and the server only supports 'TLSv1.3'.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "TLSv1.2"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-provider",
+      "type": "java.lang.String",
+      "description": "The name of the security provider used for SSL connections. Default value is the default security provider of the JVM.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-secure-random-implementation",
+      "type": "java.lang.String",
+      "description": "The SecureRandom PRNG implementation to use for SSL cryptography operations.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-trustmanager-algorithm",
+      "type": "java.lang.String",
+      "description": "The algorithm used by trust manager factory for SSL connections. Default value is the trust manager factory algorithm configured for the Java Virtual Machine.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "PKIX"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-certificates",
+      "type": "java.lang.String",
+      "description": "Trusted certificates in the format specified by 'ssl.truststore.type'. Default SSL engine factory supports only PEM format with X.509 certificates.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-location",
+      "type": "java.lang.String",
+      "description": "The location of the trust store file.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-password",
+      "type": "java.lang.String",
+      "description": "The password for the trust store file. If a password is not set, trust store file configured will still be used, but integrity checking is disabled. Trust store password is not supported for PEM format.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.ssl-truststore-type",
+      "type": "java.lang.String",
+      "description": "The file format of the trust store file.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "JKS"
+    },
+    {
+      "name": "camel.component.vertx-kafka.transaction-timeout-ms",
+      "type": "java.lang.Integer",
+      "description": "The maximum amount of time in ms that the transaction coordinator will wait for a transaction status update from the producer before proactively aborting the ongoing transaction.If this value is larger than the transaction.max.timeout.ms setting in the broker, the request will fail with a InvalidTxnTimeoutException error. The option is a int type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.component.vertx-kafka.transactional-id",
+      "type": "java.lang.String",
+      "description": "The TransactionalId to use for transactional delivery. This enables reliability semantics which span multiple producer sessions since it allows the client to guarantee that transactions using the same TransactionalId have been completed prior to starting any new transactions. If no TransactionalId is provided, then the producer is limited to idempotent delivery. If a TransactionalId is configured, enable.idempotence is implied. By default the TransactionId is not configured, which means transactions cannot be used. Note that, by default, transactions require a cluster of at least three brokers which is the recommended setting for production; for development you can change this, by adjusting broker setting transaction.state.log.replication.factor.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.value-deserializer",
+      "type": "java.lang.String",
+      "description": "Deserializer class for value that implements the org.apache.kafka.common.serialization.Deserializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringDeserializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.value-serializer",
+      "type": "java.lang.String",
+      "description": "Serializer class for value that implements the org.apache.kafka.common.serialization.Serializer interface.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration",
+      "defaultValue": "org.apache.kafka.common.serialization.StringSerializer"
+    },
+    {
+      "name": "camel.component.vertx-kafka.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use an existing vertx instead of creating a new instance. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.vertx-kafka-client-factory",
+      "type": "org.apache.camel.component.vertx.kafka.VertxKafkaClientFactory",
+      "description": "Factory to use for creating io.vertx.kafka.client.consumer.KafkaConsumer and io.vertx.kafka.client.consumer.KafkaProducer instances. This allows to configure a custom factory to create custom KafkaConsumer and KafkaProducer instances with logic that extends the vanilla VertX Kafka clients. The option is a org.apache.camel.component.vertx.kafka.VertxKafkaClientFactory type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-kafka.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "To provide a custom set of vertx options for configuring vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.kafka.springboot.VertxKafkaComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/vertx-websocket.json b/docs/components/modules/spring-boot/examples/json/vertx-websocket.json
new file mode 100644
index 0000000..6fd34ce
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/vertx-websocket.json
@@ -0,0 +1,75 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx-websocket",
+      "type": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx-websocket.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx-websocket.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-websocket.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx-websocket.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx-websocket component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-websocket.router",
+      "type": "io.vertx.ext.web.Router",
+      "description": "To provide a custom vertx router to use on the WebSocket server. The option is a io.vertx.ext.web.Router type.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx-websocket.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use an existing vertx instead of creating a new instance. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx-websocket.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "To provide a custom set of vertx options for configuring vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.websocket.springboot.VertxWebsocketComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/vertx.json b/docs/components/modules/spring-boot/examples/json/vertx.json
new file mode 100644
index 0000000..0f1ff71
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/vertx.json
@@ -0,0 +1,87 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vertx",
+      "type": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vertx.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vertx.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vertx.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vertx component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.host",
+      "type": "java.lang.String",
+      "description": "Hostname for creating an embedded clustered EventBus",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vertx.port",
+      "type": "java.lang.Integer",
+      "description": "Port for creating an embedded clustered EventBus",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in seconds to wait for clustered Vertx EventBus to be ready. The default value is 60.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration",
+      "defaultValue": 60
+    },
+    {
+      "name": "camel.component.vertx.vertx",
+      "type": "io.vertx.core.Vertx",
+      "description": "To use the given vertx EventBus instead of creating a new embedded EventBus. The option is a io.vertx.core.Vertx type.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.vertx-factory",
+      "type": "io.vertx.core.impl.VertxBuilder",
+      "description": "To use a custom VertxFactory implementation. The option is a io.vertx.core.impl.VertxBuilder type.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vertx.vertx-options",
+      "type": "io.vertx.core.VertxOptions",
+      "description": "Options to use for creating vertx. The option is a io.vertx.core.VertxOptions type.",
+      "sourceType": "org.apache.camel.component.vertx.springboot.VertxComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/vm.json b/docs/components/modules/spring-boot/examples/json/vm.json
new file mode 100644
index 0000000..509b3b5
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/vm.json
@@ -0,0 +1,90 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.vm",
+      "type": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.vm.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.vm.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.concurrent-consumers",
+      "type": "java.lang.Integer",
+      "description": "Sets the default number of concurrent threads processing exchanges.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.component.vm.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.vm.default-block-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will instead block and wait until the message can be accepted.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.default-discard-when-full",
+      "type": "java.lang.Boolean",
+      "description": "Whether a thread that sends messages to a full SEDA queue will be discarded. By default, an exception will be thrown stating that the queue is full. By enabling this option, the calling thread will give up sending and continue, meaning that the message was not sent to the SEDA queue.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.default-offer-timeout",
+      "type": "java.lang.Long",
+      "description": "Whether a thread that sends messages to a full SEDA queue will block until the queue's capacity is no longer exhausted. By default, an exception will be thrown stating that the queue is full. By enabling this option, where a configured timeout can be added to the block case. Utilizing the .offer(timeout) method of the underlining java queue",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.default-queue-factory",
+      "type": "org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange>",
+      "description": "Sets the default queue factory. The option is a org.apache.camel.component.seda.BlockingQueueFactory<org.apache.camel.Exchange> type.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the vm component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration"
+    },
+    {
+      "name": "camel.component.vm.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.vm.queue-size",
+      "type": "java.lang.Integer",
+      "description": "Sets the default maximum capacity of the SEDA queue (i.e., the number of messages it can hold).",
+      "sourceType": "org.apache.camel.component.vm.springboot.VmComponentConfiguration",
+      "defaultValue": 1000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/weather.json b/docs/components/modules/spring-boot/examples/json/weather.json
new file mode 100644
index 0000000..e9c4185
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/weather.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.weather",
+      "type": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weather.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.weather.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.weather.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.weather.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.weather.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the weather component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weather.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.weather.springboot.WeatherComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/web3j.json b/docs/components/modules/spring-boot/examples/json/web3j.json
new file mode 100644
index 0000000..96ff7da
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/web3j.json
@@ -0,0 +1,266 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.web3j",
+      "type": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.web3j.address",
+      "type": "java.lang.String",
+      "description": "Contract address.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.addresses",
+      "type": "java.util.List<java.lang.String>",
+      "description": "Contract address or a list of addresses.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.at-block",
+      "type": "java.lang.String",
+      "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.web3j.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.web3j.block-hash",
+      "type": "java.lang.String",
+      "description": "Hash of the block where this transaction was in.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.client-id",
+      "type": "java.lang.String",
+      "description": "A random hexadecimal(32 bytes) ID identifying the client.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.configuration",
+      "type": "org.apache.camel.component.web3j.Web3jConfiguration",
+      "description": "Default configuration. The option is a org.apache.camel.component.web3j.Web3jConfiguration type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.web3j.data",
+      "type": "java.lang.String",
+      "description": "The compiled code of a contract OR the hash of the invoked method signature and encoded parameters.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.database-name",
+      "type": "java.lang.String",
+      "description": "The local database name.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the web3j component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.filter-id",
+      "type": "java.math.BigInteger",
+      "description": "The filter id to use. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.from-address",
+      "type": "java.lang.String",
+      "description": "The address the transaction is send from",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.from-block",
+      "type": "java.lang.String",
+      "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.web3j.full-transaction-objects",
+      "type": "java.lang.Boolean",
+      "description": "If true it returns the full transaction objects, if false only the hashes of the transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.gas-limit",
+      "type": "java.math.BigInteger",
+      "description": "The maximum gas allowed in this block. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.gas-price",
+      "type": "java.math.BigInteger",
+      "description": "Gas price used for each paid gas. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.hashrate",
+      "type": "java.lang.String",
+      "description": "A hexadecimal string representation (32 bytes) of the hash rate.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.header-pow-hash",
+      "type": "java.lang.String",
+      "description": "The header's pow-hash (256 bits) used for submitting a proof-of-work solution.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.index",
+      "type": "java.math.BigInteger",
+      "description": "The transactions\/uncle index position in the block. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.key-name",
+      "type": "java.lang.String",
+      "description": "The key name in the database.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.mix-digest",
+      "type": "java.lang.String",
+      "description": "The mix digest (256 bits) used for submitting a proof-of-work solution.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.nonce",
+      "type": "java.lang.String",
+      "description": "The nonce found (64 bits) used for submitting a proof-of-work solution.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.operation",
+      "type": "java.lang.String",
+      "description": "Operation to use.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "transaction"
+    },
+    {
+      "name": "camel.component.web3j.position",
+      "type": "java.math.BigInteger",
+      "description": "The transaction index position withing a block. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.priority",
+      "type": "java.math.BigInteger",
+      "description": "The priority of a whisper message. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.private-for",
+      "type": "java.util.List<java.lang.String>",
+      "description": "A transaction privateFor nodes with public keys in a Quorum network",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.quorum-a-p-i",
+      "type": "java.lang.Boolean",
+      "description": "If true, this will support Quorum API.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.web3j.sha3-hash-of-data-to-sign",
+      "type": "java.lang.String",
+      "description": "Message to sign by calculating an Ethereum specific signature.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.signed-transaction-data",
+      "type": "java.lang.String",
+      "description": "The signed transaction data for a new message call transaction or a contract creation for signed transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.source-code",
+      "type": "java.lang.String",
+      "description": "The source code to compile.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.to-address",
+      "type": "java.lang.String",
+      "description": "The address the transaction is directed to.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.to-block",
+      "type": "java.lang.String",
+      "description": "The block number, or the string latest for the last mined block or pending, earliest for not yet mined transactions.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration",
+      "defaultValue": "latest"
+    },
+    {
+      "name": "camel.component.web3j.topics",
+      "type": "java.lang.String",
+      "description": "Topics are order-dependent. Each topic can also be a list of topics. Specify multiple topics separated by comma.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.transaction-hash",
+      "type": "java.lang.String",
+      "description": "The information about a transaction requested by transaction hash.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.ttl",
+      "type": "java.math.BigInteger",
+      "description": "The time to live in seconds of a whisper message. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.value",
+      "type": "java.math.BigInteger",
+      "description": "The value sent within a transaction. The option is a java.math.BigInteger type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    },
+    {
+      "name": "camel.component.web3j.web3j",
+      "type": "org.web3j.protocol.Web3j",
+      "description": "The preconfigured Web3j object. The option is a org.web3j.protocol.Web3j type.",
+      "sourceType": "org.apache.camel.component.web3j.springboot.Web3jComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/webhook.json b/docs/components/modules/spring-boot/examples/json/webhook.json
new file mode 100644
index 0000000..5f16ca1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/webhook.json
@@ -0,0 +1,80 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.webhook",
+      "type": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.webhook.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.webhook.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.webhook.configuration",
+      "type": "org.apache.camel.component.webhook.WebhookConfiguration",
+      "description": "Set the default configuration for the webhook meta-component. The option is a org.apache.camel.component.webhook.WebhookConfiguration type.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.webhook.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the webhook component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-auto-register",
+      "type": "java.lang.Boolean",
+      "description": "Automatically register the webhook at startup and unregister it on shutdown.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.webhook.webhook-base-path",
+      "type": "java.lang.String",
+      "description": "The first (base) path element where the webhook will be exposed. It's a good practice to set it to a random string, so that it cannot be guessed by unauthorized parties.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-component-name",
+      "type": "java.lang.String",
+      "description": "The Camel Rest component to use for the REST transport, such as netty-http.",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-external-url",
+      "type": "java.lang.String",
+      "description": "The URL of the current service as seen by the webhook provider",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    },
+    {
+      "name": "camel.component.webhook.webhook-path",
+      "type": "java.lang.String",
+      "description": "The path where the webhook endpoint will be exposed (relative to basePath, if any)",
+      "sourceType": "org.apache.camel.component.webhook.springboot.WebhookComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/websocket-jsr356.json b/docs/components/modules/spring-boot/examples/json/websocket-jsr356.json
new file mode 100644
index 0000000..e3c8f42
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/websocket-jsr356.json
@@ -0,0 +1,56 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.websocket-jsr356",
+      "type": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket-jsr356.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.websocket-jsr356.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.websocket-jsr356.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket-jsr356.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.websocket-jsr356.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the websocket-jsr356 component. This is enabled by default.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket-jsr356.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket-jsr356.server-endpoint-deployment-strategy",
+      "type": "org.apache.camel.websocket.jsr356.ServerEndpointDeploymentStrategy",
+      "description": "To enable customization of how a WebSocket ServerEndpoint is configured and deployed. By default DefaultServerEndpointDeploymentStrategy is used. The option is a org.apache.camel.websocket.jsr356.ServerEndpointDeploymentStrategy type.",
+      "sourceType": "org.apache.camel.websocket.jsr356.springboot.JSR356WebSocketComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/websocket.json b/docs/components/modules/spring-boot/examples/json/websocket.json
new file mode 100644
index 0000000..247d3dc
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/websocket.json
@@ -0,0 +1,133 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.websocket",
+      "type": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.websocket.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.websocket.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.websocket.enable-jmx",
+      "type": "java.lang.Boolean",
+      "description": "If this option is true, Jetty JMX support will be enabled for this endpoint. See Jetty JMX support for more details.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the websocket component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.host",
+      "type": "java.lang.String",
+      "description": "The hostname. The default value is 0.0.0.0",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": "0.0.0.0"
+    },
+    {
+      "name": "camel.component.websocket.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.websocket.max-threads",
+      "type": "java.lang.Integer",
+      "description": "To set a value for maximum number of threads in server thread pool. MaxThreads\/minThreads or threadPool fields are required due to switch to Jetty9. The default values for maxThreads is 1 2 noCores.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.min-threads",
+      "type": "java.lang.Integer",
+      "description": "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.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.port",
+      "type": "java.lang.Integer",
+      "description": "The port number. The default value is 9292",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": 9292
+    },
+    {
+      "name": "camel.component.websocket.ssl-context-parameters",
+      "type": "org.apache.camel.support.jsse.SSLContextParameters",
+      "description": "To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.ssl-key-password",
+      "type": "java.lang.String",
+      "description": "The password for the keystore when using SSL.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.ssl-keystore",
+      "type": "java.lang.String",
+      "description": "The path to the keystore.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.ssl-password",
+      "type": "java.lang.String",
+      "description": "The password when using SSL.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.static-resources",
+      "type": "java.lang.String",
+      "description": "Set a resource path for static resources (such as .html files etc). The resources can be loaded from classpath, if you prefix with classpath:, otherwise the resources is loaded from file system or from JAR files. For example to load from root classpath use classpath:., or classpath:WEB-INF\/static If not configured (eg null) then no static resource is in use.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.subprotocol",
+      "type": "java.lang.String",
+      "description": "This is a comma-separated list of subprotocols that are supported by the application. The list is in priority order. The first subprotocol on this list that is proposed by the client is the one that will be accepted. If no subprotocol on this list is proposed by the client, then the websocket connection is refused. The special value 'any' means that any subprotocol is acceptable. 'any' can be used on its own, or as a failsafe at the end of a list of more specific protocols. 'any' will also match the case where no subprotocol is proposed by the client.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": "any"
+    },
+    {
+      "name": "camel.component.websocket.thread-pool",
+      "type": "org.eclipse.jetty.util.thread.ThreadPool",
+      "description": "To use a custom thread pool for the server. MaxThreads\/minThreads or threadPool fields are required due to switch to Jetty9. The option is a org.eclipse.jetty.util.thread.ThreadPool type.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration"
+    },
+    {
+      "name": "camel.component.websocket.use-global-ssl-context-parameters",
+      "type": "java.lang.Boolean",
+      "description": "Enable usage of global SSL context parameters.",
+      "sourceType": "org.apache.camel.component.websocket.springboot.WebsocketComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/weka.json b/docs/components/modules/spring-boot/examples/json/weka.json
new file mode 100644
index 0000000..308fea6
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/weka.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.weka",
+      "type": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weka.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.weka.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.weka.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.weka.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the weka component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration"
+    },
+    {
+      "name": "camel.component.weka.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.weka.springboot.WekaComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/wordpress.json b/docs/components/modules/spring-boot/examples/json/wordpress.json
new file mode 100644
index 0000000..e9bfae1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/wordpress.json
@@ -0,0 +1,106 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.wordpress",
+      "type": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.wordpress.api-version",
+      "type": "java.lang.String",
+      "description": "The Wordpress REST API version",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": "2"
+    },
+    {
+      "name": "camel.component.wordpress.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.wordpress.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.wordpress.configuration",
+      "type": "org.apache.camel.component.wordpress.WordpressConfiguration",
+      "description": "Wordpress configuration. The option is a org.apache.camel.component.wordpress.WordpressConfiguration type.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.criteria",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "The criteria to use with complex searches.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.wordpress.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the wordpress component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.force",
+      "type": "java.lang.Boolean",
+      "description": "Whether to bypass trash and force deletion.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.wordpress.id",
+      "type": "java.lang.Integer",
+      "description": "The entity ID. Should be passed when the operation performed requires a specific entity, e.g. deleting a post",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.wordpress.password",
+      "type": "java.lang.String",
+      "description": "Password from authorized user",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.search-criteria",
+      "type": "org.apache.camel.component.wordpress.api.model.SearchCriteria",
+      "description": "Search criteria. The option is a org.apache.camel.component.wordpress.api.model.SearchCriteria type.",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.url",
+      "type": "java.lang.String",
+      "description": "The Wordpress API URL from your site, e.g. http:\/\/myblog.com\/wp-json\/",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    },
+    {
+      "name": "camel.component.wordpress.user",
+      "type": "java.lang.String",
+      "description": "Authorized user to perform writing operations",
+      "sourceType": "org.apache.camel.component.wordpress.springboot.WordpressComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/workday.json b/docs/components/modules/spring-boot/examples/json/workday.json
new file mode 100644
index 0000000..cf5d358
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/workday.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.workday",
+      "type": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration"
+    },
+    {
+      "name": "camel.component.workday.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.workday.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.workday.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.workday.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the workday component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration"
+    },
+    {
+      "name": "camel.component.workday.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.workday.springboot.WorkdayComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xchange.json b/docs/components/modules/spring-boot/examples/json/xchange.json
new file mode 100644
index 0000000..1e504ad
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xchange.json
@@ -0,0 +1,43 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xchange",
+      "type": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xchange.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xchange.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xchange.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xchange.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xchange component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xchange.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xchange.springboot.XChangeComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xj.json b/docs/components/modules/spring-boot/examples/json/xj.json
new file mode 100644
index 0000000..f1130a0
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xj.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xj",
+      "type": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xj.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xj.content-cache",
+      "type": "java.lang.Boolean",
+      "description": "Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xj.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xj.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xj component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xj.saxon-configuration",
+      "type": "net.sf.saxon.Configuration",
+      "description": "To use a custom Saxon configuration. The option is a net.sf.saxon.Configuration type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.saxon-configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "To set custom Saxon configuration properties",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.saxon-extension-functions",
+      "type": "java.lang.String",
+      "description": "Allows you to use a custom net.sf.saxon.lib.ExtensionFunctionDefinition. You would need to add camel-saxon to the classpath. The function is looked up in the registry, where you can comma to separate multiple values to lookup.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.transformer-factory-class",
+      "type": "java.lang.String",
+      "description": "To use a custom XSLT transformer factory, specified as a FQN class name",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.transformer-factory-configuration-strategy",
+      "type": "org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy",
+      "description": "A configuration strategy to apply on freshly created instances of TransformerFactory. The option is a org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.uri-resolver",
+      "type": "javax.xml.transform.URIResolver",
+      "description": "To use a custom UriResolver. Should not be used together with the option 'uriResolverFactory'. The option is a javax.xml.transform.URIResolver type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xj.uri-resolver-factory",
+      "type": "org.apache.camel.component.xslt.XsltUriResolverFactory",
+      "description": "To use a custom UriResolver which depends on a dynamic endpoint resource URI. Should not be used together with the option 'uriResolver'. The option is a org.apache.camel.component.xslt.XsltUriResolverFactory type.",
+      "sourceType": "org.apache.camel.component.xj.springboot.XJComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xml-jaxp.json b/docs/components/modules/spring-boot/examples/json/xml-jaxp.json
new file mode 100644
index 0000000..67851b2
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xml-jaxp.json
@@ -0,0 +1,42 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.xtokenize",
+      "type": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xtokenize.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.xtokenize.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.xtokenize.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xtokenize language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xtokenize.mode",
+      "type": "java.lang.String",
+      "description": "The extraction mode. The available extraction modes are: i - injecting the contextual namespace bindings into the extracted token (default) w - wrapping the extracted token in its ancestor context u - unwrapping the extracted token to its child content t - extracting the text content of the specified element",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xtokenize.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.xtokenizer.springboot.XMLTokenizeLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xmlsecurity.json b/docs/components/modules/spring-boot/examples/json/xmlsecurity.json
new file mode 100644
index 0000000..a01600e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xmlsecurity.json
@@ -0,0 +1,457 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xmlsecurity-sign",
+      "type": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify",
+      "type": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.securexml",
+      "type": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xmlsecurity-sign.add-key-info-reference",
+      "type": "java.lang.Boolean",
+      "description": "In order to protect the KeyInfo element from tampering you can add a reference to the signed info element so that it is protected via the signature value. The default value is true. Only relevant when a KeyInfo is returned by KeyAccessor. and KeyInfo#getId() is not null.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.base-uri",
+      "type": "java.lang.String",
+      "description": "You can set a base URI which is used in the URI dereferencing. Relative URIs are then concatenated with the base URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.canonicalization-method",
+      "type": "javax.xml.crypto.AlgorithmMethod",
+      "description": "Canonicalization method used to canonicalize the SignedInfo element before the digest is calculated. You can use the helper methods XmlSignatureHelper.getCanonicalizationMethod(String algorithm) or getCanonicalizationMethod(String algorithm, List inclusiveNamespacePrefixes) to create a canonicalization method. The option is a javax.xml.crypto.AlgorithmMethod type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.clear-headers",
+      "type": "java.lang.Boolean",
+      "description": "Determines if the XML signature specific headers be cleared after signing and verification. Defaults to true.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.content-object-id",
+      "type": "java.lang.String",
+      "description": "Sets the content object Id attribute value. By default a UUID is generated. If you set the null value, then a new UUID will be generated. Only used in the enveloping case.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.content-reference-type",
+      "type": "java.lang.String",
+      "description": "Type of the content reference. The default value is null. This value can be overwritten by the header XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.content-reference-uri",
+      "type": "java.lang.String",
+      "description": "Reference URI for the content to be signed. Only used in the enveloped case. If the reference URI contains an ID attribute value, then the resource schema URI ( setSchemaResourceUri(String)) must also be set because the schema validator will then find out which attributes are ID attributes. Will be ignored in the enveloping or detached case.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.crypto-context-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets the crypto context properties. See {link XMLCryptoContext#setProperty(String, Object)}. Possible properties are defined in XMLSignContext an XMLValidateContext (see Supported Properties). The following properties are set by default to the value Boolean#TRUE for the XML validation. If you want to switch these features off you must set the property value to Boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.digest-algorithm",
+      "type": "java.lang.String",
+      "description": "Digest algorithm URI. Optional parameter. This digest algorithm is used for calculating the digest of the input message. If this digest algorithm is not specified then the digest algorithm is calculated from the signature algorithm. Example: http:\/\/www.w3.org\/2001\/04\/xmlenc#sha256",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.disallow-doctype-decl",
+      "type": "java.lang.Boolean",
+      "description": "Disallows that the incoming XML document contains DTD DOCTYPE declaration. The default value is Boolean#TRUE.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xmlsecurity-sign component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.key-accessor",
+      "type": "org.apache.camel.component.xmlsecurity.api.KeyAccessor",
+      "description": "For the signing process, a private key is necessary. You specify a key accessor bean which provides this private key. The key accessor bean must implement the KeyAccessor interface. The package org.apache.camel.component.xmlsecurity.api contains the default implementation class DefaultKeyAccessor which reads the private key from a Java keystore. The option is a org.apache.camel.component.xmlsecurity.api.KeyAccessor type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.omit-xml-declaration",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the XML declaration in the outgoing message body should be omitted. Default value is false. Can be overwritten by the header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.output-xml-encoding",
+      "type": "java.lang.String",
+      "description": "The character encoding of the resulting signed XML document. If null then the encoding of the original XML document is used.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.parent-local-name",
+      "type": "java.lang.String",
+      "description": "Local name of the parent element to which the XML signature element will be added. Only relevant for enveloped XML signature. Alternatively you can also use setParentXpath(XPathFilterParameterSpec). Default value is null. The value must be null for enveloping and detached XML signature. This parameter or the parameter setParentXpath(XPathFilterParameterSpec) for enveloped signature and the parameter setXpathsToIdAttributes(List) for detached signature must not be set in the same configuration. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.parent-namespace",
+      "type": "java.lang.String",
+      "description": "Namespace of the parent element to which the XML signature element will be added.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.parent-xpath",
+      "type": "javax.xml.crypto.dsig.spec.XPathFilterParameterSpec",
+      "description": "Sets the XPath to find the parent node in the enveloped case. Either you specify the parent node via this method or the local name and namespace of the parent with the methods setParentLocalName(String) and setParentNamespace(String). Default value is null. The value must be null for enveloping and detached XML signature. If the parameters parentXpath and parentLocalName are specified in the same configuration then an exception is thrown. The option is a javax.xml.crypto.dsig.spec.XPathFilterParameterSpec type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.plain-text",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the message body contains plain text. The default value is false, indicating that the message body contains XML. The value can be overwritten by the header XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.plain-text-encoding",
+      "type": "java.lang.String",
+      "description": "Encoding of the plain text. Only relevant if the message body is plain text (see parameter plainText. Default value is UTF-8.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": "UTF-8"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.prefix-for-xml-signature-namespace",
+      "type": "java.lang.String",
+      "description": "Namespace prefix for the XML signature namespace http:\/\/www.w3.org\/2000\/09\/xmldsig#. Default value is ds. If null or an empty value is set then no prefix is used for the XML signature namespace. See best practice http:\/\/www.w3.org\/TR\/xmldsig-bestpractices\/#signing-xml- without-namespaces",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": "ds"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.properties",
+      "type": "org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties",
+      "description": "For adding additional References and Objects to the XML signature which contain additional properties, you can provide a bean which implements the XmlSignatureProperties interface. The option is a org.apache.camel.component.xmlsecurity.api.XmlSignatureProperties type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.schema-resource-uri",
+      "type": "java.lang.String",
+      "description": "Classpath to the XML Schema. Must be specified in the detached XML Signature case for determining the ID attributes, might be set in the enveloped and enveloping case. If set, then the XML document is validated with the specified XML schema. The schema resource URI can be overwritten by the header XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.signature-algorithm",
+      "type": "java.lang.String",
+      "description": "Signature algorithm. Default value is http:\/\/www.w3.org\/2000\/09\/xmldsig#rsa-sha1.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration",
+      "defaultValue": "http:\/\/www.w3.org\/2001\/04\/xmldsig-more#rsa-sha256"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.signature-id",
+      "type": "java.lang.String",
+      "description": "Sets the signature Id. If this parameter is not set (null value) then a unique ID is generated for the signature ID (default). If this parameter is set to (empty string) then no Id attribute is created in the signature element.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.signer-configuration",
+      "type": "org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration",
+      "description": "To use a shared XmlSignerConfiguration configuration to use as base for configuring endpoints. The option is a org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.transform-methods",
+      "type": "java.util.List<javax.xml.crypto.AlgorithmMethod>",
+      "description": "Transforms which are executed on the message body before the digest is calculated. By default, C14n is added and in the case of enveloped signature (see option parentLocalName) also http:\/\/www.w3.org\/2000\/09\/xmldsig#enveloped-signature is added at position 0 of the list. Use methods in XmlSignatureHelper to create the transform methods.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.uri-dereferencer",
+      "type": "javax.xml.crypto.URIDereferencer",
+      "description": "If you want to restrict the remote access via reference URIs, you can set an own dereferencer. Optional parameter. If not set the provider default dereferencer is used which can resolve URI fragments, HTTP, file and XPpointer URIs. Attention: The implementation is provider dependent!. The option is a javax.xml.crypto.URIDereferencer type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-sign.xpaths-to-id-attributes",
+      "type": "java.util.List<javax.xml.crypto.dsig.spec.XPathFilterParameterSpec>",
+      "description": "Define the elements which are signed in the detached case via XPATH expressions to ID attributes (attributes of type ID). For each element found via the XPATH expression a detached signature is created whose reference URI contains the corresponding attribute value (preceded by '#'). The signature becomes the last sibling of the signed element. Elements with deeper hierarchy level are signed first. You can also set the XPATH list dynamically via the header XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES. The parameter setParentLocalName(String) or setParentXpath(XPathFilterParameterSpec) for enveloped signature and this parameter for detached signature must not be set in the same configuration.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlSignerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.base-uri",
+      "type": "java.lang.String",
+      "description": "You can set a base URI which is used in the URI dereferencing. Relative URIs are then concatenated with the base URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.clear-headers",
+      "type": "java.lang.Boolean",
+      "description": "Determines if the XML signature specific headers be cleared after signing and verification. Defaults to true.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.crypto-context-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Sets the crypto context properties. See {link XMLCryptoContext#setProperty(String, Object)}. Possible properties are defined in XMLSignContext an XMLValidateContext (see Supported Properties). The following properties are set by default to the value Boolean#TRUE for the XML validation. If you want to switch these features off you must set the property value to Boolean#FALSE. org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.disallow-doctype-decl",
+      "type": "java.lang.Boolean",
+      "description": "Disallows that the incoming XML document contains DTD DOCTYPE declaration. The default value is Boolean#TRUE.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xmlsecurity-verify component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.key-selector",
+      "type": "javax.xml.crypto.KeySelector",
+      "description": "Provides the key for validating the XML signature. The option is a javax.xml.crypto.KeySelector type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.omit-xml-declaration",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the XML declaration in the outgoing message body should be omitted. Default value is false. Can be overwritten by the header XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.output-node-search",
+      "type": "java.lang.Object",
+      "description": "Sets the output node search value for determining the node from the XML signature document which shall be set to the output message body. The class of the value depends on the type of the output node search. The output node search is forwarded to XmlSignature2Message. The option is a java.lang.Object type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.output-node-search-type",
+      "type": "java.lang.String",
+      "description": "Determines the search type for determining the output node which is serialized into the output message bodyF. See setOutputNodeSearch(Object). The supported default search types you can find in DefaultXmlSignature2Message.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": "Default"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.output-xml-encoding",
+      "type": "java.lang.String",
+      "description": "The character encoding of the resulting signed XML document. If null then the encoding of the original XML document is used.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.remove-signature-elements",
+      "type": "java.lang.Boolean",
+      "description": "Indicator whether the XML signature elements (elements with local name Signature and namesapce http:\/\/www.w3.org\/2000\/09\/xmldsig#) shall be removed from the document set to the output message. Normally, this is only necessary, if the XML signature is enveloped. The default value is Boolean#FALSE. This parameter is forwarded to XmlSignature2Message. This indicator has no effect if the output node search is of type DefaultXmlSignature2Message#OUTPUT_NODE_SEARCH_TYPE_DEFAULT.F",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.schema-resource-uri",
+      "type": "java.lang.String",
+      "description": "Classpath to the XML Schema. Must be specified in the detached XML Signature case for determining the ID attributes, might be set in the enveloped and enveloping case. If set, then the XML document is validated with the specified XML schema. The schema resource URI can be overwritten by the header XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.secure-validation",
+      "type": "java.lang.Boolean",
+      "description": "Enables secure validation. If true then secure validation is enabled.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.uri-dereferencer",
+      "type": "javax.xml.crypto.URIDereferencer",
+      "description": "If you want to restrict the remote access via reference URIs, you can set an own dereferencer. Optional parameter. If not set the provider default dereferencer is used which can resolve URI fragments, HTTP, file and XPpointer URIs. Attention: The implementation is provider dependent!. The option is a javax.xml.crypto.URIDereferencer type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.validation-failed-handler",
+      "type": "org.apache.camel.component.xmlsecurity.api.ValidationFailedHandler",
+      "description": "Handles the different validation failed situations. The default implementation throws specific exceptions for the different situations (All exceptions have the package name org.apache.camel.component.xmlsecurity.api and are a sub-class of XmlSignatureInvalidException. If the signature value validation fails, a XmlSignatureInvalidValueException is thrown. If a reference validation fails, a XmlSignatureInvalidContentHashException is thrown. For more detailed information, see the JavaDoc. The option is a org.apache.camel.component.xmlsecurity.api.ValidationFailedHandler type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.verifier-configuration",
+      "type": "org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration",
+      "description": "To use a shared XmlVerifierConfiguration configuration to use as base for configuring endpoints. The option is a org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.xml-signature-checker",
+      "type": "org.apache.camel.component.xmlsecurity.api.XmlSignatureChecker",
+      "description": "This interface allows the application to check the XML signature before the validation is executed. This step is recommended in http:\/\/www.w3.org\/TR\/xmldsig-bestpractices\/#check-what-is-signed. The option is a org.apache.camel.component.xmlsecurity.api.XmlSignatureChecker type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmlsecurity-verify.xml-signature2-message",
+      "type": "org.apache.camel.component.xmlsecurity.api.XmlSignature2Message",
+      "description": "Bean which maps the XML signature to the output-message after the validation. How this mapping should be done can be configured by the options outputNodeSearchType, outputNodeSearch, and removeSignatureElements. The default implementation offers three possibilities which are related to the three output node search types Default, ElementName, and XPath. The default implementation determines a node which is then serialized and set to the body of the output message If the search type is ElementName then the output node (which must be in this case an element) is determined by the local name and namespace defined in the search value (see option outputNodeSearch). If the search type is XPath then the output node is determined by the XPath specified in the search value (in this case the output node can be of type Element, TextNode or Document). If the output node search type is Default then the following rules apply: In the enveloped XML signature case (there is a reference with URI= and transform http:\/\/www.w3.org\/2000\/09\/xmldsig#enveloped-signature), the incoming XML document without the Signature element is set to the output message body. In the non-enveloped XML signature case, the message body is determined from a referenced Object; this is explained in more detail in chapter Output Node Determination in Enveloping XML Signature Case. The option is a org.apache.camel.component.xmlsecurity.api.XmlSignature2Message type.",
+      "sourceType": "org.apache.camel.component.xmlsecurity.springboot.XmlVerifierComponentConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.add-key-value-for-encrypted-key",
+      "type": "java.lang.Boolean",
+      "description": "Whether to add the public key used to encrypt the session key as a KeyValue in the EncryptedKey structure or not.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.securexml.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.securexml.digest-algorithm",
+      "type": "java.lang.String",
+      "description": "The digest algorithm to use with the RSA OAEP algorithm. The available choices are: XMLCipher.SHA1 XMLCipher.SHA256 XMLCipher.SHA512 The default value is XMLCipher.SHA1",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "SHA1"
+    },
+    {
+      "name": "camel.dataformat.securexml.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the secureXML data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.key-cipher-algorithm",
+      "type": "java.lang.String",
+      "description": "The cipher algorithm to be used for encryption\/decryption of the asymmetric key. The available choices are: XMLCipher.RSA_v1dot5 XMLCipher.RSA_OAEP XMLCipher.RSA_OAEP_11 The default value is XMLCipher.RSA_OAEP",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "RSA_OAEP"
+    },
+    {
+      "name": "camel.dataformat.securexml.key-or-trust-store-parameters-ref",
+      "type": "java.lang.String",
+      "description": "Refers to a KeyStore instance to lookup in the registry, which is used for configuration options for creating and loading a KeyStore instance that represents the sender's trustStore or recipient's keyStore.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.key-password",
+      "type": "java.lang.String",
+      "description": "The password to be used for retrieving the private key from the KeyStore. This key is used for asymmetric decryption.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.mgf-algorithm",
+      "type": "java.lang.String",
+      "description": "The MGF Algorithm to use with the RSA OAEP algorithm. The available choices are: EncryptionConstants.MGF1_SHA1 EncryptionConstants.MGF1_SHA256 EncryptionConstants.MGF1_SHA512 The default value is EncryptionConstants.MGF1_SHA1",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "MGF1_SHA1"
+    },
+    {
+      "name": "camel.dataformat.securexml.pass-phrase",
+      "type": "java.lang.String",
+      "description": "A String used as passPhrase to encrypt\/decrypt content. The passPhrase has to be provided. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using TRIPLEDES the passPhase can be a Only another 24 Byte key",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.pass-phrase-byte",
+      "type": "java.lang.Byte[]",
+      "description": "A byte used as passPhrase to encrypt\/decrypt content. The passPhrase has to be provided. The passPhrase needs to be put together in conjunction with the appropriate encryption algorithm. For example using TRIPLEDES the passPhase can be a Only another 24 Byte key",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.recipient-key-alias",
+      "type": "java.lang.String",
+      "description": "The key alias to be used when retrieving the recipient's public or private key from a KeyStore when performing asymmetric key encryption or decryption.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.secure-tag",
+      "type": "java.lang.String",
+      "description": "The XPath reference to the XML Element selected for encryption\/decryption. If no tag is specified, the entire payload is encrypted\/decrypted.",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.securexml.secure-tag-contents",
+      "type": "java.lang.Boolean",
+      "description": "A boolean value to specify whether the XML Element is to be encrypted or the contents of the XML Element false = Element Level true = Element Content Level",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.securexml.xml-cipher-algorithm",
+      "type": "java.lang.String",
+      "description": "The cipher algorithm to be used for encryption\/decryption of the XML message content. The available choices are: XMLCipher.TRIPLEDES XMLCipher.AES_128 XMLCipher.AES_128_GCM XMLCipher.AES_192 XMLCipher.AES_192_GCM XMLCipher.AES_256 XMLCipher.AES_256_GCM XMLCipher.SEED_128 XMLCipher.CAMELLIA_128 XMLCipher.CAMELLIA_192 XMLCipher.CAMELLIA_256 The default value is XMLCipher.AES_256_GCM",
+      "sourceType": "org.apache.camel.dataformat.xmlsecurity.springboot.XMLSecurityDataFormatConfiguration",
+      "defaultValue": "AES-256-GCM"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xmpp.json b/docs/components/modules/spring-boot/examples/json/xmpp.json
new file mode 100644
index 0000000..4d48851
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xmpp.json
@@ -0,0 +1,50 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xmpp",
+      "type": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmpp.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xmpp.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xmpp.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xmpp.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xmpp.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xmpp component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xmpp.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xmpp.springboot.XmppComponentConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xpath.json b/docs/components/modules/spring-boot/examples/json/xpath.json
new file mode 100644
index 0000000..bd902dd
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xpath.json
@@ -0,0 +1,82 @@
+{
+  "groups": [
+    {
+      "name": "camel.language.xpath",
+      "type": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.customizer",
+      "type": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.language.xpath.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.LanguageConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.language.xpath.document-type",
+      "type": "java.lang.String",
+      "description": "Name of class for document type The default value is org.w3c.dom.Document",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xpath language. This is enabled by default.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.factory-ref",
+      "type": "java.lang.String",
+      "description": "References to a custom XPathFactory to lookup in the registry",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.log-namespaces",
+      "type": "java.lang.Boolean",
+      "description": "Whether to log namespaces which can assist during trouble shooting",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.xpath.object-model",
+      "type": "java.lang.String",
+      "description": "The XPath object model to use",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration"
+    },
+    {
+      "name": "camel.language.xpath.pre-compile",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable pre-compiling the xpath expression during initialization phase. pre-compile is enabled by default. This can be used to turn off, for example in cases the compilation phase is desired at the starting phase, such as if the application is ahead of time compiled (for example with camel-quarkus) which would then load the xpath factory of the built operating system, and not a JVM runtime.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.language.xpath.saxon",
+      "type": "java.lang.Boolean",
+      "description": "Whether to use Saxon.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.xpath.thread-safety",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable thread-safety for the returned result of the xpath expression. This applies to when using NODESET as the result type, and the returned set has multiple elements. In this situation there can be thread-safety issues if you process the NODESET concurrently such as from a Camel Splitter EIP in parallel processing mode. This option prevents concurrency issues by doing defensive copies of the nodes. It is recommended to turn this option on if you are using camel-saxon or Saxon in your application. Saxon has thread-safety issues which can be prevented by turning this option on.",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.language.xpath.trim",
+      "type": "java.lang.Boolean",
+      "description": "Whether to trim the value to remove leading and trailing whitespaces and line breaks",
+      "sourceType": "org.apache.camel.language.xpath.springboot.XPathLanguageConfiguration",
+      "defaultValue": true
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xslt-saxon.json b/docs/components/modules/spring-boot/examples/json/xslt-saxon.json
new file mode 100644
index 0000000..af846d1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xslt-saxon.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xslt-saxon",
+      "type": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xslt-saxon.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt-saxon.content-cache",
+      "type": "java.lang.Boolean",
+      "description": "Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt-saxon.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xslt-saxon.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xslt-saxon component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xslt-saxon.saxon-configuration",
+      "type": "net.sf.saxon.Configuration",
+      "description": "To use a custom Saxon configuration. The option is a net.sf.saxon.Configuration type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.saxon-configuration-properties",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "To set custom Saxon configuration properties",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.saxon-extension-functions",
+      "type": "java.lang.String",
+      "description": "Allows you to use a custom net.sf.saxon.lib.ExtensionFunctionDefinition. You would need to add camel-saxon to the classpath. The function is looked up in the registry, where you can comma to separate multiple values to lookup.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.transformer-factory-class",
+      "type": "java.lang.String",
+      "description": "To use a custom XSLT transformer factory, specified as a FQN class name",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.transformer-factory-configuration-strategy",
+      "type": "org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy",
+      "description": "A configuration strategy to apply on freshly created instances of TransformerFactory. The option is a org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.uri-resolver",
+      "type": "javax.xml.transform.URIResolver",
+      "description": "To use a custom UriResolver. Should not be used together with the option 'uriResolverFactory'. The option is a javax.xml.transform.URIResolver type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt-saxon.uri-resolver-factory",
+      "type": "org.apache.camel.component.xslt.XsltUriResolverFactory",
+      "description": "To use a custom UriResolver which depends on a dynamic endpoint resource URI. Should not be used together with the option 'uriResolver'. The option is a org.apache.camel.component.xslt.XsltUriResolverFactory type.",
+      "sourceType": "org.apache.camel.component.xslt.saxon.springboot.XsltSaxonComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xslt.json b/docs/components/modules/spring-boot/examples/json/xslt.json
new file mode 100644
index 0000000..1e29a41
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xslt.json
@@ -0,0 +1,74 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.xslt",
+      "type": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.xslt.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt.content-cache",
+      "type": "java.lang.Boolean",
+      "description": "Cache for the resource content (the stylesheet file) when it is loaded. If set to false Camel will reload the stylesheet file on each message processing. This is good for development. A cached stylesheet can be forced to reload at runtime via JMX using the clearCachedStylesheet operation.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.xslt.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.xslt.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xslt component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.xslt.transformer-factory-class",
+      "type": "java.lang.String",
+      "description": "To use a custom XSLT transformer factory, specified as a FQN class name",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.transformer-factory-configuration-strategy",
+      "type": "org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy",
+      "description": "A configuration strategy to apply on freshly created instances of TransformerFactory. The option is a org.apache.camel.component.xslt.TransformerFactoryConfigurationStrategy type.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.uri-resolver",
+      "type": "javax.xml.transform.URIResolver",
+      "description": "To use a custom UriResolver. Should not be used together with the option 'uriResolverFactory'. The option is a javax.xml.transform.URIResolver type.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    },
+    {
+      "name": "camel.component.xslt.uri-resolver-factory",
+      "type": "org.apache.camel.component.xslt.XsltUriResolverFactory",
+      "description": "To use a custom UriResolver which depends on a dynamic endpoint resource URI. Should not be used together with the option 'uriResolver'. The option is a org.apache.camel.component.xslt.XsltUriResolverFactory type.",
+      "sourceType": "org.apache.camel.component.xslt.springboot.XsltComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/xstream.json b/docs/components/modules/spring-boot/examples/json/xstream.json
new file mode 100644
index 0000000..51127f4
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/xstream.json
@@ -0,0 +1,121 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.json-xstream",
+      "type": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-xstream.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.xstream",
+      "type": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.json-xstream.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.json-xstream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.json-xstream.drop-root-node",
+      "type": "java.lang.Boolean",
+      "description": "Whether XStream will drop the root node in the generated JSon. You may want to enable this when using POJOs; as then the written object will include the class name as root node, which is often not intended to be written in the JSON output.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.json-xstream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the json-xstream data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.json-xstream.pretty-print",
+      "type": "java.lang.Boolean",
+      "description": "To enable pretty printing output nicely formatted. Is by default false.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.JsonDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.xstream.aliases",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "Alias a Class to a shorter name to be used in XML elements.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.content-type-header",
+      "type": "java.lang.Boolean",
+      "description": "Whether the data format should set the Content-Type header with the type from the data format. For example application\/xml for data formats marshalling to XML, or application\/json for data formats marshalling to JSON",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.dataformat.xstream.converters",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "List of class names for using custom XStream converters. The classes must be of type com.thoughtworks.xstream.converters.Converter",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.xstream.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the xstream data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.encoding",
+      "type": "java.lang.String",
+      "description": "Sets the encoding to use",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.implicit-collections",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "Adds a default implicit collection which is used for any unmapped XML tag. Multiple values can be separated by comma.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.mode",
+      "type": "java.lang.String",
+      "description": "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",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.omit-fields",
+      "type": "java.util.List<org.apache.camel.model.PropertyDefinition>",
+      "description": "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. Multiple values can be separated by comma.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.xstream.permissions",
+      "type": "java.lang.String",
+      "description": "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 specify com.foo.. Multiple permissions can be configured separated by comma, such as com.foo.,-com.foo.bar.MySecretBean. The following default permission is always included: -,java.lang.,java.util. unless its overridden by specifying a JVM system property with they key org.apache.camel.xstream.permissions.",
+      "sourceType": "org.apache.camel.dataformat.xstream.springboot.XStreamDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/yammer.json b/docs/components/modules/spring-boot/examples/json/yammer.json
new file mode 100644
index 0000000..bba68a1
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/yammer.json
@@ -0,0 +1,127 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.yammer",
+      "type": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.yammer.access-token",
+      "type": "java.lang.String",
+      "description": "The access token",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.yammer.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.yammer.configuration",
+      "type": "org.apache.camel.component.yammer.YammerConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.yammer.YammerConfiguration type.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.consumer-key",
+      "type": "java.lang.String",
+      "description": "The consumer key",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.consumer-secret",
+      "type": "java.lang.String",
+      "description": "The consumer secret",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.yammer.delay",
+      "type": "java.lang.Long",
+      "description": "Delay between polling in millis. The option is a long type.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.yammer.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the yammer component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.yammer.limit",
+      "type": "java.lang.Integer",
+      "description": "Return only the specified number of messages. Works for threaded set to true and threaded set to extended.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.yammer.newer-than",
+      "type": "java.lang.Long",
+      "description": "Returns messages newer than the message ID specified as a numeric string. This should be used when polling for new messages. If you're looking at messages, and the most recent message returned is 3516, you can make a request with the parameter newerThan equals to 3516 to ensure that you do not get duplicate copies of messages already on your page.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.yammer.older-than",
+      "type": "java.lang.Long",
+      "description": "Returns messages older than the message ID specified as a numeric string. This is useful for paginating messages. For example, if you're currently viewing 20 messages and the oldest is number 2912, you could append olderThan equals to 2912 to your request to get the 20 messages prior to those you're seeing.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.component.yammer.requestor",
+      "type": "org.apache.camel.component.yammer.ApiRequestor",
+      "description": "To use a specific requester to communicate with Yammer. The option is a org.apache.camel.component.yammer.ApiRequestor type.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.threaded",
+      "type": "java.lang.String",
+      "description": "threaded equals to true will only return the first message in each thread. This parameter is intended for apps which display message threads collapsed. threaded equals to extended will return the thread starter messages in order of most recently active as well as the two most recent messages, as they are viewed in the default view on the Yammer web interface.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    },
+    {
+      "name": "camel.component.yammer.use-json",
+      "type": "java.lang.Boolean",
+      "description": "Set to true if you want to use raw JSON rather than converting to POJOs.",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.yammer.user-id",
+      "type": "java.lang.String",
+      "description": "The user id",
+      "sourceType": "org.apache.camel.component.yammer.springboot.YammerComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/zendesk.json b/docs/components/modules/spring-boot/examples/json/zendesk.json
new file mode 100644
index 0000000..adad7ed
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/zendesk.json
@@ -0,0 +1,92 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.zendesk",
+      "type": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.zendesk.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zendesk.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zendesk.configuration",
+      "type": "org.apache.camel.component.zendesk.ZendeskConfiguration",
+      "description": "Component configuration. The option is a org.apache.camel.component.zendesk.ZendeskConfiguration type.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.zendesk.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zendesk component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zendesk.oauth-token",
+      "type": "java.lang.String",
+      "description": "The OAuth token.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.password",
+      "type": "java.lang.String",
+      "description": "The password.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.server-url",
+      "type": "java.lang.String",
+      "description": "The server URL to connect.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.token",
+      "type": "java.lang.String",
+      "description": "The security token.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.username",
+      "type": "java.lang.String",
+      "description": "The user name.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zendesk.zendesk",
+      "type": "org.zendesk.client.v2.Zendesk",
+      "description": "To use a shared Zendesk instance. The option is a org.zendesk.client.v2.Zendesk type.",
+      "sourceType": "org.apache.camel.component.zendesk.springboot.ZendeskComponentConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/zip-deflater.json b/docs/components/modules/spring-boot/examples/json/zip-deflater.json
new file mode 100644
index 0000000..1f19811
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/zip-deflater.json
@@ -0,0 +1,58 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.gzipdeflater",
+      "type": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.gzipdeflater.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater",
+      "type": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.gzipdeflater.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.gzipdeflater.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the gzipdeflater data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.GzipDeflaterDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.compression-level",
+      "type": "java.lang.Integer",
+      "description": "To specify a specific compression between 0-9. -1 is default compression, 0 is no compression, and 9 is best compression.",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration",
+      "defaultValue": -1
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.zipdeflater.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zipdeflater data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.deflater.springboot.ZipDeflaterDataFormatConfiguration"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/zipfile.json b/docs/components/modules/spring-boot/examples/json/zipfile.json
new file mode 100644
index 0000000..0b8c30c
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/zipfile.json
@@ -0,0 +1,57 @@
+{
+  "groups": [
+    {
+      "name": "camel.dataformat.zipfile",
+      "type": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipfile.customizer",
+      "type": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.dataformat.zipfile.allow-empty-directory",
+      "type": "java.lang.Boolean",
+      "description": "If the zip file has more then one entry, setting this option to true, allows to get the iterator even if the directory is empty",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.zipfile.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.DataFormatConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.dataformat.zipfile.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zipfile data format. This is enabled by default.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration"
+    },
+    {
+      "name": "camel.dataformat.zipfile.max-decompressed-size",
+      "type": "java.lang.Long",
+      "description": "Set the maximum decompressed size of a zip file (in bytes). The default value if not specified corresponds to 1 gigabyte. An IOException will be thrown if the decompressed size exceeds this amount. Set to -1 to disable setting a maximum decompressed size.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": 1073741824
+    },
+    {
+      "name": "camel.dataformat.zipfile.preserve-path-elements",
+      "type": "java.lang.Boolean",
+      "description": "If the file name contains path elements, setting this option to true, allows the path to be maintained in the zip file.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.dataformat.zipfile.using-iterator",
+      "type": "java.lang.Boolean",
+      "description": "If the zip file has more then one entry, the setting this option to true, allows to work with the splitter EIP, to split the data using an iterator in a streaming mode.",
+      "sourceType": "org.apache.camel.dataformat.zipfile.springboot.ZipFileDataFormatConfiguration",
+      "defaultValue": false
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/zipkin.json b/docs/components/modules/spring-boot/examples/json/zipkin.json
new file mode 100644
index 0000000..de37ce48
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/zipkin.json
@@ -0,0 +1,76 @@
+{
+  "groups": [
+    {
+      "name": "camel.zipkin",
+      "type": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.zipkin.client-service-mappings",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets client service mapping(s) that matches Camel events to the given zipkin service name. The key is the pattern, the value is the service name.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.endpoint",
+      "type": "java.lang.String",
+      "description": "Sets the POST URL for zipkin's <a href=\"http:\/\/zipkin.io\/zipkin-api\/#\/\">v2 api<\/a>, usually \"http:\/\/zipkinhost:9411\/api\/v2\/spans\"",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.exclude-patterns",
+      "type": "java.util.Set<java.lang.String>",
+      "description": "Sets exclude pattern(s) that will disable tracing with zipkin for Camel messages that matches the pattern.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.host-name",
+      "type": "java.lang.String",
+      "description": "Sets the hostname if sending spans to a remote zipkin scribe (thrift RPC) collector.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.include-message-body",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include the Camel message body in the zipkin traces. This is not recommended for production usage, or when having big payloads. You can limit the size by configuring camel.springboot.log-debug-max-chars option.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.zipkin.include-message-body-streams",
+      "type": "java.lang.Boolean",
+      "description": "Whether to include message bodies that are stream based in the zipkin traces. This is not recommended for production usage, or when having big payloads. You can limit the size by configuring camel.springboot.log-debug-max-chars option.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.zipkin.port",
+      "type": "java.lang.Integer",
+      "description": "Sets the port if sending spans to a remote zipkin scribe (thrift RPC) collector.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.zipkin.rate",
+      "type": "java.lang.Float",
+      "description": "Configures a rate that decides how many events should be traced by zipkin. The rate is expressed as a percentage (1.0f = 100%, 0.5f is 50%, 0.1f is 10%).",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties",
+      "defaultValue": 1
+    },
+    {
+      "name": "camel.zipkin.server-service-mappings",
+      "type": "java.util.Map<java.lang.String,java.lang.String>",
+      "description": "Sets server service mapping(s) that matches Camel events to the given zipkin service name. The key is the pattern, the value is the service name.",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    },
+    {
+      "name": "camel.zipkin.service-name",
+      "type": "java.lang.String",
+      "description": "To use a global service name that matches all Camel events",
+      "sourceType": "org.apache.camel.zipkin.starter.ZipkinConfigurationProperties"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/zookeeper-master.json b/docs/components/modules/spring-boot/examples/json/zookeeper-master.json
new file mode 100644
index 0000000..b024032
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/zookeeper-master.json
@@ -0,0 +1,82 @@
+{
+  "groups": [
+    {
+      "name": "camel.component.zookeeper-master",
+      "type": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.component.zookeeper-master.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zookeeper-master.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper-master.container-id-factory",
+      "type": "org.apache.camel.component.zookeepermaster.ContainerIdFactory",
+      "description": "To use a custom ContainerIdFactory for creating container ids. The option is a org.apache.camel.component.zookeepermaster.ContainerIdFactory type.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.curator",
+      "type": "org.apache.curator.framework.CuratorFramework",
+      "description": "To use a custom configured CuratorFramework as connection to zookeeper ensemble. The option is a org.apache.curator.framework.CuratorFramework type.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.zookeeper-master.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zookeeper-master component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.maximum-connection-timeout",
+      "type": "java.lang.Integer",
+      "description": "Timeout in millis to use when connecting to the zookeeper ensemble",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": 10000
+    },
+    {
+      "name": "camel.component.zookeeper-master.zk-root",
+      "type": "java.lang.String",
+      "description": "The root path to use in zookeeper where information is stored which nodes are master\/slave etc. Will by default use: \/camel\/zookeepermaster\/clusters\/master",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": "\/camel\/zookeepermaster\/clusters\/master"
+    },
+    {
+      "name": "camel.component.zookeeper-master.zoo-keeper-password",
+      "type": "java.lang.String",
+      "description": "The password to use when connecting to the zookeeper ensemble",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper-master.zoo-keeper-url",
+      "type": "java.lang.String",
+      "description": "The url for the zookeeper ensemble",
+      "sourceType": "org.apache.camel.component.zookeepermaster.springboot.MasterComponentConfiguration",
+      "defaultValue": "localhost:2181"
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file
diff --git a/docs/components/modules/spring-boot/examples/json/zookeeper.json b/docs/components/modules/spring-boot/examples/json/zookeeper.json
new file mode 100644
index 0000000..e30fb4e
--- /dev/null
+++ b/docs/components/modules/spring-boot/examples/json/zookeeper.json
@@ -0,0 +1,399 @@
+{
+  "groups": [
+    {
+      "name": "camel.cloud.zookeeper",
+      "type": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper",
+      "type": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper",
+      "type": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.customizer",
+      "type": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "sourceMethod": "getCustomizer()"
+    }
+  ],
+  "properties": [
+    {
+      "name": "camel.cloud.zookeeper.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.auth-info-list",
+      "type": "java.util.List<org.apache.curator.framework.AuthInfo>",
+      "description": "List of AuthInfo objects with scheme and auth.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.base-path",
+      "type": "java.lang.String",
+      "description": "The base path to store in ZooKeeper.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.connection-timeout",
+      "type": "java.lang.Long",
+      "description": "Connection timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 15000
+    },
+    {
+      "name": "camel.cloud.zookeeper.connection-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Connection timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.curator-framework",
+      "type": "org.apache.curator.framework.CuratorFramework",
+      "description": "Zookeeper CuratorFramework-style client.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.deregister-services-on-stop",
+      "type": "java.lang.Boolean",
+      "description": "Should we remove all the registered services know by this registry on stop ?  Default is true.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.zookeeper.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the zookeeper service registry should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cloud.zookeeper.id",
+      "type": "java.lang.String",
+      "description": "Service Registry ID",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.max-close-wait",
+      "type": "java.lang.Long",
+      "description": "Time to wait during close to join background threads.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.cloud.zookeeper.max-close-wait-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "MaxCloseWait TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.namespace",
+      "type": "java.lang.String",
+      "description": "ZooKeeper namespace. If a namespace is set here, all paths will get pre-pended with the namespace.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.nodes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The Zookeeper server hosts (multiple servers can be separated by comma).",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.override-service-host",
+      "type": "java.lang.Boolean",
+      "description": "Should we override the service host if given ?  Default is true.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-base-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Initial amount of time to wait between retries.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-base-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectBaseSleepTime TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-max-retries",
+      "type": "java.lang.Integer",
+      "description": "Max number of times to retry.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 3
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-max-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Max time to sleep on each retry. Default is Integer.MAX_VALUE.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.reconnect-max-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectMaxSleepTimeUnit TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.retry-policy",
+      "type": "org.apache.curator.RetryPolicy",
+      "description": "Retry policy to use.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.service-host",
+      "type": "java.lang.String",
+      "description": "Service host.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cloud.zookeeper.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.cloud.zookeeper.session-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Session timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cloud.ZooKeeperServiceRegistryConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.attributes",
+      "type": "java.util.Map<java.lang.String,java.lang.Object>",
+      "description": "Custom service attributes.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.auth-info-list",
+      "type": "java.util.List<org.apache.curator.framework.AuthInfo>",
+      "description": "List of AuthInfo objects with scheme and auth.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.base-path",
+      "type": "java.lang.String",
+      "description": "The base path to store in ZooKeeper.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.connection-timeout",
+      "type": "java.lang.Long",
+      "description": "Connection timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 15000
+    },
+    {
+      "name": "camel.cluster.zookeeper.connection-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Connection timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.curator-framework",
+      "type": "org.apache.curator.framework.CuratorFramework",
+      "description": "Zookeeper CuratorFramework-style client.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Sets if the zookeeper cluster service should be enabled or not, default is false.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.cluster.zookeeper.id",
+      "type": "java.lang.String",
+      "description": "Cluster Service ID",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.max-close-wait",
+      "type": "java.lang.Long",
+      "description": "Time to wait during close to join background threads.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 1000
+    },
+    {
+      "name": "camel.cluster.zookeeper.max-close-wait-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "MaxCloseWait TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.namespace",
+      "type": "java.lang.String",
+      "description": "ZooKeeper namespace. If a namespace is set here, all paths will get pre-pended with the namespace.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.nodes",
+      "type": "java.util.List<java.lang.String>",
+      "description": "The Zookeeper server hosts (multiple servers can be separated by comma).",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.order",
+      "type": "java.lang.Integer",
+      "description": "Service lookup order\/priority.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-base-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Initial amount of time to wait between retries.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 0
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-base-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectBaseSleepTime TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-max-retries",
+      "type": "java.lang.Integer",
+      "description": "Max number of times to retry.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 3
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-max-sleep-time",
+      "type": "java.lang.Long",
+      "description": "Max time to sleep on each retry. Default is Integer.MAX_VALUE.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.reconnect-max-sleep-time-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "ReconnectMaxSleepTimeUnit TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.retry-policy",
+      "type": "org.apache.curator.RetryPolicy",
+      "description": "Retry policy to use.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.cluster.zookeeper.session-timeout",
+      "type": "java.lang.Long",
+      "description": "Session timeout.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration",
+      "defaultValue": 60000
+    },
+    {
+      "name": "camel.cluster.zookeeper.session-timeout-unit",
+      "type": "java.util.concurrent.TimeUnit",
+      "description": "Session timeout TimeUnit. Default is TimeUnit.MILLISECONDS.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.cluster.ZooKeeperClusterServiceConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.autowired-enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zookeeper.backoff",
+      "type": "java.lang.Long",
+      "description": "The time interval to backoff for after an error before retrying.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": 5000
+    },
+    {
+      "name": "camel.component.zookeeper.bridge-error-handler",
+      "type": "java.lang.Boolean",
+      "description": "Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.configuration",
+      "type": "org.apache.camel.component.zookeeper.ZooKeeperConfiguration",
+      "description": "To use a shared ZooKeeperConfiguration. The option is a org.apache.camel.component.zookeeper.ZooKeeperConfiguration type.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.create",
+      "type": "java.lang.Boolean",
+      "description": "Should the endpoint create the node if it does not currently exist.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.create-mode",
+      "type": "java.lang.String",
+      "description": "The create mode that should be used for the newly created node",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": "EPHEMERAL"
+    },
+    {
+      "name": "camel.component.zookeeper.customizer.enabled",
+      "type": "java.lang.Boolean",
+      "sourceType": "org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon$CustomizerProperties"
+    },
+    {
+      "name": "camel.component.zookeeper.enabled",
+      "type": "java.lang.Boolean",
+      "description": "Whether to enable auto configuration of the zookeeper component. This is enabled by default.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration"
+    },
+    {
+      "name": "camel.component.zookeeper.lazy-start-producer",
+      "type": "java.lang.Boolean",
+      "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.list-children",
+      "type": "java.lang.Boolean",
+      "description": "Whether the children of the node should be listed",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.repeat",
+      "type": "java.lang.Boolean",
+      "description": "Should changes to the znode be 'watched' and repeatedly processed.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": false
+    },
+    {
+      "name": "camel.component.zookeeper.send-empty-message-on-delete",
+      "type": "java.lang.Boolean",
+      "description": "Upon the delete of a znode, should an empty message be send to the consumer",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": true
+    },
+    {
+      "name": "camel.component.zookeeper.timeout",
+      "type": "java.lang.Integer",
+      "description": "The time interval to wait on connection before timing out.",
+      "sourceType": "org.apache.camel.component.zookeeper.springboot.ZooKeeperComponentConfiguration",
+      "defaultValue": 5000
+    }
+  ],
+  "hints": []
+}
\ No newline at end of file