You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/11/16 15:06:58 UTC

[camel-spring-boot] branch master updated (eb3adda -> 8392067)

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

davsclaus pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git.


    from eb3adda  Camel-Jbpm test aligned
     new 850a26b  CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
     new afe820e  CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
     new 080ed8d  CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
     new e5afb3e  CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
     new 3db0e0d  CAMEL-15766: Regen
     new 8392067  regen

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../springboot/catalog/components/aws2-ecs.json    |   6 +-
 .../springboot/catalog/components/aws2-eks.json    |   6 +-
 .../ActiveMQComponentAutoConfiguration.java        |  11 +-
 .../springboot/ActiveMQComponentConverter.java     |  97 +++
 .../springboot/AhcComponentAutoConfiguration.java  |  11 +-
 .../ahc/springboot/AhcComponentConverter.java      |  71 +++
 .../springboot/WsComponentAutoConfiguration.java   |  11 +-
 .../ahc/ws/springboot/WsComponentConverter.java    |  71 +++
 .../springboot/AMQPComponentAutoConfiguration.java |  11 +-
 .../amqp/springboot/AMQPComponentConverter.java    |  97 +++
 .../Any23DataFormatAutoConfiguration.java          |   9 +-
 .../springboot/ApnsComponentAutoConfiguration.java |  11 +-
 .../apns/springboot/ApnsComponentConverter.java    |  63 ++
 .../ArangoDbComponentAutoConfiguration.java        |  11 +-
 .../springboot/ArangoDbComponentConverter.java     |  65 ++
 .../springboot/AS2ComponentAutoConfiguration.java  |  11 +-
 .../as2/springboot/AS2ComponentConverter.java      |  63 ++
 .../ASN1DataFormatAutoConfiguration.java           |   9 +-
 .../AsteriskComponentAutoConfiguration.java        |   9 +-
 .../AtlasMapComponentAutoConfiguration.java        |  11 +-
 .../springboot/AtlasMapComponentConverter.java     |  63 ++
 .../AtmosComponentAutoConfiguration.java           |   9 +-
 .../WebsocketComponentAutoConfiguration.java       |  11 +-
 .../springboot/WebsocketComponentConverter.java    |  70 +++
 .../springboot/AtomComponentAutoConfiguration.java |   9 +-
 .../AtomixMapComponentAutoConfiguration.java       |  11 +-
 .../springboot/AtomixMapComponentConverter.java    |  74 +++
 .../AtomixMessagingComponentAutoConfiguration.java |  11 +-
 .../AtomixMessagingComponentConverter.java         |  74 +++
 .../AtomixMultiMapComponentAutoConfiguration.java  |  11 +-
 .../AtomixMultiMapComponentConverter.java          |  74 +++
 .../AtomixQueueComponentAutoConfiguration.java     |  11 +-
 .../springboot/AtomixQueueComponentConverter.java  |  72 +++
 .../AtomixSetComponentAutoConfiguration.java       |  11 +-
 .../springboot/AtomixSetComponentConverter.java    |  72 +++
 .../AtomixValueComponentAutoConfiguration.java     |  11 +-
 .../springboot/AtomixValueComponentConverter.java  |  72 +++
 .../springboot/AvroComponentAutoConfiguration.java |  11 +-
 .../avro/springboot/AvroComponentConverter.java    |  65 ++
 .../AvroDataFormatAutoConfiguration.java           |   9 +-
 .../springboot/CwComponentAutoConfiguration.java   |  11 +-
 .../aws/cw/springboot/CwComponentConverter.java    |  67 +++
 .../springboot/DdbComponentAutoConfiguration.java  |  11 +-
 .../aws/ddb/springboot/DdbComponentConverter.java  |  69 +++
 .../DdbStreamComponentAutoConfiguration.java       |  11 +-
 .../springboot/DdbStreamComponentConverter.java    |  72 +++
 .../springboot/EC2ComponentAutoConfiguration.java  |  11 +-
 .../aws/ec2/springboot/EC2ComponentConverter.java  |  69 +++
 .../springboot/ECSComponentAutoConfiguration.java  |  11 +-
 .../aws/ecs/springboot/ECSComponentConverter.java  |  69 +++
 .../springboot/EKSComponentAutoConfiguration.java  |  11 +-
 .../aws/eks/springboot/EKSComponentConverter.java  |  69 +++
 .../springboot/IAMComponentAutoConfiguration.java  |  11 +-
 .../aws/iam/springboot/IAMComponentConverter.java  |  69 +++
 .../KinesisFirehoseComponentAutoConfiguration.java |  11 +-
 .../KinesisFirehoseComponentConverter.java         |  68 +++
 .../KinesisComponentAutoConfiguration.java         |  11 +-
 .../springboot/KinesisComponentConverter.java      |  71 +++
 .../springboot/KMSComponentAutoConfiguration.java  |  11 +-
 .../aws/kms/springboot/KMSComponentConverter.java  |  69 +++
 .../LambdaComponentAutoConfiguration.java          |  11 +-
 .../springboot/LambdaComponentConverter.java       |  69 +++
 .../springboot/MQComponentAutoConfiguration.java   |  11 +-
 .../aws/mq/springboot/MQComponentConverter.java    |  69 +++
 .../springboot/MSKComponentAutoConfiguration.java  |  11 +-
 .../aws/msk/springboot/MSKComponentConverter.java  |  69 +++
 .../springboot/S3ComponentAutoConfiguration.java   |  11 +-
 .../aws/s3/springboot/S3ComponentConverter.java    |  73 +++
 .../springboot/SdbComponentAutoConfiguration.java  |   9 +-
 .../springboot/SesComponentAutoConfiguration.java  |  11 +-
 .../aws/ses/springboot/SesComponentConverter.java  |  67 +++
 .../springboot/SnsComponentAutoConfiguration.java  |  11 +-
 .../aws/sns/springboot/SnsComponentConverter.java  |  69 +++
 .../springboot/SqsComponentAutoConfiguration.java  |  11 +-
 .../aws/sqs/springboot/SqsComponentConverter.java  |  69 +++
 .../springboot/SWFComponentAutoConfiguration.java  |  11 +-
 .../aws/swf/springboot/SWFComponentConverter.java  |  75 +++
 .../TranslateComponentAutoConfiguration.java       |  11 +-
 .../springboot/TranslateComponentConverter.java    |  70 +++
 .../Athena2ComponentAutoConfiguration.java         |  11 +-
 .../springboot/Athena2ComponentConverter.java      |  73 +++
 .../springboot/Cw2ComponentAutoConfiguration.java  |  11 +-
 .../aws2/cw/springboot/Cw2ComponentConverter.java  |  69 +++
 .../springboot/Ddb2ComponentAutoConfiguration.java |  11 +-
 .../ddb/springboot/Ddb2ComponentConverter.java     |  69 +++
 .../Ddb2StreamComponentAutoConfiguration.java      |  11 +-
 .../springboot/Ddb2StreamComponentConverter.java   |  72 +++
 .../AWS2EC2ComponentAutoConfiguration.java         |  11 +-
 .../ec2/springboot/AWS2EC2ComponentConverter.java  |  69 +++
 .../src/main/docs/aws2-ecs-starter.adoc            |   3 +-
 .../springboot/ECS2ComponentAutoConfiguration.java |  11 +-
 .../ecs/springboot/ECS2ComponentConfiguration.java |  14 -
 .../ecs/springboot/ECS2ComponentConverter.java     |  69 +++
 .../src/main/docs/aws2-eks-starter.adoc            |   3 +-
 .../springboot/EKS2ComponentAutoConfiguration.java |  11 +-
 .../eks/springboot/EKS2ComponentConfiguration.java |  14 -
 .../eks/springboot/EKS2ComponentConverter.java     |  69 +++
 .../EventbridgeComponentAutoConfiguration.java     |  11 +-
 .../springboot/EventbridgeComponentConverter.java  |  70 +++
 .../springboot/IAM2ComponentAutoConfiguration.java |  11 +-
 .../iam/springboot/IAM2ComponentConverter.java     |  69 +++
 ...KinesisFirehose2ComponentAutoConfiguration.java |  11 +-
 .../KinesisFirehose2ComponentConverter.java        |  70 +++
 .../Kinesis2ComponentAutoConfiguration.java        |  11 +-
 .../springboot/Kinesis2ComponentConverter.java     |  71 +++
 .../springboot/KMS2ComponentAutoConfiguration.java |  11 +-
 .../kms/springboot/KMS2ComponentConverter.java     |  69 +++
 .../Lambda2ComponentAutoConfiguration.java         |  11 +-
 .../springboot/Lambda2ComponentConverter.java      |  69 +++
 .../springboot/MQ2ComponentAutoConfiguration.java  |  11 +-
 .../aws2/mq/springboot/MQ2ComponentConverter.java  |  69 +++
 .../springboot/MSK2ComponentAutoConfiguration.java |  11 +-
 .../msk/springboot/MSK2ComponentConverter.java     |  69 +++
 .../AWS2S3ComponentAutoConfiguration.java          |  11 +-
 .../s3/springboot/AWS2S3ComponentConverter.java    |  69 +++
 .../springboot/Ses2ComponentAutoConfiguration.java |  11 +-
 .../ses/springboot/Ses2ComponentConverter.java     |  67 +++
 .../springboot/Sns2ComponentAutoConfiguration.java |  11 +-
 .../sns/springboot/Sns2ComponentConverter.java     |  67 +++
 .../springboot/Sqs2ComponentAutoConfiguration.java |  11 +-
 .../sqs/springboot/Sqs2ComponentConverter.java     |  69 +++
 .../springboot/STS2ComponentAutoConfiguration.java |  11 +-
 .../sts/springboot/STS2ComponentConverter.java     |  69 +++
 .../Translate2ComponentAutoConfiguration.java      |  11 +-
 .../springboot/Translate2ComponentConverter.java   |  70 +++
 .../EventHubsComponentAutoConfiguration.java       |  11 +-
 .../springboot/EventHubsComponentConverter.java    |  74 +++
 .../BlobServiceComponentAutoConfiguration.java     |  11 +-
 .../springboot/BlobServiceComponentConverter.java  |  72 +++
 .../QueueServiceComponentAutoConfiguration.java    |  11 +-
 .../springboot/QueueServiceComponentConverter.java |  70 +++
 .../springboot/BlobComponentAutoConfiguration.java |  11 +-
 .../blob/springboot/BlobComponentConverter.java    |  75 +++
 .../QueueComponentAutoConfiguration.java           |  11 +-
 .../queue/springboot/QueueComponentConverter.java  |  71 +++
 .../BarcodeDataFormatAutoConfiguration.java        |   9 +-
 .../Base64DataFormatAutoConfiguration.java         |   9 +-
 .../springboot/BeanComponentAutoConfiguration.java |  11 +-
 .../bean/springboot/BeanComponentConverter.java    |  63 ++
 .../ClassComponentAutoConfiguration.java           |  11 +-
 .../springboot/ClassComponentConverter.java        |  63 ++
 .../springboot/BeanLanguageAutoConfiguration.java  |   9 +-
 .../BeanValidatorComponentAutoConfiguration.java   |  11 +-
 .../BeanValidatorComponentConverter.java           |  72 +++
 .../BeanIODataFormatAutoConfiguration.java         |   9 +-
 .../BeanstalkComponentAutoConfiguration.java       |  11 +-
 .../springboot/BeanstalkComponentConverter.java    |  64 ++
 .../BindyCsvDataFormatAutoConfiguration.java       |   9 +-
 ...indyFixedLengthDataFormatAutoConfiguration.java |   9 +-
 ...ndyKeyValuePairDataFormatAutoConfiguration.java |   9 +-
 .../BonitaComponentAutoConfiguration.java          |   9 +-
 .../springboot/BoxComponentAutoConfiguration.java  |  11 +-
 .../box/springboot/BoxComponentConverter.java      |  69 +++
 .../BraintreeComponentAutoConfiguration.java       |  11 +-
 .../springboot/BraintreeComponentConverter.java    |  64 ++
 .../BrowseComponentAutoConfiguration.java          |   9 +-
 .../CaffeineCacheComponentAutoConfiguration.java   |  11 +-
 .../CaffeineCacheComponentConverter.java           |  74 +++
 ...affeineLoadCacheComponentAutoConfiguration.java |  11 +-
 .../CaffeineLoadCacheComponentConverter.java       |  74 +++
 .../CassandraComponentAutoConfiguration.java       |   9 +-
 .../CBORDataFormatAutoConfiguration.java           |   9 +-
 .../ChatScriptComponentAutoConfiguration.java      |   9 +-
 .../ChunkComponentAutoConfiguration.java           |   9 +-
 .../springboot/CMComponentAutoConfiguration.java   |   9 +-
 .../springboot/CMISComponentAutoConfiguration.java |  11 +-
 .../cmis/springboot/CMISComponentConverter.java    |  63 ++
 .../springboot/CoAPComponentAutoConfiguration.java |   9 +-
 .../CometdComponentAutoConfiguration.java          |  11 +-
 .../springboot/CometdComponentConverter.java       |  65 ++
 .../ConsulComponentAutoConfiguration.java          |  11 +-
 .../springboot/ConsulComponentConverter.java       |  73 +++
 .../ControlBusComponentAutoConfiguration.java      |   9 +-
 components-starter/camel-corda-starter/pom.xml     |   8 -
 .../CordaComponentAutoConfiguration.java           |  11 +-
 .../corda/springboot/CordaComponentConverter.java  |  69 +++
 .../ConstantLanguageAutoConfiguration.java         |   9 +-
 .../HeaderLanguageAutoConfiguration.java           |   9 +-
 .../ExchangePropertyLanguageAutoConfiguration.java |   9 +-
 .../springboot/RefLanguageAutoConfiguration.java   |   9 +-
 .../springboot/FileLanguageAutoConfiguration.java  |   9 +-
 .../SimpleLanguageAutoConfiguration.java           |   9 +-
 .../TokenizeLanguageAutoConfiguration.java         |   9 +-
 .../CouchbaseComponentAutoConfiguration.java       |   9 +-
 .../CouchDbComponentAutoConfiguration.java         |   9 +-
 .../springboot/CronComponentAutoConfiguration.java |   9 +-
 .../CryptoCmsComponentAutoConfiguration.java       |  11 +-
 .../springboot/CryptoCmsComponentConverter.java    |  66 ++
 ...DigitalSignatureComponentAutoConfiguration.java |  11 +-
 .../DigitalSignatureComponentConverter.java        |  76 +++
 .../CryptoDataFormatAutoConfiguration.java         |   9 +-
 .../springboot/PGPDataFormatAutoConfiguration.java |   9 +-
 .../springboot/CsvDataFormatAutoConfiguration.java |   9 +-
 .../CxfRsComponentAutoConfiguration.java           |  11 +-
 .../jaxrs/springboot/CxfRsComponentConverter.java  |  63 ++
 .../springboot/CxfComponentAutoConfiguration.java  |  11 +-
 .../cxf/springboot/CxfComponentConverter.java      |  63 ++
 .../DataFormatComponentAutoConfiguration.java      |   9 +-
 .../DataSetComponentAutoConfiguration.java         |   9 +-
 .../DataSetTestComponentAutoConfiguration.java     |   9 +-
 .../DebeziumMongodbComponentAutoConfiguration.java |  11 +-
 .../DebeziumMongodbComponentConverter.java         |  64 ++
 .../DebeziumMySqlComponentAutoConfiguration.java   |  11 +-
 .../DebeziumMySqlComponentConverter.java           |  64 ++
 ...DebeziumPostgresComponentAutoConfiguration.java |  11 +-
 .../DebeziumPostgresComponentConverter.java        |  64 ++
 ...ebeziumSqlserverComponentAutoConfiguration.java |  11 +-
 .../DebeziumSqlserverComponentConverter.java       |  64 ++
 .../DigitalOceanComponentAutoConfiguration.java    |   9 +-
 .../DirectComponentAutoConfiguration.java          |   9 +-
 .../DirectVmComponentAutoConfiguration.java        |  11 +-
 .../springboot/DirectVmComponentConverter.java     |  63 ++
 .../DisruptorComponentAutoConfiguration.java       |  11 +-
 .../springboot/DisruptorComponentConverter.java    |  66 ++
 .../DisruptorVmComponentAutoConfiguration.java     |  11 +-
 .../springboot/DisruptorVmComponentConverter.java  |  66 ++
 .../springboot/DJLComponentAutoConfiguration.java  |   9 +-
 .../springboot/DnsComponentAutoConfiguration.java  |   9 +-
 .../DockerComponentAutoConfiguration.java          |  11 +-
 .../springboot/DockerComponentConverter.java       |  63 ++
 .../DozerComponentAutoConfiguration.java           |   9 +-
 .../DrillComponentAutoConfiguration.java           |   9 +-
 .../DropboxComponentAutoConfiguration.java         |   9 +-
 .../EhcacheComponentAutoConfiguration.java         |  11 +-
 .../springboot/EhcacheComponentConverter.java      |  73 +++
 .../ElasticsearchComponentAutoConfiguration.java   |  11 +-
 .../ElasticsearchComponentConverter.java           |  64 ++
 .../ElsqlComponentAutoConfiguration.java           |  11 +-
 .../elsql/springboot/ElsqlComponentConverter.java  |  67 +++
 .../EtcdKeysComponentAutoConfiguration.java        |  11 +-
 .../springboot/EtcdKeysComponentConverter.java     |  65 ++
 .../EtcdStatsComponentAutoConfiguration.java       |  11 +-
 .../springboot/EtcdStatsComponentConverter.java    |  66 ++
 .../EtcdWatchComponentAutoConfiguration.java       |  11 +-
 .../springboot/EtcdWatchComponentConverter.java    |  66 ++
 .../springboot/ExecComponentAutoConfiguration.java |   9 +-
 .../FacebookComponentAutoConfiguration.java        |  11 +-
 .../springboot/FacebookComponentConverter.java     |  63 ++
 .../FastjsonDataFormatAutoConfiguration.java       |   9 +-
 .../springboot/FhirComponentAutoConfiguration.java |  11 +-
 .../fhir/springboot/FhirComponentConverter.java    |  69 +++
 .../FhirJsonDataFormatAutoConfiguration.java       |   9 +-
 .../FhirXmlDataFormatAutoConfiguration.java        |   9 +-
 .../springboot/FileComponentAutoConfiguration.java |   9 +-
 .../FileWatchComponentAutoConfiguration.java       |  11 +-
 .../springboot/FileWatchComponentConverter.java    |  64 ++
 .../FlatpackComponentAutoConfiguration.java        |   9 +-
 .../FlatpackDataFormatAutoConfiguration.java       |   9 +-
 .../FlinkComponentAutoConfiguration.java           |  11 +-
 .../flink/springboot/FlinkComponentConverter.java  |  67 +++
 .../springboot/FopComponentAutoConfiguration.java  |   9 +-
 .../FreemarkerComponentAutoConfiguration.java      |  11 +-
 .../springboot/FreemarkerComponentConverter.java   |  64 ++
 .../springboot/FtpComponentAutoConfiguration.java  |   9 +-
 .../springboot/FtpsComponentAutoConfiguration.java |   9 +-
 .../springboot/SftpComponentAutoConfiguration.java |   9 +-
 .../GangliaComponentAutoConfiguration.java         |  11 +-
 .../springboot/GangliaComponentConverter.java      |  69 +++
 .../GeoCoderComponentAutoConfiguration.java        |  11 +-
 .../springboot/GeoCoderComponentConverter.java     |  63 ++
 .../springboot/GitComponentAutoConfiguration.java  |   9 +-
 .../GitHubComponentAutoConfiguration.java          |   9 +-
 .../GoogleBigQueryComponentAutoConfiguration.java  |  11 +-
 .../GoogleBigQueryComponentConverter.java          |  64 ++
 ...oogleBigQuerySQLComponentAutoConfiguration.java |  11 +-
 .../GoogleBigQuerySQLComponentConverter.java       |  64 ++
 .../GoogleCalendarComponentAutoConfiguration.java  |  11 +-
 .../GoogleCalendarComponentConverter.java          |  66 ++
 ...leCalendarStreamComponentAutoConfiguration.java |  11 +-
 .../GoogleCalendarStreamComponentConverter.java    |  66 ++
 .../GoogleDriveComponentAutoConfiguration.java     |  11 +-
 .../springboot/GoogleDriveComponentConverter.java  |  66 ++
 .../GoogleMailComponentAutoConfiguration.java      |  11 +-
 .../springboot/GoogleMailComponentConverter.java   |  66 ++
 ...GoogleMailStreamComponentAutoConfiguration.java |  11 +-
 .../GoogleMailStreamComponentConverter.java        |  66 ++
 .../GooglePubsubComponentAutoConfiguration.java    |   9 +-
 .../GoogleSheetsComponentAutoConfiguration.java    |  11 +-
 .../springboot/GoogleSheetsComponentConverter.java |  66 ++
 ...ogleSheetsStreamComponentAutoConfiguration.java |  11 +-
 .../GoogleSheetsStreamComponentConverter.java      |  66 ++
 .../springboot/GoraComponentAutoConfiguration.java |   9 +-
 .../GrapeComponentAutoConfiguration.java           |  11 +-
 .../grape/springboot/GrapeComponentConverter.java  |  63 ++
 .../GraphqlComponentAutoConfiguration.java         |   9 +-
 .../GrokDataFormatAutoConfiguration.java           |   9 +-
 .../GroovyLanguageAutoConfiguration.java           |   9 +-
 .../springboot/GrpcComponentAutoConfiguration.java |   9 +-
 .../GsonDataFormatAutoConfiguration.java           |   9 +-
 .../GuavaEventBusComponentAutoConfiguration.java   |  11 +-
 .../GuavaEventBusComponentConverter.java           |  64 ++
 ...castAtomicnumberComponentAutoConfiguration.java |  11 +-
 .../HazelcastAtomicnumberComponentConverter.java   |  64 ++
 ...azelcastInstanceComponentAutoConfiguration.java |  11 +-
 .../HazelcastInstanceComponentConverter.java       |  64 ++
 .../HazelcastListComponentAutoConfiguration.java   |  11 +-
 .../HazelcastListComponentConverter.java           |  64 ++
 .../HazelcastMapComponentAutoConfiguration.java    |  11 +-
 .../springboot/HazelcastMapComponentConverter.java |  64 ++
 ...azelcastMultimapComponentAutoConfiguration.java |  11 +-
 .../HazelcastMultimapComponentConverter.java       |  64 ++
 .../HazelcastQueueComponentAutoConfiguration.java  |  11 +-
 .../HazelcastQueueComponentConverter.java          |  64 ++
 ...astReplicatedmapComponentAutoConfiguration.java |  11 +-
 .../HazelcastReplicatedmapComponentConverter.java  |  64 ++
 ...elcastRingbufferComponentAutoConfiguration.java |  11 +-
 .../HazelcastRingbufferComponentConverter.java     |  64 ++
 .../HazelcastSedaComponentAutoConfiguration.java   |  11 +-
 .../HazelcastSedaComponentConverter.java           |  64 ++
 .../HazelcastSetComponentAutoConfiguration.java    |  11 +-
 .../springboot/HazelcastSetComponentConverter.java |  64 ++
 .../HazelcastTopicComponentAutoConfiguration.java  |  11 +-
 .../HazelcastTopicComponentConverter.java          |  64 ++
 .../HBaseComponentAutoConfiguration.java           |  11 +-
 .../hbase/springboot/HBaseComponentConverter.java  |  63 ++
 .../springboot/HdfsComponentAutoConfiguration.java |  11 +-
 .../hdfs/springboot/HdfsComponentConverter.java    |  63 ++
 .../springboot/HL7DataFormatAutoConfiguration.java |   9 +-
 .../Hl7TerserLanguageAutoConfiguration.java        |   9 +-
 .../springboot/HttpComponentAutoConfiguration.java |  11 +-
 .../http/springboot/HttpComponentConverter.java    |  79 +++
 .../ICalDataFormatAutoConfiguration.java           |   9 +-
 .../ClientComponentAutoConfiguration.java          |  11 +-
 .../springboot/ClientComponentConverter.java       |  63 ++
 .../ServerComponentAutoConfiguration.java          |  11 +-
 .../springboot/ServerComponentConverter.java       |  63 ++
 .../IgniteCacheComponentAutoConfiguration.java     |  11 +-
 .../springboot/IgniteCacheComponentConverter.java  |  68 +++
 .../IgniteComputeComponentAutoConfiguration.java   |  11 +-
 .../IgniteComputeComponentConverter.java           |  68 +++
 .../IgniteEventsComponentAutoConfiguration.java    |  11 +-
 .../springboot/IgniteEventsComponentConverter.java |  68 +++
 .../IgniteIdGenComponentAutoConfiguration.java     |  11 +-
 .../springboot/IgniteIdGenComponentConverter.java  |  68 +++
 .../IgniteMessagingComponentAutoConfiguration.java |  11 +-
 .../IgniteMessagingComponentConverter.java         |  68 +++
 .../IgniteQueueComponentAutoConfiguration.java     |  11 +-
 .../springboot/IgniteQueueComponentConverter.java  |  68 +++
 .../IgniteSetComponentAutoConfiguration.java       |  11 +-
 .../springboot/IgniteSetComponentConverter.java    |  68 +++
 .../InfinispanComponentAutoConfiguration.java      |  11 +-
 .../springboot/InfinispanComponentConverter.java   |  76 +++
 .../InfluxDbComponentAutoConfiguration.java        |  11 +-
 .../springboot/InfluxDbComponentConverter.java     |  63 ++
 components-starter/camel-iota-starter/pom.xml      |  12 -
 .../springboot/IOTAComponentAutoConfiguration.java |   9 +-
 .../springboot/IPFSComponentAutoConfiguration.java |   9 +-
 .../springboot/IrcComponentAutoConfiguration.java  |   9 +-
 .../IronMQComponentAutoConfiguration.java          |   9 +-
 .../JacksonDataFormatAutoConfiguration.java        |   9 +-
 .../JacksonXMLDataFormatAutoConfiguration.java     |   9 +-
 .../JaxbDataFormatAutoConfiguration.java           |   9 +-
 .../springboot/JBPMComponentAutoConfiguration.java |   9 +-
 .../JCacheComponentAutoConfiguration.java          |  11 +-
 .../springboot/JCacheComponentConverter.java       |  63 ++
 .../JcloudsComponentAutoConfiguration.java         |   9 +-
 .../springboot/JcrComponentAutoConfiguration.java  |   9 +-
 .../springboot/JdbcComponentAutoConfiguration.java |  11 +-
 .../jdbc/springboot/JdbcComponentConverter.java    |  63 ++
 .../JettyHttpComponentAutoConfiguration9.java      |  11 +-
 .../springboot/JettyHttpComponentConverter9.java   |  78 +++
 .../JGroupsRaftComponentAutoConfiguration.java     |  11 +-
 .../springboot/JGroupsRaftComponentConverter.java  |  66 ++
 .../JGroupsComponentAutoConfiguration.java         |  11 +-
 .../springboot/JGroupsComponentConverter.java      |  63 ++
 .../springboot/JingComponentAutoConfiguration.java |   9 +-
 .../springboot/JiraComponentAutoConfiguration.java |  11 +-
 .../jira/springboot/JiraComponentConverter.java    |  63 ++
 .../springboot/JmsComponentAutoConfiguration.java  |  11 +-
 .../jms/springboot/JmsComponentConverter.java      |  97 +++
 .../springboot/JMXComponentAutoConfiguration.java  |   9 +-
 .../JohnzonDataFormatAutoConfiguration.java        |   9 +-
 .../springboot/JoltComponentAutoConfiguration.java |  11 +-
 .../jolt/springboot/JoltComponentConverter.java    |  63 ++
 .../springboot/JooqComponentAutoConfiguration.java |  11 +-
 .../jooq/springboot/JooqComponentConverter.java    |  67 +++
 .../springboot/JpaComponentAutoConfiguration.java  |  11 +-
 .../jpa/springboot/JpaComponentConverter.java      |  65 ++
 .../springboot/ScpComponentAutoConfiguration.java  |   9 +-
 .../springboot/JsltComponentAutoConfiguration.java |  11 +-
 .../jslt/springboot/JsltComponentConverter.java    |  63 ++
 .../JsonValidatorComponentAutoConfiguration.java   |   9 +-
 .../JsonApiDataFormatAutoConfiguration.java        |   9 +-
 .../JsonataComponentAutoConfiguration.java         |   9 +-
 .../JsonbDataFormatAutoConfiguration.java          |   9 +-
 .../JsonPathLanguageAutoConfiguration.java         |   9 +-
 .../Jt400ComponentAutoConfiguration.java           |  11 +-
 .../jt400/springboot/Jt400ComponentConverter.java  |  63 ++
 .../KafkaComponentAutoConfiguration.java           |  11 +-
 .../kafka/springboot/KafkaComponentConverter.java  |  77 +++
 ...rnetesConfigMapsComponentAutoConfiguration.java |   9 +-
 ...sCustomResourcesComponentAutoConfiguration.java |   9 +-
 ...netesDeploymentsComponentAutoConfiguration.java |   9 +-
 .../KubernetesHPAComponentAutoConfiguration.java   |   9 +-
 .../KubernetesJobComponentAutoConfiguration.java   |   9 +-
 ...rnetesNamespacesComponentAutoConfiguration.java |   9 +-
 .../KubernetesNodesComponentAutoConfiguration.java |   9 +-
 ...ersistentVolumesComponentAutoConfiguration.java |   9 +-
 ...entVolumesClaimsComponentAutoConfiguration.java |   9 +-
 .../KubernetesPodsComponentAutoConfiguration.java  |   9 +-
 ...ationControllersComponentAutoConfiguration.java |   9 +-
 ...esResourcesQuotaComponentAutoConfiguration.java |   9 +-
 ...ubernetesSecretsComponentAutoConfiguration.java |   9 +-
 ...sServiceAccountsComponentAutoConfiguration.java |   9 +-
 ...bernetesServicesComponentAutoConfiguration.java |   9 +-
 ...hiftBuildConfigsComponentAutoConfiguration.java |   9 +-
 .../OpenshiftBuildsComponentAutoConfiguration.java |   9 +-
 .../springboot/KuduComponentAutoConfiguration.java |   9 +-
 .../LanguageComponentAutoConfiguration.java        |   9 +-
 .../springboot/LdapComponentAutoConfiguration.java |   9 +-
 .../springboot/LdifComponentAutoConfiguration.java |   9 +-
 .../springboot/LogComponentAutoConfiguration.java  |  11 +-
 .../log/springboot/LogComponentConverter.java      |  63 ++
 .../LuceneComponentAutoConfiguration.java          |  11 +-
 .../springboot/LuceneComponentConverter.java       |  65 ++
 .../LumberjackComponentAutoConfiguration.java      |  11 +-
 .../springboot/LumberjackComponentConverter.java   |  64 ++
 .../springboot/LZFDataFormatAutoConfiguration.java |   9 +-
 .../springboot/MailComponentAutoConfiguration.java |  11 +-
 .../mail/springboot/MailComponentConverter.java    |  79 +++
 .../MimeMultipartDataFormatAutoConfiguration.java  |   9 +-
 .../MasterComponentAutoConfiguration.java          |  11 +-
 .../springboot/MasterComponentConverter.java       |  65 ++
 .../MetricsComponentAutoConfiguration.java         |  11 +-
 .../springboot/MetricsComponentConverter.java      |  63 ++
 .../MicrometerComponentAutoConfiguration.java      |  11 +-
 .../springboot/MicrometerComponentConverter.java   |  64 ++
 .../MiloClientComponentAutoConfiguration.java      |  11 +-
 .../springboot/MiloClientComponentConverter.java   |  64 ++
 .../MiloServerComponentAutoConfiguration.java      |  11 +-
 .../springboot/MiloServerComponentConverter.java   |  72 +++
 .../springboot/MinaComponentAutoConfiguration.java |  11 +-
 .../mina/springboot/MinaComponentConverter.java    |  71 +++
 .../MinioComponentAutoConfiguration.java           |  11 +-
 .../minio/springboot/MinioComponentConverter.java  |  75 +++
 .../springboot/MllpComponentAutoConfiguration.java |  11 +-
 .../mllp/springboot/MllpComponentConverter.java    |  63 ++
 .../springboot/MockComponentAutoConfiguration.java |   9 +-
 .../GridFsComponentAutoConfiguration.java          |   9 +-
 .../MongoDbComponentAutoConfiguration.java         |  11 +-
 .../springboot/MongoDbComponentConverter.java      |  63 ++
 .../springboot/MsvComponentAutoConfiguration.java  |  11 +-
 .../msv/springboot/MsvComponentConverter.java      |  65 ++
 .../MustacheComponentAutoConfiguration.java        |  11 +-
 .../springboot/MustacheComponentConverter.java     |  63 ++
 .../springboot/MvelComponentAutoConfiguration.java |   9 +-
 .../springboot/MvelLanguageAutoConfiguration.java  |   9 +-
 .../MyBatisBeanComponentAutoConfiguration.java     |  11 +-
 .../springboot/MyBatisBeanComponentConverter.java  |  64 ++
 .../MyBatisComponentAutoConfiguration.java         |  11 +-
 .../springboot/MyBatisComponentConverter.java      |  63 ++
 .../NagiosComponentAutoConfiguration.java          |  11 +-
 .../springboot/NagiosComponentConverter.java       |  65 ++
 .../springboot/NatsComponentAutoConfiguration.java |   9 +-
 .../NettyHttpComponentAutoConfiguration.java       |  11 +-
 .../springboot/NettyHttpComponentConverter.java    |  92 +++
 .../NettyComponentAutoConfiguration.java           |  11 +-
 .../netty/springboot/NettyComponentConverter.java  |  85 +++
 .../NitriteComponentAutoConfiguration.java         |   9 +-
 .../springboot/NsqComponentAutoConfiguration.java  |   9 +-
 .../OAIPMHComponentAutoConfiguration.java          |   9 +-
 .../springboot/OgnlLanguageAutoConfiguration.java  |   9 +-
 .../Olingo2ComponentAutoConfiguration.java         |  11 +-
 .../springboot/Olingo2ComponentConverter.java      |  75 +++
 .../Olingo4ComponentAutoConfiguration.java         |  11 +-
 .../springboot/Olingo4ComponentConverter.java      |  71 +++
 .../CinderComponentAutoConfiguration.java          |   9 +-
 .../GlanceComponentAutoConfiguration.java          |   9 +-
 .../KeystoneComponentAutoConfiguration.java        |   9 +-
 .../NeutronComponentAutoConfiguration.java         |   9 +-
 .../springboot/NovaComponentAutoConfiguration.java |   9 +-
 .../SwiftComponentAutoConfiguration.java           |   9 +-
 .../OptaPlannerComponentAutoConfiguration.java     |   9 +-
 .../springboot/PahoComponentAutoConfiguration.java |  11 +-
 .../paho/springboot/PahoComponentConverter.java    |  73 +++
 .../springboot/PdfComponentAutoConfiguration.java  |   9 +-
 ...gReplicationSlotComponentAutoConfiguration.java |   9 +-
 .../PgEventComponentAutoConfiguration.java         |   9 +-
 .../PlatformHttpComponentAutoConfiguration.java    |  11 +-
 .../springboot/PlatformHttpComponentConverter.java |  64 ++
 .../PrinterComponentAutoConfiguration.java         |   9 +-
 .../ProtobufDataFormatAutoConfiguration.java       |   9 +-
 .../PubNubComponentAutoConfiguration.java          |   9 +-
 .../PulsarComponentAutoConfiguration.java          |  11 +-
 .../springboot/PulsarComponentConverter.java       |  83 +++
 .../QuartzComponentAutoConfiguration.java          |  11 +-
 .../springboot/QuartzComponentConverter.java       |  65 ++
 .../QuickfixjComponentAutoConfiguration.java       |  11 +-
 .../springboot/QuickfixjComponentConverter.java    |  68 +++
 .../RabbitMQComponentAutoConfiguration.java        |  11 +-
 .../springboot/RabbitMQComponentConverter.java     |  67 +++
 .../ReactiveStreamsComponentAutoConfiguration.java |  11 +-
 .../ReactiveStreamsComponentConverter.java         |  66 ++
 .../springboot/RefComponentAutoConfiguration.java  |   9 +-
 .../RestOpenApiComponentAutoConfiguration.java     |  11 +-
 .../springboot/RestOpenApiComponentConverter.java  |  64 ++
 .../RestApiComponentAutoConfiguration.java         |   9 +-
 .../springboot/RestComponentAutoConfiguration.java |   9 +-
 .../RestSwaggerComponentAutoConfiguration.java     |  11 +-
 .../springboot/RestSwaggerComponentConverter.java  |  64 ++
 .../ResteasyComponentAutoConfiguration.java        |  11 +-
 .../springboot/ResteasyComponentConverter.java     |  63 ++
 .../RobotFrameworkComponentAutoConfiguration.java  |  11 +-
 .../RobotFrameworkComponentConverter.java          |  64 ++
 .../springboot/RssComponentAutoConfiguration.java  |   9 +-
 .../springboot/RssDataFormatAutoConfiguration.java |   9 +-
 .../springboot/SagaComponentAutoConfiguration.java |   9 +-
 .../SalesforceComponentAutoConfiguration.java      |  11 +-
 .../springboot/SalesforceComponentConverter.java   |  88 +++
 .../NetWeaverComponentAutoConfiguration.java       |   9 +-
 .../XQueryComponentAutoConfiguration.java          |  11 +-
 .../springboot/XQueryComponentConverter.java       |  65 ++
 .../XQueryLanguageAutoConfiguration.java           |   9 +-
 .../SchedulerComponentAutoConfiguration.java       |   9 +-
 .../SchematronComponentAutoConfiguration.java      |   9 +-
 .../springboot/SedaComponentAutoConfiguration.java |  11 +-
 .../seda/springboot/SedaComponentConverter.java    |  63 ++
 .../ServiceComponentAutoConfiguration.java         |  11 +-
 .../springboot/ServiceComponentConverter.java      |  65 ++
 .../ServiceNowComponentAutoConfiguration.java      |  11 +-
 .../springboot/ServiceNowComponentConverter.java   |  74 +++
 .../ServletComponentAutoConfiguration.java         |  11 +-
 .../springboot/ServletComponentConverter.java      |  69 +++
 .../springboot/SipComponentAutoConfiguration.java  |   9 +-
 .../SjmsBatchComponentAutoConfiguration.java       |  11 +-
 .../springboot/SjmsBatchComponentConverter.java    |  66 ++
 .../springboot/SjmsComponentAutoConfiguration.java |  11 +-
 .../sjms/springboot/SjmsComponentConverter.java    |  77 +++
 .../Sjms2ComponentAutoConfiguration.java           |  11 +-
 .../sjms2/springboot/Sjms2ComponentConverter.java  |  77 +++
 .../SlackComponentAutoConfiguration.java           |   9 +-
 .../springboot/SmppComponentAutoConfiguration.java |  11 +-
 .../smpp/springboot/SmppComponentConverter.java    |  67 +++
 .../SnakeYAMLDataFormatAutoConfiguration.java      |   9 +-
 .../springboot/SnmpComponentAutoConfiguration.java |   9 +-
 .../SoapJaxbDataFormatAutoConfiguration.java       |   9 +-
 .../springboot/SolrComponentAutoConfiguration.java |   9 +-
 .../SoroushBotComponentAutoConfiguration.java      |   9 +-
 .../SparkComponentAutoConfiguration.java           |  11 +-
 .../spark/springboot/SparkComponentConverter.java  |  65 ++
 .../SplunkComponentAutoConfiguration.java          |  11 +-
 .../springboot/SplunkComponentConverter.java       |  63 ++
 .../SpringBatchComponentAutoConfiguration.java     |  11 +-
 .../springboot/SpringBatchComponentConverter.java  |  66 ++
 ...pringIntegrationComponentAutoConfiguration.java |   9 +-
 .../SpringLdapComponentAutoConfiguration.java      |   9 +-
 .../RedisComponentAutoConfiguration.java           |   9 +-
 .../EventComponentAutoConfiguration.java           |   9 +-
 .../springboot/SpelLanguageAutoConfiguration.java  |   9 +-
 ...SpringWebserviceComponentAutoConfiguration.java |   9 +-
 .../springboot/SqlComponentAutoConfiguration.java  |  11 +-
 .../sql/springboot/SqlComponentConverter.java      |  63 ++
 .../SqlStoredComponentAutoConfiguration.java       |  11 +-
 .../springboot/SqlStoredComponentConverter.java    |  64 ++
 .../springboot/SshComponentAutoConfiguration.java  |  11 +-
 .../ssh/springboot/SshComponentConverter.java      |  65 ++
 .../springboot/StAXComponentAutoConfiguration.java |   9 +-
 .../StompComponentAutoConfiguration.java           |  11 +-
 .../stomp/springboot/StompComponentConverter.java  |  69 +++
 .../StreamComponentAutoConfiguration.java          |   9 +-
 .../StringTemplateComponentAutoConfiguration.java  |   9 +-
 .../springboot/StubComponentAutoConfiguration.java |  11 +-
 .../stub/springboot/StubComponentConverter.java    |  63 ++
 .../SyslogDataFormatAutoConfiguration.java         |   9 +-
 .../TidyMarkupDataFormatAutoConfiguration.java     |   9 +-
 .../TarFileDataFormatAutoConfiguration.java        |   9 +-
 .../TelegramComponentAutoConfiguration.java        |  11 +-
 .../springboot/TelegramComponentConverter.java     |  65 ++
 .../ThriftComponentAutoConfiguration.java          |   9 +-
 .../ThriftDataFormatAutoConfiguration.java         |   9 +-
 .../springboot/TikaComponentAutoConfiguration.java |   9 +-
 .../TimerComponentAutoConfiguration.java           |   9 +-
 .../TwilioComponentAutoConfiguration.java          |  11 +-
 .../springboot/TwilioComponentConverter.java       |  65 ++
 ...terDirectMessageComponentAutoConfiguration.java |   9 +-
 .../TwitterSearchComponentAutoConfiguration.java   |   9 +-
 .../TwitterTimelineComponentAutoConfiguration.java |   9 +-
 .../UndertowComponentAutoConfiguration.java        |  11 +-
 .../springboot/UndertowComponentConverter.java     |  71 +++
 .../UniVocityCsvDataFormatAutoConfiguration.java   |   9 +-
 ...ocityFixedWidthDataFormatAutoConfiguration.java |   9 +-
 .../UniVocityTsvDataFormatAutoConfiguration.java   |   9 +-
 .../ValidatorComponentAutoConfiguration.java       |  11 +-
 .../springboot/ValidatorComponentConverter.java    |  64 ++
 .../VelocityComponentAutoConfiguration.java        |  11 +-
 .../springboot/VelocityComponentConverter.java     |  63 ++
 .../VertxHttpComponentAutoConfiguration.java       |  11 +-
 .../springboot/VertxHttpComponentConverter.java    |  74 +++
 .../VertxComponentAutoConfiguration.java           |  11 +-
 .../vertx/springboot/VertxComponentConverter.java  |  67 +++
 .../VertxWebsocketComponentAutoConfiguration.java  |  11 +-
 .../VertxWebsocketComponentConverter.java          |  68 +++
 .../springboot/VmComponentAutoConfiguration.java   |  11 +-
 .../vm/springboot/VmComponentConverter.java        |  63 ++
 .../WeatherComponentAutoConfiguration.java         |   9 +-
 .../Web3jComponentAutoConfiguration.java           |  11 +-
 .../web3j/springboot/Web3jComponentConverter.java  |  67 +++
 .../WebhookComponentAutoConfiguration.java         |  11 +-
 .../springboot/WebhookComponentConverter.java      |  63 ++
 .../JSR356WebSocketComponentAutoConfiguration.java |  11 +-
 .../JSR356WebSocketComponentConverter.java         |  64 ++
 .../WebsocketComponentAutoConfiguration.java       |  11 +-
 .../springboot/WebsocketComponentConverter.java    |  66 ++
 .../springboot/WekaComponentAutoConfiguration.java |   9 +-
 .../WordpressComponentAutoConfiguration.java       |  11 +-
 .../springboot/WordpressComponentConverter.java    |  66 ++
 .../WorkdayComponentAutoConfiguration.java         |   9 +-
 .../XChangeComponentAutoConfiguration.java         |   9 +-
 .../springboot/XJComponentAutoConfiguration.java   |  11 +-
 .../xj/springboot/XJComponentConverter.java        |  69 +++
 .../XMLTokenizeLanguageAutoConfiguration.java      |   9 +-
 .../XmlSignerComponentAutoConfiguration.java       |  11 +-
 .../springboot/XmlSignerComponentConverter.java    |  74 +++
 .../XmlVerifierComponentAutoConfiguration.java     |  11 +-
 .../springboot/XmlVerifierComponentConverter.java  |  76 +++
 .../XMLSecurityDataFormatAutoConfiguration.java    |   9 +-
 .../springboot/XmppComponentAutoConfiguration.java |   9 +-
 .../springboot/XPathLanguageAutoConfiguration.java |   9 +-
 .../XsltSaxonComponentAutoConfiguration.java       |  11 +-
 .../springboot/XsltSaxonComponentConverter.java    |  70 +++
 .../springboot/XsltComponentAutoConfiguration.java |  11 +-
 .../xslt/springboot/XsltComponentConverter.java    |  67 +++
 .../JsonDataFormatAutoConfiguration.java           |   9 +-
 .../XStreamDataFormatAutoConfiguration.java        |   9 +-
 .../YammerComponentAutoConfiguration.java          |  11 +-
 .../springboot/YammerComponentConverter.java       |  65 ++
 .../ZendeskComponentAutoConfiguration.java         |  11 +-
 .../springboot/ZendeskComponentConverter.java      |  65 ++
 .../GzipDeflaterDataFormatAutoConfiguration.java   |   9 +-
 .../ZipDeflaterDataFormatAutoConfiguration.java    |   9 +-
 .../ZipFileDataFormatAutoConfiguration.java        |   9 +-
 .../MasterComponentAutoConfiguration.java          |  11 +-
 .../springboot/MasterComponentConverter.java       |  65 ++
 .../ZooKeeperComponentAutoConfiguration.java       |  11 +-
 .../springboot/ZooKeeperComponentConverter.java    |  64 ++
 .../maven/SpringBootAutoConfigurationMojo.java     | 664 +++++++++++++++------
 636 files changed, 18814 insertions(+), 1054 deletions(-)
 create mode 100644 components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConverter.java
 create mode 100644 components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConverter.java
 create mode 100644 components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConverter.java
 create mode 100644 components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConverter.java
 create mode 100644 components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConverter.java
 create mode 100644 components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConverter.java
 create mode 100644 components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConverter.java
 create mode 100644 components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentConverter.java
 create mode 100644 components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConverter.java
 create mode 100644 components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConverter.java
 create mode 100644 components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConverter.java
 create mode 100644 components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConverter.java
 create mode 100644 components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConverter.java
 create mode 100644 components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConverter.java
 create mode 100644 components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConverter.java
 create mode 100644 components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConverter.java
 create mode 100644 components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConverter.java
 create mode 100644 components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConverter.java
 create mode 100644 components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConverter.java
 create mode 100644 components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConverter.java
 create mode 100644 components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConverter.java
 create mode 100644 components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConverter.java
 create mode 100644 components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConverter.java
 create mode 100644 components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConverter.java
 create mode 100644 components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConverter.java
 create mode 100644 components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConverter.java
 create mode 100644 components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConverter.java
 create mode 100644 components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConverter.java
 create mode 100644 components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConverter.java
 create mode 100644 components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConverter.java
 create mode 100644 components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConverter.java
 create mode 100644 components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConverter.java
 create mode 100644 components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConverter.java
 create mode 100644 components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConverter.java
 create mode 100644 components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConverter.java
 create mode 100644 components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConverter.java
 create mode 100644 components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConverter.java
 create mode 100644 components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConverter.java
 create mode 100644 components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConverter.java
 create mode 100644 components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConverter.java
 create mode 100644 components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConverter.java
 create mode 100644 components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConverter.java
 create mode 100644 components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConverter.java
 create mode 100644 components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConverter.java
 create mode 100644 components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConverter.java
 create mode 100644 components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConverter.java
 create mode 100644 components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConverter.java
 create mode 100644 components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConverter.java
 create mode 100644 components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConverter.java
 create mode 100644 components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConverter.java
 create mode 100644 components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConverter.java
 create mode 100644 components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConverter.java
 create mode 100644 components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConverter.java
 create mode 100644 components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConverter.java
 create mode 100644 components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConverter.java
 create mode 100644 components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConverter.java
 create mode 100644 components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConverter.java
 create mode 100644 components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConverter.java
 create mode 100644 components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/jaxrs/springboot/CxfRsComponentConverter.java
 create mode 100644 components-starter/camel-cxf-starter/src/main/java/org/apache/camel/component/cxf/springboot/CxfComponentConverter.java
 create mode 100644 components-starter/camel-debezium-mongodb-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMongodbComponentConverter.java
 create mode 100644 components-starter/camel-debezium-mysql-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumMySqlComponentConverter.java
 create mode 100644 components-starter/camel-debezium-postgres-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumPostgresComponentConverter.java
 create mode 100644 components-starter/camel-debezium-sqlserver-starter/src/main/java/org/apache/camel/component/debezium/springboot/DebeziumSqlserverComponentConverter.java
 create mode 100644 components-starter/camel-directvm-starter/src/main/java/org/apache/camel/component/directvm/springboot/DirectVmComponentConverter.java
 create mode 100644 components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConverter.java
 create mode 100644 components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConverter.java
 create mode 100644 components-starter/camel-docker-starter/src/main/java/org/apache/camel/component/docker/springboot/DockerComponentConverter.java
 create mode 100644 components-starter/camel-ehcache-starter/src/main/java/org/apache/camel/component/ehcache/springboot/EhcacheComponentConverter.java
 create mode 100644 components-starter/camel-elasticsearch-rest-starter/src/main/java/org/apache/camel/component/elasticsearch/springboot/ElasticsearchComponentConverter.java
 create mode 100644 components-starter/camel-elsql-starter/src/main/java/org/apache/camel/component/elsql/springboot/ElsqlComponentConverter.java
 create mode 100644 components-starter/camel-etcd-starter/src/main/java/org/apache/camel/component/etcd/springboot/EtcdKeysComponentConverter.java
 create mode 100644 components-starter/camel-etcd-starter/src/main/java/org/apache/camel/component/etcd/springboot/EtcdStatsComponentConverter.java
 create mode 100644 components-starter/camel-etcd-starter/src/main/java/org/apache/camel/component/etcd/springboot/EtcdWatchComponentConverter.java
 create mode 100644 components-starter/camel-facebook-starter/src/main/java/org/apache/camel/component/facebook/springboot/FacebookComponentConverter.java
 create mode 100644 components-starter/camel-fhir-starter/src/main/java/org/apache/camel/component/fhir/springboot/FhirComponentConverter.java
 create mode 100644 components-starter/camel-file-watch-starter/src/main/java/org/apache/camel/component/file/watch/springboot/FileWatchComponentConverter.java
 create mode 100644 components-starter/camel-flink-starter/src/main/java/org/apache/camel/component/flink/springboot/FlinkComponentConverter.java
 create mode 100644 components-starter/camel-freemarker-starter/src/main/java/org/apache/camel/component/freemarker/springboot/FreemarkerComponentConverter.java
 create mode 100644 components-starter/camel-ganglia-starter/src/main/java/org/apache/camel/component/ganglia/springboot/GangliaComponentConverter.java
 create mode 100644 components-starter/camel-geocoder-starter/src/main/java/org/apache/camel/component/geocoder/springboot/GeoCoderComponentConverter.java
 create mode 100644 components-starter/camel-google-bigquery-starter/src/main/java/org/apache/camel/component/google/bigquery/springboot/GoogleBigQueryComponentConverter.java
 create mode 100644 components-starter/camel-google-bigquery-starter/src/main/java/org/apache/camel/component/google/bigquery/sql/springboot/GoogleBigQuerySQLComponentConverter.java
 create mode 100644 components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/springboot/GoogleCalendarComponentConverter.java
 create mode 100644 components-starter/camel-google-calendar-starter/src/main/java/org/apache/camel/component/google/calendar/stream/springboot/GoogleCalendarStreamComponentConverter.java
 create mode 100644 components-starter/camel-google-drive-starter/src/main/java/org/apache/camel/component/google/drive/springboot/GoogleDriveComponentConverter.java
 create mode 100644 components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/springboot/GoogleMailComponentConverter.java
 create mode 100644 components-starter/camel-google-mail-starter/src/main/java/org/apache/camel/component/google/mail/stream/springboot/GoogleMailStreamComponentConverter.java
 create mode 100644 components-starter/camel-google-sheets-starter/src/main/java/org/apache/camel/component/google/sheets/springboot/GoogleSheetsComponentConverter.java
 create mode 100644 components-starter/camel-google-sheets-starter/src/main/java/org/apache/camel/component/google/sheets/stream/springboot/GoogleSheetsStreamComponentConverter.java
 create mode 100644 components-starter/camel-grape-starter/src/main/java/org/apache/camel/component/grape/springboot/GrapeComponentConverter.java
 create mode 100644 components-starter/camel-guava-eventbus-starter/src/main/java/org/apache/camel/component/guava/eventbus/springboot/GuavaEventBusComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/atomicnumber/springboot/HazelcastAtomicnumberComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/instance/springboot/HazelcastInstanceComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/list/springboot/HazelcastListComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/map/springboot/HazelcastMapComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/multimap/springboot/HazelcastMultimapComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/queue/springboot/HazelcastQueueComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/replicatedmap/springboot/HazelcastReplicatedmapComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/ringbuffer/springboot/HazelcastRingbufferComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/seda/springboot/HazelcastSedaComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/set/springboot/HazelcastSetComponentConverter.java
 create mode 100644 components-starter/camel-hazelcast-starter/src/main/java/org/apache/camel/component/hazelcast/topic/springboot/HazelcastTopicComponentConverter.java
 create mode 100644 components-starter/camel-hbase-starter/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConverter.java
 create mode 100644 components-starter/camel-hdfs-starter/src/main/java/org/apache/camel/component/hdfs/springboot/HdfsComponentConverter.java
 create mode 100644 components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConverter.java
 create mode 100644 components-starter/camel-iec60870-starter/src/main/java/org/apache/camel/component/iec60870/client/springboot/ClientComponentConverter.java
 create mode 100644 components-starter/camel-iec60870-starter/src/main/java/org/apache/camel/component/iec60870/server/springboot/ServerComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/cache/springboot/IgniteCacheComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/compute/springboot/IgniteComputeComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/events/springboot/IgniteEventsComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/idgen/springboot/IgniteIdGenComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/messaging/springboot/IgniteMessagingComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/queue/springboot/IgniteQueueComponentConverter.java
 create mode 100644 components-starter/camel-ignite-starter/src/main/java/org/apache/camel/component/ignite/set/springboot/IgniteSetComponentConverter.java
 create mode 100644 components-starter/camel-infinispan-starter/src/main/java/org/apache/camel/component/infinispan/springboot/InfinispanComponentConverter.java
 create mode 100644 components-starter/camel-influxdb-starter/src/main/java/org/apache/camel/component/influxdb/springboot/InfluxDbComponentConverter.java
 create mode 100644 components-starter/camel-jcache-starter/src/main/java/org/apache/camel/component/jcache/springboot/JCacheComponentConverter.java
 create mode 100644 components-starter/camel-jdbc-starter/src/main/java/org/apache/camel/component/jdbc/springboot/JdbcComponentConverter.java
 create mode 100644 components-starter/camel-jetty-starter/src/main/java/org/apache/camel/component/jetty9/springboot/JettyHttpComponentConverter9.java
 create mode 100644 components-starter/camel-jgroups-raft-starter/src/main/java/org/apache/camel/component/jgroups/raft/springboot/JGroupsRaftComponentConverter.java
 create mode 100644 components-starter/camel-jgroups-starter/src/main/java/org/apache/camel/component/jgroups/springboot/JGroupsComponentConverter.java
 create mode 100644 components-starter/camel-jira-starter/src/main/java/org/apache/camel/component/jira/springboot/JiraComponentConverter.java
 create mode 100644 components-starter/camel-jms-starter/src/main/java/org/apache/camel/component/jms/springboot/JmsComponentConverter.java
 create mode 100644 components-starter/camel-jolt-starter/src/main/java/org/apache/camel/component/jolt/springboot/JoltComponentConverter.java
 create mode 100644 components-starter/camel-jooq-starter/src/main/java/org/apache/camel/component/jooq/springboot/JooqComponentConverter.java
 create mode 100644 components-starter/camel-jpa-starter/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConverter.java
 create mode 100644 components-starter/camel-jslt-starter/src/main/java/org/apache/camel/component/jslt/springboot/JsltComponentConverter.java
 create mode 100644 components-starter/camel-jt400-starter/src/main/java/org/apache/camel/component/jt400/springboot/Jt400ComponentConverter.java
 create mode 100644 components-starter/camel-kafka-starter/src/main/java/org/apache/camel/component/kafka/springboot/KafkaComponentConverter.java
 create mode 100644 components-starter/camel-log-starter/src/main/java/org/apache/camel/component/log/springboot/LogComponentConverter.java
 create mode 100644 components-starter/camel-lucene-starter/src/main/java/org/apache/camel/component/lucene/springboot/LuceneComponentConverter.java
 create mode 100644 components-starter/camel-lumberjack-starter/src/main/java/org/apache/camel/component/lumberjack/springboot/LumberjackComponentConverter.java
 create mode 100644 components-starter/camel-mail-starter/src/main/java/org/apache/camel/component/mail/springboot/MailComponentConverter.java
 create mode 100644 components-starter/camel-master-starter/src/main/java/org/apache/camel/component/master/springboot/MasterComponentConverter.java
 create mode 100644 components-starter/camel-metrics-starter/src/main/java/org/apache/camel/component/metrics/springboot/MetricsComponentConverter.java
 create mode 100644 components-starter/camel-micrometer-starter/src/main/java/org/apache/camel/component/micrometer/springboot/MicrometerComponentConverter.java
 create mode 100644 components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/client/springboot/MiloClientComponentConverter.java
 create mode 100644 components-starter/camel-milo-starter/src/main/java/org/apache/camel/component/milo/server/springboot/MiloServerComponentConverter.java
 create mode 100644 components-starter/camel-mina-starter/src/main/java/org/apache/camel/component/mina/springboot/MinaComponentConverter.java
 create mode 100644 components-starter/camel-minio-starter/src/main/java/org/apache/camel/component/minio/springboot/MinioComponentConverter.java
 create mode 100644 components-starter/camel-mllp-starter/src/main/java/org/apache/camel/component/mllp/springboot/MllpComponentConverter.java
 create mode 100644 components-starter/camel-mongodb-starter/src/main/java/org/apache/camel/component/mongodb/springboot/MongoDbComponentConverter.java
 create mode 100644 components-starter/camel-msv-starter/src/main/java/org/apache/camel/component/validator/msv/springboot/MsvComponentConverter.java
 create mode 100644 components-starter/camel-mustache-starter/src/main/java/org/apache/camel/component/mustache/springboot/MustacheComponentConverter.java
 create mode 100644 components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisBeanComponentConverter.java
 create mode 100644 components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConverter.java
 create mode 100644 components-starter/camel-nagios-starter/src/main/java/org/apache/camel/component/nagios/springboot/NagiosComponentConverter.java
 create mode 100644 components-starter/camel-netty-http-starter/src/main/java/org/apache/camel/component/netty/http/springboot/NettyHttpComponentConverter.java
 create mode 100644 components-starter/camel-netty-starter/src/main/java/org/apache/camel/component/netty/springboot/NettyComponentConverter.java
 create mode 100644 components-starter/camel-olingo2-starter/src/main/java/org/apache/camel/component/olingo2/springboot/Olingo2ComponentConverter.java
 create mode 100644 components-starter/camel-olingo4-starter/src/main/java/org/apache/camel/component/olingo4/springboot/Olingo4ComponentConverter.java
 create mode 100644 components-starter/camel-paho-starter/src/main/java/org/apache/camel/component/paho/springboot/PahoComponentConverter.java
 create mode 100644 components-starter/camel-platform-http-starter/src/main/java/org/apache/camel/component/platform/http/springboot/PlatformHttpComponentConverter.java
 create mode 100644 components-starter/camel-pulsar-starter/src/main/java/org/apache/camel/component/pulsar/springboot/PulsarComponentConverter.java
 create mode 100644 components-starter/camel-quartz-starter/src/main/java/org/apache/camel/component/quartz/springboot/QuartzComponentConverter.java
 create mode 100644 components-starter/camel-quickfix-starter/src/main/java/org/apache/camel/component/quickfixj/springboot/QuickfixjComponentConverter.java
 create mode 100644 components-starter/camel-rabbitmq-starter/src/main/java/org/apache/camel/component/rabbitmq/springboot/RabbitMQComponentConverter.java
 create mode 100644 components-starter/camel-reactive-streams-starter/src/main/java/org/apache/camel/component/reactive/streams/springboot/ReactiveStreamsComponentConverter.java
 create mode 100644 components-starter/camel-rest-openapi-starter/src/main/java/org/apache/camel/component/rest/openapi/springboot/RestOpenApiComponentConverter.java
 create mode 100644 components-starter/camel-rest-swagger-starter/src/main/java/org/apache/camel/component/rest/swagger/springboot/RestSwaggerComponentConverter.java
 create mode 100644 components-starter/camel-resteasy-starter/src/main/java/org/apache/camel/component/resteasy/springboot/ResteasyComponentConverter.java
 create mode 100644 components-starter/camel-robotframework-starter/src/main/java/org/apache/camel/component/robotframework/springboot/RobotFrameworkComponentConverter.java
 create mode 100644 components-starter/camel-salesforce-starter/src/main/java/org/apache/camel/component/salesforce/springboot/SalesforceComponentConverter.java
 create mode 100644 components-starter/camel-saxon-starter/src/main/java/org/apache/camel/component/xquery/springboot/XQueryComponentConverter.java
 create mode 100644 components-starter/camel-seda-starter/src/main/java/org/apache/camel/component/seda/springboot/SedaComponentConverter.java
 create mode 100644 components-starter/camel-service-starter/src/main/java/org/apache/camel/component/service/springboot/ServiceComponentConverter.java
 create mode 100644 components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConverter.java
 create mode 100644 components-starter/camel-servlet-starter/src/main/java/org/apache/camel/component/servlet/springboot/ServletComponentConverter.java
 create mode 100644 components-starter/camel-sjms-starter/src/main/java/org/apache/camel/component/sjms/batch/springboot/SjmsBatchComponentConverter.java
 create mode 100644 components-starter/camel-sjms-starter/src/main/java/org/apache/camel/component/sjms/springboot/SjmsComponentConverter.java
 create mode 100644 components-starter/camel-sjms2-starter/src/main/java/org/apache/camel/component/sjms2/springboot/Sjms2ComponentConverter.java
 create mode 100644 components-starter/camel-smpp-starter/src/main/java/org/apache/camel/component/smpp/springboot/SmppComponentConverter.java
 create mode 100644 components-starter/camel-spark-starter/src/main/java/org/apache/camel/component/spark/springboot/SparkComponentConverter.java
 create mode 100644 components-starter/camel-splunk-starter/src/main/java/org/apache/camel/component/splunk/springboot/SplunkComponentConverter.java
 create mode 100644 components-starter/camel-spring-batch-starter/src/main/java/org/apache/camel/component/spring/batch/springboot/SpringBatchComponentConverter.java
 create mode 100644 components-starter/camel-sql-starter/src/main/java/org/apache/camel/component/sql/springboot/SqlComponentConverter.java
 create mode 100644 components-starter/camel-sql-starter/src/main/java/org/apache/camel/component/sql/stored/springboot/SqlStoredComponentConverter.java
 create mode 100644 components-starter/camel-ssh-starter/src/main/java/org/apache/camel/component/ssh/springboot/SshComponentConverter.java
 create mode 100644 components-starter/camel-stomp-starter/src/main/java/org/apache/camel/component/stomp/springboot/StompComponentConverter.java
 create mode 100644 components-starter/camel-stub-starter/src/main/java/org/apache/camel/component/stub/springboot/StubComponentConverter.java
 create mode 100644 components-starter/camel-telegram-starter/src/main/java/org/apache/camel/component/telegram/springboot/TelegramComponentConverter.java
 create mode 100644 components-starter/camel-twilio-starter/src/main/java/org/apache/camel/component/twilio/springboot/TwilioComponentConverter.java
 create mode 100644 components-starter/camel-undertow-starter/src/main/java/org/apache/camel/component/undertow/springboot/UndertowComponentConverter.java
 create mode 100644 components-starter/camel-validator-starter/src/main/java/org/apache/camel/component/validator/springboot/ValidatorComponentConverter.java
 create mode 100644 components-starter/camel-velocity-starter/src/main/java/org/apache/camel/component/velocity/springboot/VelocityComponentConverter.java
 create mode 100644 components-starter/camel-vertx-http-starter/src/main/java/org/apache/camel/component/vertx/http/springboot/VertxHttpComponentConverter.java
 create mode 100644 components-starter/camel-vertx-starter/src/main/java/org/apache/camel/component/vertx/springboot/VertxComponentConverter.java
 create mode 100644 components-starter/camel-vertx-websocket-starter/src/main/java/org/apache/camel/component/vertx/websocket/springboot/VertxWebsocketComponentConverter.java
 create mode 100644 components-starter/camel-vm-starter/src/main/java/org/apache/camel/component/vm/springboot/VmComponentConverter.java
 create mode 100644 components-starter/camel-web3j-starter/src/main/java/org/apache/camel/component/web3j/springboot/Web3jComponentConverter.java
 create mode 100644 components-starter/camel-webhook-starter/src/main/java/org/apache/camel/component/webhook/springboot/WebhookComponentConverter.java
 create mode 100644 components-starter/camel-websocket-jsr356-starter/src/main/java/org/apache/camel/websocket/jsr356/springboot/JSR356WebSocketComponentConverter.java
 create mode 100644 components-starter/camel-websocket-starter/src/main/java/org/apache/camel/component/websocket/springboot/WebsocketComponentConverter.java
 create mode 100644 components-starter/camel-wordpress-starter/src/main/java/org/apache/camel/component/wordpress/springboot/WordpressComponentConverter.java
 create mode 100644 components-starter/camel-xj-starter/src/main/java/org/apache/camel/component/xj/springboot/XJComponentConverter.java
 create mode 100644 components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlSignerComponentConverter.java
 create mode 100644 components-starter/camel-xmlsecurity-starter/src/main/java/org/apache/camel/component/xmlsecurity/springboot/XmlVerifierComponentConverter.java
 create mode 100644 components-starter/camel-xslt-saxon-starter/src/main/java/org/apache/camel/component/xslt/saxon/springboot/XsltSaxonComponentConverter.java
 create mode 100644 components-starter/camel-xslt-starter/src/main/java/org/apache/camel/component/xslt/springboot/XsltComponentConverter.java
 create mode 100644 components-starter/camel-yammer-starter/src/main/java/org/apache/camel/component/yammer/springboot/YammerComponentConverter.java
 create mode 100644 components-starter/camel-zendesk-starter/src/main/java/org/apache/camel/component/zendesk/springboot/ZendeskComponentConverter.java
 create mode 100644 components-starter/camel-zookeeper-master-starter/src/main/java/org/apache/camel/component/zookeepermaster/springboot/MasterComponentConverter.java
 create mode 100644 components-starter/camel-zookeeper-starter/src/main/java/org/apache/camel/component/zookeeper/springboot/ZooKeeperComponentConverter.java


[camel-spring-boot] 01/06: CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 850a26b02b434f44b8f6a6f718773bf3e1b38273
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Nov 16 10:22:18 2020 +0100

    CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
---
 .../maven/SpringBootAutoConfigurationMojo.java     | 651 +++++++++++++++------
 1 file changed, 475 insertions(+), 176 deletions(-)

diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
index e96aa7c..c06b896 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.springboot.maven;
 
+import javax.annotation.Generated;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
@@ -39,8 +40,6 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import java.util.zip.ZipEntry;
 
-import javax.annotation.Generated;
-
 import org.apache.camel.maven.packaging.AbstractGeneratorMojo;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.ComponentModel.ComponentOptionModel;
@@ -333,7 +332,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
 
             configClass.addField().setName("enabled").setType(boolean.class).setPrivate().setLiteralInitializer("true").getJavaDoc().setFullText("Enable the component");
             configClass.addField().setName("configurations").setType(loadType("java.util.Map<java.lang.String, " + packageName + "." + commonName + ">")).setPrivate()
-                .setLiteralInitializer("new HashMap<>()").getJavaDoc().setFullText("Define additional configuration definitions");
+                    .setLiteralInitializer("new HashMap<>()").getJavaDoc().setFullText("Define additional configuration definitions");
 
             Method method;
 
@@ -470,24 +469,24 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         method.addAnnotation(ConditionalOnClass.class).setLiteralValue("value", "CamelContext.class");
         method.addAnnotation(ConditionalOnMissingBean.class);
         method.setBody("" + "Map<String, Object> properties = new HashMap<>();\n" + "IntrospectionSupport.getProperties(config, properties, null, false);\n"
-                       + "// These options is configured specially further below, so remove them first\n" + "properties.remove(\"enableCors\");\n"
-                       + "properties.remove(\"apiProperty\");\n" + "properties.remove(\"componentProperty\");\n" + "properties.remove(\"consumerProperty\");\n"
-                       + "properties.remove(\"dataFormatProperty\");\n" + "properties.remove(\"endpointProperty\");\n" + "properties.remove(\"corsHeaders\");\n" + "\n"
-                       + "RestConfiguration definition = new RestConfiguration();\n" + "CamelPropertiesHelper.setCamelProperties(camelContext, definition, properties, true);\n"
-                       + "\n" + "// Workaround for spring-boot properties name as It would appear\n" + "// as enable-c-o-r-s if left uppercase in Configuration\n"
-                       + "definition.setEnableCORS(config.getEnableCors());\n" + "\n" + "if (config.getApiProperty() != null) {\n"
-                       + "    definition.setApiProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getApiProperty(), \".\")));\n" + "}\n"
-                       + "if (config.getComponentProperty() != null) {\n"
-                       + "    definition.setComponentProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getComponentProperty(), \".\")));\n" + "}\n"
-                       + "if (config.getConsumerProperty() != null) {\n"
-                       + "    definition.setConsumerProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getConsumerProperty(), \".\")));\n" + "}\n"
-                       + "if (config.getDataFormatProperty() != null) {\n"
-                       + "    definition.setDataFormatProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getDataFormatProperty(), \".\")));\n" + "}\n"
-                       + "if (config.getEndpointProperty() != null) {\n"
-                       + "    definition.setEndpointProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getEndpointProperty(), \".\")));\n" + "}\n"
-                       + "if (config.getCorsHeaders() != null) {\n" + "    Map<String, Object> map = CollectionHelper.flattenKeysInMap(config.getCorsHeaders(), \".\");\n"
-                       + "    Map<String, String> target = new HashMap<>();\n" + "    map.forEach((k, v) -> target.put(k, v.toString()));\n"
-                       + "    definition.setCorsHeaders(target);\n" + "}\n" + "return definition;");
+                + "// These options is configured specially further below, so remove them first\n" + "properties.remove(\"enableCors\");\n"
+                + "properties.remove(\"apiProperty\");\n" + "properties.remove(\"componentProperty\");\n" + "properties.remove(\"consumerProperty\");\n"
+                + "properties.remove(\"dataFormatProperty\");\n" + "properties.remove(\"endpointProperty\");\n" + "properties.remove(\"corsHeaders\");\n" + "\n"
+                + "RestConfiguration definition = new RestConfiguration();\n" + "CamelPropertiesHelper.setCamelProperties(camelContext, definition, properties, true);\n"
+                + "\n" + "// Workaround for spring-boot properties name as It would appear\n" + "// as enable-c-o-r-s if left uppercase in Configuration\n"
+                + "definition.setEnableCORS(config.getEnableCors());\n" + "\n" + "if (config.getApiProperty() != null) {\n"
+                + "    definition.setApiProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getApiProperty(), \".\")));\n" + "}\n"
+                + "if (config.getComponentProperty() != null) {\n"
+                + "    definition.setComponentProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getComponentProperty(), \".\")));\n" + "}\n"
+                + "if (config.getConsumerProperty() != null) {\n"
+                + "    definition.setConsumerProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getConsumerProperty(), \".\")));\n" + "}\n"
+                + "if (config.getDataFormatProperty() != null) {\n"
+                + "    definition.setDataFormatProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getDataFormatProperty(), \".\")));\n" + "}\n"
+                + "if (config.getEndpointProperty() != null) {\n"
+                + "    definition.setEndpointProperties(new HashMap<>(CollectionHelper.flattenKeysInMap(config.getEndpointProperty(), \".\")));\n" + "}\n"
+                + "if (config.getCorsHeaders() != null) {\n" + "    Map<String, Object> map = CollectionHelper.flattenKeysInMap(config.getCorsHeaders(), \".\");\n"
+                + "    Map<String, String> target = new HashMap<>();\n" + "    map.forEach((k, v) -> target.put(k, v.toString()));\n"
+                + "    definition.setCorsHeaders(target);\n" + "}\n" + "return definition;");
 
         String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
         writeSourceIfChanged(javaClass, fileName, true);
@@ -516,7 +515,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             for (String componentClass : grModels.keySet()) {
                 List<ComponentModel> compModels = grModels.get(componentClass);
                 ComponentModel model = compModels.get(0); // They should be
-                                                          // equivalent
+                // equivalent
                 List<String> aliases = compModels.stream().map(ComponentModel::getScheme).sorted().collect(Collectors.toList());
 
                 // use springboot as sub package name so the code is not in normal
@@ -532,8 +531,12 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
 
                 beforeGenerateComponentSource(model);
 
+                boolean complexOptions = model.getOptions().stream().anyMatch(this::isComplexType);
                 createComponentConfigurationSource(pkg, model, overrideComponentName);
-                createComponentAutoConfigurationSource(pkg, model, overrideComponentName);
+                createComponentAutoConfigurationSource(pkg, model, overrideComponentName, complexOptions);
+                if (complexOptions) {
+                    createComponentConverterSource(pkg, model);
+                }
                 createComponentSpringFactorySource(pkg, model);
             }
         }
@@ -575,7 +578,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             for (String dataFormatClass : grModels.keySet()) {
                 List<DataFormatModel> dfModels = grModels.get(dataFormatClass);
                 DataFormatModel model = dfModels.get(0); // They should be
-                                                         // equivalent
+                // equivalent
                 List<String> aliases = dfModels.stream().map(DataFormatModel::getName).sorted().collect(Collectors.toList());
 
                 // use springboot as sub package name so the code is not in
@@ -590,8 +593,13 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                     overrideDataFormatName = model.getArtifactId().replace("camel-", "");
                 }
 
+
+                boolean complexOptions = model.getOptions().stream().anyMatch(this::isComplexType);
                 createDataFormatConfigurationSource(pkg, model, overrideDataFormatName);
-                createDataFormatAutoConfigurationSource(pkg, model, overrideDataFormatName);
+                createDataFormatAutoConfigurationSource(pkg, model, overrideDataFormatName, complexOptions);
+                if (complexOptions) {
+                    createDataFormatConverterSource(pkg, model);
+                }
                 createDataFormatSpringFactorySource(pkg, model);
             }
         }
@@ -619,7 +627,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             for (String languageClass : grModels.keySet()) {
                 List<LanguageModel> dfModels = grModels.get(languageClass);
                 LanguageModel model = dfModels.get(0); // They should be
-                                                       // equivalent
+                // equivalent
                 List<String> aliases = dfModels.stream().map(LanguageModel::getName).sorted().collect(Collectors.toList());
 
                 // use springboot as sub package name so the code is not in
@@ -634,8 +642,12 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                     overrideLanguageName = model.getArtifactId().replace("camel-", "");
                 }
 
+                boolean complexOptions = model.getOptions().stream().anyMatch(this::isComplexType);
                 createLanguageConfigurationSource(pkg, model, overrideLanguageName);
-                createLanguageAutoConfigurationSource(pkg, model, overrideLanguageName);
+                createLanguageAutoConfigurationSource(pkg, model, overrideLanguageName, complexOptions);
+                if (complexOptions) {
+                    createLanguageConverterSource(pkg, model);
+                }
                 createLanguageSpringFactorySource(pkg, model);
             }
         }
@@ -731,7 +743,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
         writeSourceIfChanged(javaClass, fileName, true);
     }
-    
+
     private String convertDurationToMillisec(String pattern) {
         String value = null;
         pattern = pattern.toLowerCase();
@@ -846,78 +858,78 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                     return null;
                 }
                 JavaClass nestedType = new JavaClass(getProjectClassLoader()).setPackage(clazz.getPackage().getName()).setName(clazz.getSimpleName()).setEnum(clazz.isEnum())
-                    .setClass(!clazz.isInterface()).setAbstract((clazz.getModifiers() & Modifier.ABSTRACT) != 0).setStatic((clazz.getModifiers() & Modifier.STATIC) != 0)
-                    .extendSuperType(clazz.getGenericSuperclass() != null ? new GenericType(clazz.getGenericSuperclass()).toString() : null);
+                        .setClass(!clazz.isInterface()).setAbstract((clazz.getModifiers() & Modifier.ABSTRACT) != 0).setStatic((clazz.getModifiers() & Modifier.STATIC) != 0)
+                        .extendSuperType(clazz.getGenericSuperclass() != null ? new GenericType(clazz.getGenericSuperclass()).toString() : null);
 
                 List<java.lang.reflect.Method> publicMethods = Stream.of(clazz.getDeclaredMethods()).filter(m -> Modifier.isPublic(m.getModifiers())).collect(Collectors.toList());
                 List<java.lang.reflect.Method> allSetters = publicMethods.stream().filter(m -> m.getReturnType() == void.class || m.getReturnType() == clazz)
-                    .filter(m -> m.getParameterCount() == 1).filter(m -> m.getName().matches("set[A-Z][a-zA-Z0-9]*")).collect(Collectors.toList());
+                        .filter(m -> m.getParameterCount() == 1).filter(m -> m.getName().matches("set[A-Z][a-zA-Z0-9]*")).collect(Collectors.toList());
                 List<java.lang.reflect.Method> allGetters = publicMethods.stream().filter(m -> m.getReturnType() != void.class).filter(m -> m.getParameterCount() == 0)
-                    .filter(m -> m.getName().matches("(get|is)[A-Z][a-zA-Z0-9]*")).collect(Collectors.toList());
+                        .filter(m -> m.getName().matches("(get|is)[A-Z][a-zA-Z0-9]*")).collect(Collectors.toList());
                 allSetters.stream()
                         .sorted(Comparator.<java.lang.reflect.Method>comparingInt(m -> getSetterPosition(sourceCode, m))
-                                          .thenComparing(java.lang.reflect.Method::getName))
+                                .thenComparing(java.lang.reflect.Method::getName))
                         .map(m -> StringUtils.uncapitalize(m.getName().substring(3)))
                         .forEach(fn -> {
-                    Class<?> ft;
-                    Type wft;
-                    boolean isBoolean;
-                    java.lang.reflect.Field field = Stream.of(clazz.getDeclaredFields()).filter(f -> f.getName().equals(fn)).findAny().orElse(null);
-                    List<java.lang.reflect.Method> setters = allSetters.stream().filter(m -> m.getName().equals("set" + StringUtils.capitalize(fn))).collect(Collectors.toList());
-                    List<java.lang.reflect.Method> getters = allGetters.stream()
-                        .filter(m -> m.getName().equals("get" + StringUtils.capitalize(fn)) || m.getName().equals("is" + StringUtils.capitalize(fn))).collect(Collectors.toList());
-                    java.lang.reflect.Method mutator;
-                    java.lang.reflect.Method accessor;
-                    if (setters.size() == 1) {
-                        mutator = setters.get(0);
-                        ft = mutator.getParameterTypes()[0];
-                        wft = PRIMITIVE_CLASSES.getOrDefault(ft, ft);
-                        isBoolean = ft == boolean.class || ft == Boolean.class;
-                        accessor = allGetters.stream()
-                            .filter(m -> m.getName().equals("get" + StringUtils.capitalize(fn)) || isBoolean && m.getName().equals("is" + StringUtils.capitalize(fn)))
-                            .filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getReturnType(), m.getReturnType()) == wft).findAny().orElse(null);
-                    } else if (field != null) {
-                        ft = field.getType();
-                        wft = PRIMITIVE_CLASSES.getOrDefault(ft, ft);
-                        isBoolean = ft == boolean.class || ft == Boolean.class;
-                        mutator = allSetters.stream().filter(m -> m.getName().equals("set" + StringUtils.capitalize(fn)))
-                            .filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getParameterTypes()[0], m.getParameterTypes()[0]) == wft).findAny().orElse(null);
-                        accessor = allGetters.stream()
-                            .filter(m -> m.getName().equals("get" + StringUtils.capitalize(fn)) || isBoolean && m.getName().equals("is" + StringUtils.capitalize(fn)))
-                            .filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getReturnType(), m.getReturnType()) == wft).findAny().orElse(null);
-                    } else {
-                        if (getters.size() == 1) {
-                            ft = getters.get(0).getReturnType();
-                        } else {
-                            throw new IllegalStateException("Unable to determine type for property " + fn);
-                        }
-                        wft = PRIMITIVE_CLASSES.getOrDefault(ft, ft);
-                        mutator = setters.stream().filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getParameterTypes()[0], m.getParameterTypes()[0]) == wft).findAny().orElse(null);
-                        accessor = getters.stream().filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getReturnType(), m.getReturnType()) == wft).findAny().orElse(null);
-                    }
-                    if (mutator == null) {
-                        throw new IllegalStateException("Could not find mutator for property " + fn);
-                    }
-                    Property property = nestedType.addProperty(new GenericType(wft), fn);
-                    property.getMutator().getJavaDoc().setText(getSetterJavaDoc(sourceCode, fn));
-                    for (java.lang.annotation.Annotation ann : mutator.getAnnotations()) {
-                        addAnnotation(ac -> property.getMutator().addAnnotation(ac), ann);
-                    }
-                    if (accessor != null) {
-                        for (java.lang.annotation.Annotation ann : accessor.getAnnotations()) {
-                            addAnnotation(ac -> property.getAccessor().addAnnotation(ac), ann);
-                        }
-                    } else {
-                        property.removeAccessor();
-                    }
-                    if (field != null) {
-                        for (java.lang.annotation.Annotation ann : field.getAnnotations()) {
-                            addAnnotation(ac -> property.getField().addAnnotation(ac), ann);
-                        }
-                    } else {
-                        property.removeField();
-                    }
-                });
+                            Class<?> ft;
+                            Type wft;
+                            boolean isBoolean;
+                            java.lang.reflect.Field field = Stream.of(clazz.getDeclaredFields()).filter(f -> f.getName().equals(fn)).findAny().orElse(null);
+                            List<java.lang.reflect.Method> setters = allSetters.stream().filter(m -> m.getName().equals("set" + StringUtils.capitalize(fn))).collect(Collectors.toList());
+                            List<java.lang.reflect.Method> getters = allGetters.stream()
+                                    .filter(m -> m.getName().equals("get" + StringUtils.capitalize(fn)) || m.getName().equals("is" + StringUtils.capitalize(fn))).collect(Collectors.toList());
+                            java.lang.reflect.Method mutator;
+                            java.lang.reflect.Method accessor;
+                            if (setters.size() == 1) {
+                                mutator = setters.get(0);
+                                ft = mutator.getParameterTypes()[0];
+                                wft = PRIMITIVE_CLASSES.getOrDefault(ft, ft);
+                                isBoolean = ft == boolean.class || ft == Boolean.class;
+                                accessor = allGetters.stream()
+                                        .filter(m -> m.getName().equals("get" + StringUtils.capitalize(fn)) || isBoolean && m.getName().equals("is" + StringUtils.capitalize(fn)))
+                                        .filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getReturnType(), m.getReturnType()) == wft).findAny().orElse(null);
+                            } else if (field != null) {
+                                ft = field.getType();
+                                wft = PRIMITIVE_CLASSES.getOrDefault(ft, ft);
+                                isBoolean = ft == boolean.class || ft == Boolean.class;
+                                mutator = allSetters.stream().filter(m -> m.getName().equals("set" + StringUtils.capitalize(fn)))
+                                        .filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getParameterTypes()[0], m.getParameterTypes()[0]) == wft).findAny().orElse(null);
+                                accessor = allGetters.stream()
+                                        .filter(m -> m.getName().equals("get" + StringUtils.capitalize(fn)) || isBoolean && m.getName().equals("is" + StringUtils.capitalize(fn)))
+                                        .filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getReturnType(), m.getReturnType()) == wft).findAny().orElse(null);
+                            } else {
+                                if (getters.size() == 1) {
+                                    ft = getters.get(0).getReturnType();
+                                } else {
+                                    throw new IllegalStateException("Unable to determine type for property " + fn);
+                                }
+                                wft = PRIMITIVE_CLASSES.getOrDefault(ft, ft);
+                                mutator = setters.stream().filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getParameterTypes()[0], m.getParameterTypes()[0]) == wft).findAny().orElse(null);
+                                accessor = getters.stream().filter(m -> PRIMITIVE_CLASSES.getOrDefault(m.getReturnType(), m.getReturnType()) == wft).findAny().orElse(null);
+                            }
+                            if (mutator == null) {
+                                throw new IllegalStateException("Could not find mutator for property " + fn);
+                            }
+                            Property property = nestedType.addProperty(new GenericType(wft), fn);
+                            property.getMutator().getJavaDoc().setText(getSetterJavaDoc(sourceCode, fn));
+                            for (java.lang.annotation.Annotation ann : mutator.getAnnotations()) {
+                                addAnnotation(ac -> property.getMutator().addAnnotation(ac), ann);
+                            }
+                            if (accessor != null) {
+                                for (java.lang.annotation.Annotation ann : accessor.getAnnotations()) {
+                                    addAnnotation(ac -> property.getAccessor().addAnnotation(ac), ann);
+                                }
+                            } else {
+                                property.removeAccessor();
+                            }
+                            if (field != null) {
+                                for (java.lang.annotation.Annotation ann : field.getAnnotations()) {
+                                    addAnnotation(ac -> property.getField().addAnnotation(ac), ann);
+                                }
+                            } else {
+                                property.removeField();
+                            }
+                        });
                 return nestedType;
             } catch (ClassNotFoundException e) {
                 return null;
@@ -944,7 +956,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                 if (idx > 0) {
                     sourceCode = sourceCode.substring(0, idx);
                     List<String> lines = Stream.of(sourceCode.split("\n")).map(String::trim).map(s -> s.startsWith("*") ? s.substring(1) : s).map(String::trim)
-                        .filter(s -> !s.isEmpty()).collect(Collectors.toList());
+                            .filter(s -> !s.isEmpty()).collect(Collectors.toList());
                     int lastLine = 0;
                     while (lastLine < lines.size()) {
                         if (lines.get(lastLine).startsWith("@")) {
@@ -985,8 +997,8 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         if ("netty-http".equals(model.getScheme())) {
             String name = option.getName();
             if (name.equals("textline") || name.equals("delimiter") || name.equals("autoAppendDelimiter") || name.equals("decoderMaxLineLength") || name.equals("encoding")
-                || name.equals("allowDefaultCodec") || name.equals("udpConnectionlessSending") || name.equals("networkInterface") || name.equals("clientMode")
-                || name.equals("reconnect") || name.equals("reconnectInterval") || name.equals("useByteBuf") || name.equals("udpByteArrayCodec") || name.equals("broadcast")) {
+                    || name.equals("allowDefaultCodec") || name.equals("udpConnectionlessSending") || name.equals("networkInterface") || name.equals("clientMode")
+                    || name.equals("reconnect") || name.equals("reconnectInterval") || name.equals("useByteBuf") || name.equals("udpByteArrayCodec") || name.equals("broadcast")) {
                 return true;
             }
         }
@@ -1142,8 +1154,8 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             } else if ("tokenize".equals(model.getName())) {
                 // and skip following as they are not global options
                 if ("token".equals(option.getName()) || "endToken".equals(option.getName()) || "inheritNamespaceTagName".equals(option.getName())
-                    || "headerName".equals(option.getName()) || "regex".equals(option.getName()) || "xml".equals(option.getName()) || "includeTokens".equals(option.getName())
-                    || "group".equals(option.getName()) || "skipFirst".equals(option.getName())) {
+                        || "headerName".equals(option.getName()) || "regex".equals(option.getName()) || "xml".equals(option.getName()) || "includeTokens".equals(option.getName())
+                        || "group".equals(option.getName()) || "skipFirst".equals(option.getName())) {
                     continue;
                 }
             } else if ("xtokenize".equals(model.getName())) {
@@ -1226,14 +1238,14 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         return getProjectClassLoader().generateDummyClass(clazzName);
     }
 
-    private void createComponentAutoConfigurationSource(String packageName, ComponentModel model, String overrideName)
-        throws MojoFailureException {
+    private void createComponentAutoConfigurationSource(String packageName, ComponentModel model, String overrideName, boolean complexOptions)
+            throws MojoFailureException {
 
         final String name = model.getJavaType().substring(model.getJavaType().lastIndexOf(".") + 1).replace("Component", "ComponentAutoConfiguration");
         final String configurationName = name.replace("ComponentAutoConfiguration", "ComponentConfiguration");
         final String componentName = (overrideName != null ? overrideName : model.getScheme()).toLowerCase(Locale.US);
         final Class<?> configClass = generateDummyClass(packageName + "." + configurationName);
-        final JavaClass javaClass = new JavaClass(getProjectClassLoader());
+        JavaClass javaClass = new JavaClass(getProjectClassLoader());
 
         javaClass.setPackage(packageName);
         javaClass.setName(name);
@@ -1243,14 +1255,15 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addAnnotation(AutoConfigureAfter.class).setLiteralValue("CamelAutoConfiguration.class");
         javaClass.addAnnotation(Conditional.class).setLiteralValue("ConditionalOnCamelContextAndAutoConfigurationBeans.class");
         javaClass.addAnnotation(EnableConfigurationProperties.class)
-            .setLiteralValue("{ComponentConfigurationProperties.class," + configurationName + ".class}");
+                .setLiteralValue("{ComponentConfigurationProperties.class," + configurationName + ".class}");
 
         javaClass.addAnnotation("org.apache.camel.spring.boot.util.ConditionalOnHierarchicalProperties")
-            .setStringArrayValue(
-                "value",
-                new String[] { "camel.component", "camel.component." + componentName });
+                .setStringArrayValue(
+                        "value",
+                        new String[]{"camel.component", "camel.component." + componentName});
 
         javaClass.addImport(ApplicationContext.class);
+        javaClass.addImport("org.springframework.boot.convert.ApplicationConversionService");
         javaClass.addImport("org.apache.camel.CamelContext");
         javaClass.addImport("org.apache.camel.Component");
         javaClass.addImport("org.apache.camel.spi.ComponentCustomizer");
@@ -1262,18 +1275,28 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addImport(model.getJavaType());
 
         javaClass.addField().setPrivate().setName("applicationContext").setType(ApplicationContext.class).addAnnotation(Autowired.class);
-        javaClass.addField().setPrivate().setName("camelContext").setType(loadClass("org.apache.camel.CamelContext")).addAnnotation(Autowired.class);
+        javaClass.addField().setPrivate().setFinal(true).setName("camelContext").setType(loadClass("org.apache.camel.CamelContext"));
         javaClass.addField().setPrivate().setName("configuration").setType(configClass).addAnnotation(Autowired.class);
 
+        String converterClassName = name.replace("ComponentAutoConfiguration", "ComponentConverter");
+        Method ctr = javaClass.addMethod().setConstructor(true).setPublic().setName(name).addParameter("org.apache.camel.CamelContext", "camelContext");
+        if (complexOptions) {
+            ctr.setBody("this.camelContext = camelContext;\n"
+                    + "ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();\n"
+                    + "acs.addConverter(new " + converterClassName + "(camelContext));\n");
+        } else {
+            ctr.setBody("this.camelContext = camelContext;\n");
+        }
+
         // add method for auto configure
         String body = createComponentBody(model.getShortJavaType(), componentName);
         String methodName = "configure" + model.getShortJavaType();
 
         Method method = javaClass.addMethod()
-            .setName(methodName)
-            .setPublic()
-            .setBody(body)
-            .setReturnType(loadType("org.apache.camel.spi.ComponentCustomizer"));
+                .setName(methodName)
+                .setPublic()
+                .setBody(body)
+                .setReturnType(loadType("org.apache.camel.spi.ComponentCustomizer"));
 
         method.addAnnotation(Lazy.class);
         method.addAnnotation(Bean.class);
@@ -1284,8 +1307,159 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         writeSourceIfChanged(javaClass, fileName, false);
     }
 
-    private void createDataFormatAutoConfigurationSource(String packageName, DataFormatModel model, String overrideName)
-        throws MojoFailureException {
+    private void createComponentConverterSource(String packageName, ComponentModel model)
+            throws MojoFailureException {
+
+        final String name = model.getJavaType().substring(model.getJavaType().lastIndexOf(".") + 1).replace("Component", "ComponentConverter");
+
+        // create converter class and write source
+        JavaClass javaClass = new JavaClass(getProjectClassLoader());
+        javaClass.setPackage(packageName);
+        javaClass.setName(name);
+        javaClass.getJavaDoc().setFullText("Generated by camel-package-maven-plugin - do not edit this file!");
+        javaClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
+        javaClass.addImport("java.util.LinkedHashSet");
+        javaClass.addImport("java.util.Set");
+        javaClass.addImport("org.apache.camel.CamelContext");
+        javaClass.addImport("org.springframework.core.convert.TypeDescriptor");
+        javaClass.addImport("org.springframework.core.convert.converter.GenericConverter");
+
+        javaClass.implementInterface("org.springframework.core.convert.converter.GenericConverter");
+        javaClass.addField().setPrivate().setFinal(true).setName("camelContext").setType(loadClass("org.apache.camel.CamelContext"));
+        javaClass.addMethod().setConstructor(true).setPublic().setName(name).addParameter("org.apache.camel.CamelContext", "camelContext")
+                .setBody("this.camelContext = camelContext;\n");
+
+        String body = createConverterPairBody(model);
+        javaClass.addMethod().setName("getConvertibleTypes").setPublic().setReturnType("Set<ConvertiblePair>")
+                .setBody(body);
+        body = createConvertBody(model);
+        javaClass.addMethod().setName("convert").setPublic().setReturnType("Object")
+                .addParameter("Object", "source")
+                .addParameter("TypeDescriptor", "sourceType")
+                .addParameter("TypeDescriptor", "targetType")
+                .setBody(body);
+        sortImports(javaClass);
+
+        String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
+        writeSourceIfChanged(javaClass, fileName, false);
+    }
+
+    private String createConvertBody(ComponentModel model) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("if (source == null) {\n");
+        sb.append("    return null;\n");
+        sb.append("}\n");
+        sb.append("String ref = source.toString();\n");
+        sb.append("if (!ref.startsWith(\"#\")) {\n");
+        sb.append("    return null;\n");
+        sb.append("}\n");
+        sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
+        sb.append("switch (targetType.getName()) {\n");
+        for (ComponentOptionModel option : model.getComponentOptions()) {
+            // is it a complex type
+            if (isComplexType(option)) {
+                String type = getJavaType(option);
+                sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
+            }
+        }
+        sb.append("}\n");
+        sb.append("return null;\n");
+        return sb.toString();
+    }
+
+    private String createConvertBody(DataFormatModel model) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("if (source == null) {\n");
+        sb.append("    return null;\n");
+        sb.append("}\n");
+        sb.append("String ref = source.toString();\n");
+        sb.append("if (!ref.startsWith(\"#\")) {\n");
+        sb.append("    return null;\n");
+        sb.append("}\n");
+        sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
+        sb.append("switch (targetType.getName()) {\n");
+        for (DataFormatOptionModel option : model.getOptions()) {
+            // is it a complex type
+            if (isComplexType(option)) {
+                String type = getJavaType(option);
+                sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
+            }
+        }
+        sb.append("}\n");
+        sb.append("return null;\n");
+        return sb.toString();
+    }
+
+    private String createConvertBody(LanguageModel model) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("if (source == null) {\n");
+        sb.append("    return null;\n");
+        sb.append("}\n");
+        sb.append("String ref = source.toString();\n");
+        sb.append("if (!ref.startsWith(\"#\")) {\n");
+        sb.append("    return null;\n");
+        sb.append("}\n");
+        sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
+        sb.append("switch (targetType.getName()) {\n");
+        for (LanguageOptionModel option : model.getOptions()) {
+            // is it a complex type
+            if (isComplexType(option)) {
+                String type = getJavaType(option);
+                sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
+            }
+        }
+        sb.append("}\n");
+        sb.append("return null;\n");
+        return sb.toString();
+    }
+
+    private String createConverterPairBody(ComponentModel model) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
+        for (ComponentOptionModel option : model.getComponentOptions()) {
+            // is it a complex type
+            if (isComplexType(option)) {
+                sb.append("answer.add(new ConvertiblePair(String.class, ");
+                sb.append(option.getJavaType());
+                sb.append(".class));\n");
+            }
+        }
+        sb.append("return answer;\n");
+        return sb.toString();
+    }
+
+    private String createConverterPairBody(DataFormatModel model) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
+        for (DataFormatOptionModel option : model.getOptions()) {
+            // is it a complex type
+            if (isComplexType(option)) {
+                sb.append("answer.add(new ConvertiblePair(String.class, ");
+                sb.append(option.getJavaType());
+                sb.append(".class));\n");
+            }
+        }
+        sb.append("return answer;\n");
+        return sb.toString();
+    }
+
+    private String createConverterPairBody(LanguageModel model) {
+        StringBuilder sb = new StringBuilder();
+        sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
+        for (LanguageOptionModel option : model.getOptions()) {
+            // is it a complex type
+            if (isComplexType(option)) {
+                sb.append("answer.add(new ConvertiblePair(String.class, ");
+                sb.append(option.getJavaType());
+                sb.append(".class));\n");
+            }
+        }
+        sb.append("return answer;\n");
+        return sb.toString();
+    }
+
+    private void createDataFormatAutoConfigurationSource(String packageName, DataFormatModel model, String overrideName, boolean complexOptions)
+            throws MojoFailureException {
 
         final String name = model.getJavaType().substring(model.getJavaType().lastIndexOf(".") + 1).replace("DataFormat", "DataFormatAutoConfiguration");
         final String configurationName = name.replace("DataFormatAutoConfiguration", "DataFormatConfiguration");
@@ -1301,14 +1475,15 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addAnnotation(AutoConfigureAfter.class).setLiteralValue("CamelAutoConfiguration.class");
         javaClass.addAnnotation(Conditional.class).setLiteralValue("ConditionalOnCamelContextAndAutoConfigurationBeans.class");
         javaClass.addAnnotation(EnableConfigurationProperties.class)
-            .setLiteralValue("{DataFormatConfigurationProperties.class," + configurationName + ".class}");
+                .setLiteralValue("{DataFormatConfigurationProperties.class," + configurationName + ".class}");
 
         javaClass.addAnnotation("org.apache.camel.spring.boot.util.ConditionalOnHierarchicalProperties")
-            .setStringArrayValue(
-                "value",
-                new String[] { "camel.dataformat", "camel.dataformat." + dataformatName });
+                .setStringArrayValue(
+                        "value",
+                        new String[]{"camel.dataformat", "camel.dataformat." + dataformatName});
 
         javaClass.addImport(ApplicationContext.class);
+        javaClass.addImport("org.springframework.boot.convert.ApplicationConversionService");
         javaClass.addImport("org.apache.camel.CamelContext");
         javaClass.addImport("org.apache.camel.spring.boot.CamelAutoConfiguration");
         javaClass.addImport("org.apache.camel.spring.boot.DataFormatConfigurationProperties");
@@ -1320,17 +1495,27 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addImport(model.getJavaType());
 
         javaClass.addField().setPrivate().setName("applicationContext").setType(ApplicationContext.class).addAnnotation(Autowired.class);
-        javaClass.addField().setPrivate().setName("camelContext").setType(loadType("org.apache.camel.CamelContext")).addAnnotation(Autowired.class);
+        javaClass.addField().setPrivate().setFinal(true).setName("camelContext").setType(loadClass("org.apache.camel.CamelContext"));
         javaClass.addField().setPrivate().setName("configuration").setType(configClass).addAnnotation(Autowired.class);
 
+        String converterClassName = name.replace("DataFormatAutoConfiguration", "DataFormatConverter");
+        Method ctr = javaClass.addMethod().setConstructor(true).setPublic().setName(name).addParameter("org.apache.camel.CamelContext", "camelContext");
+        if (complexOptions) {
+            ctr.setBody("this.camelContext = camelContext;\n"
+                    + "ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();\n"
+                    + "acs.addConverter(new " + converterClassName + "(camelContext));\n");
+        } else {
+            ctr.setBody("this.camelContext = camelContext;\n");
+        }
+
         String body = createDataFormatBody(model.getShortJavaType(), dataformatName);
         String methodName = "configure" + model.getShortJavaType() + "Factory";
 
         Method method = javaClass.addMethod()
-            .setName(methodName)
-            .setPublic()
-            .setBody(body)
-            .setReturnType(loadType("org.apache.camel.spi.DataFormatCustomizer"));
+                .setName(methodName)
+                .setPublic()
+                .setBody(body)
+                .setReturnType(loadType("org.apache.camel.spi.DataFormatCustomizer"));
 
         method.addAnnotation(Lazy.class);
         method.addAnnotation(Bean.class);
@@ -1341,8 +1526,45 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         writeSourceIfChanged(javaClass, fileName, false);
     }
 
-    private void createLanguageAutoConfigurationSource(String packageName, LanguageModel model, String overrideName)
-        throws MojoFailureException {
+    private void createDataFormatConverterSource(String packageName, DataFormatModel model)
+            throws MojoFailureException {
+
+        final String name = model.getJavaType().substring(model.getJavaType().lastIndexOf(".") + 1).replace("DataFormat", "DataFormatConverter");
+
+        // create converter class and write source
+        JavaClass javaClass = new JavaClass(getProjectClassLoader());
+        javaClass.setPackage(packageName);
+        javaClass.setName(name);
+        javaClass.getJavaDoc().setFullText("Generated by camel-package-maven-plugin - do not edit this file!");
+        javaClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
+        javaClass.addImport("java.util.LinkedHashSet");
+        javaClass.addImport("java.util.Set");
+        javaClass.addImport("org.apache.camel.CamelContext");
+        javaClass.addImport("org.springframework.core.convert.TypeDescriptor");
+        javaClass.addImport("org.springframework.core.convert.converter.GenericConverter");
+
+        javaClass.implementInterface("org.springframework.core.convert.converter.GenericConverter");
+        javaClass.addField().setPrivate().setFinal(true).setName("camelContext").setType(loadClass("org.apache.camel.CamelContext"));
+        javaClass.addMethod().setConstructor(true).setPublic().setPublic().setName(name).addParameter("org.apache.camel.CamelContext", "camelContext")
+                .setBody("this.camelContext = camelContext;\n");
+
+        String body = createConverterPairBody(model);
+        javaClass.addMethod().setName("getConvertibleTypes").setPublic().setReturnType("Set<ConvertiblePair>")
+                .setBody(body);
+        body = createConvertBody(model);
+        javaClass.addMethod().setName("convert").setPublic().setReturnType("Object")
+                .addParameter("Object", "source")
+                .addParameter("TypeDescriptor", "sourceType")
+                .addParameter("TypeDescriptor", "targetType")
+                .setBody(body);
+        sortImports(javaClass);
+
+        String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
+        writeSourceIfChanged(javaClass, fileName, false);
+    }
+
+    private void createLanguageAutoConfigurationSource(String packageName, LanguageModel model, String overrideName, boolean complexOptions)
+            throws MojoFailureException {
 
         final String name = model.getJavaType().substring(model.getJavaType().lastIndexOf(".") + 1).replace("Language", "LanguageAutoConfiguration");
         final String configurationName = name.replace("LanguageAutoConfiguration", "LanguageConfiguration");
@@ -1358,14 +1580,15 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addAnnotation(AutoConfigureAfter.class).setLiteralValue("CamelAutoConfiguration.class");
         javaClass.addAnnotation(Conditional.class).setLiteralValue("ConditionalOnCamelContextAndAutoConfigurationBeans.class");
         javaClass.addAnnotation(EnableConfigurationProperties.class)
-            .setLiteralValue("{LanguageConfigurationProperties.class," + configurationName + ".class}");
+                .setLiteralValue("{LanguageConfigurationProperties.class," + configurationName + ".class}");
 
         javaClass.addAnnotation("org.apache.camel.spring.boot.util.ConditionalOnHierarchicalProperties")
-            .setStringArrayValue(
-                "value",
-                new String[] { "camel.language", "camel.language." + languageName });
+                .setStringArrayValue(
+                        "value",
+                        new String[]{"camel.language", "camel.language." + languageName});
 
         javaClass.addImport(ApplicationContext.class);
+        javaClass.addImport("org.springframework.boot.convert.ApplicationConversionService");
         javaClass.addImport("org.apache.camel.CamelContext");
         javaClass.addImport("org.apache.camel.spring.boot.CamelAutoConfiguration");
         javaClass.addImport("org.apache.camel.spring.boot.LanguageConfigurationProperties");
@@ -1377,17 +1600,27 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         javaClass.addImport(model.getJavaType());
 
         javaClass.addField().setPrivate().setName("applicationContext").setType(ApplicationContext.class).addAnnotation(Autowired.class);
-        javaClass.addField().setPrivate().setName("camelContext").setType(loadType("org.apache.camel.CamelContext")).addAnnotation(Autowired.class);
+        javaClass.addField().setPrivate().setFinal(true).setName("camelContext").setType(loadClass("org.apache.camel.CamelContext"));
         javaClass.addField().setPrivate().setName("configuration").setType(configClass).addAnnotation(Autowired.class);
 
+        String converterClassName = name.replace("LanguageAutoConfiguration", "LanguageConverter");
+        Method ctr = javaClass.addMethod().setConstructor(true).setPublic().setName(name).addParameter("org.apache.camel.CamelContext", "camelContext");
+        if (complexOptions) {
+            ctr.setBody("this.camelContext = camelContext;\n"
+                    + "ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();\n"
+                    + "acs.addConverter(new " + converterClassName + "(camelContext));\n");
+        } else {
+            ctr.setBody("this.camelContext = camelContext;\n");
+        }
+
         String body = createLanguageBody(model.getShortJavaType(), languageName);
         String methodName = "configure" + model.getShortJavaType();
 
         Method method = javaClass.addMethod()
-            .setName(methodName)
-            .setPublic()
-            .setBody(body)
-            .setReturnType("org.apache.camel.spi.LanguageCustomizer");
+                .setName(methodName)
+                .setPublic()
+                .setBody(body)
+                .setReturnType("org.apache.camel.spi.LanguageCustomizer");
 
         method.addAnnotation(Lazy.class);
         method.addAnnotation(Bean.class);
@@ -1404,6 +1637,43 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         writeComponentSpringFactorySource(packageName, name);
     }
 
+    private void createLanguageConverterSource(String packageName, LanguageModel model)
+            throws MojoFailureException {
+
+        final String name = model.getJavaType().substring(model.getJavaType().lastIndexOf(".") + 1).replace("Language", "LanguageConverter");
+
+        // create converter class and write source
+        JavaClass javaClass = new JavaClass(getProjectClassLoader());
+        javaClass.setPackage(packageName);
+        javaClass.setName(name);
+        javaClass.getJavaDoc().setFullText("Generated by camel-package-maven-plugin - do not edit this file!");
+        javaClass.addAnnotation(Generated.class).setStringValue("value", SpringBootAutoConfigurationMojo.class.getName());
+        javaClass.addImport("java.util.LinkedHashSet");
+        javaClass.addImport("java.util.Set");
+        javaClass.addImport("org.apache.camel.CamelContext");
+        javaClass.addImport("org.springframework.core.convert.TypeDescriptor");
+        javaClass.addImport("org.springframework.core.convert.converter.GenericConverter");
+
+        javaClass.implementInterface("org.springframework.core.convert.converter.GenericConverter");
+        javaClass.addField().setPrivate().setFinal(true).setName("camelContext").setType(loadClass("org.apache.camel.CamelContext"));
+        javaClass.addMethod().setConstructor(true).setPublic().setName(name).addParameter("org.apache.camel.CamelContext", "camelContext")
+                .setBody("this.camelContext = camelContext;\n");
+
+        String body = createConverterPairBody(model);
+        javaClass.addMethod().setName("getConvertibleTypes").setPublic().setReturnType("Set<ConvertiblePair>")
+                .setBody(body);
+        body = createConvertBody(model);
+        javaClass.addMethod().setName("convert").setPublic().setReturnType("Object")
+                .addParameter("Object", "source")
+                .addParameter("TypeDescriptor", "sourceType")
+                .addParameter("TypeDescriptor", "targetType")
+                .setBody(body);
+        sortImports(javaClass);
+
+        String fileName = packageName.replaceAll("\\.", "\\/") + "/" + name + ".java";
+        writeSourceIfChanged(javaClass, fileName, false);
+    }
+
     private void createDataFormatSpringFactorySource(String packageName, DataFormatModel model) throws MojoFailureException {
         int pos = model.getJavaType().lastIndexOf(".");
         String name = model.getJavaType().substring(pos + 1);
@@ -1422,59 +1692,59 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
 
     private static String createComponentBody(String shortJavaType, String name) {
         return new StringBuilder()
-            .append("return new ComponentCustomizer() {\n")
-            .append("    @Override\n")
-            .append("    public void configure(String name, Component target) {\n")
-            .append("        CamelPropertiesHelper.copyProperties(camelContext, configuration, target);\n")
-            .append("    }\n")
-            .append("    @Override\n")
-            .append("    public boolean isEnabled(String name, Component target) {\n")
-            .append("        return HierarchicalPropertiesEvaluator.evaluate(\n")
-            .append("                applicationContext,\n")
-            .append("                \"camel.component.customizer\",\n")
-            .append("                \"camel.component.").append(name).append(".customizer\")\n")
-            .append("            && target instanceof ").append(shortJavaType).append(";\n")
-            .append("    }\n")
-            .append("};\n")
-            .toString();
+                .append("return new ComponentCustomizer() {\n")
+                .append("    @Override\n")
+                .append("    public void configure(String name, Component target) {\n")
+                .append("        CamelPropertiesHelper.copyProperties(camelContext, configuration, target);\n")
+                .append("    }\n")
+                .append("    @Override\n")
+                .append("    public boolean isEnabled(String name, Component target) {\n")
+                .append("        return HierarchicalPropertiesEvaluator.evaluate(\n")
+                .append("                applicationContext,\n")
+                .append("                \"camel.component.customizer\",\n")
+                .append("                \"camel.component.").append(name).append(".customizer\")\n")
+                .append("            && target instanceof ").append(shortJavaType).append(";\n")
+                .append("    }\n")
+                .append("};\n")
+                .toString();
     }
 
     private static String createDataFormatBody(String shortJavaType, String name) {
         return new StringBuilder()
-            .append("return new DataFormatCustomizer() {\n")
-            .append("    @Override\n")
-            .append("    public void configure(String name, DataFormat target) {\n")
-            .append("        CamelPropertiesHelper.copyProperties(camelContext, configuration, target);\n")
-            .append("    }\n")
-            .append("    @Override\n")
-            .append("    public boolean isEnabled(String name, DataFormat target) {\n")
-            .append("        return HierarchicalPropertiesEvaluator.evaluate(\n")
-            .append("                applicationContext,\n")
-            .append("                \"camel.dataformat.customizer\",\n")
-            .append("                \"camel.dataformat.").append(name).append(".customizer\")\n")
-            .append("            && target instanceof ").append(shortJavaType).append(";\n")
-            .append("    }\n")
-            .append("};\n")
-            .toString();
+                .append("return new DataFormatCustomizer() {\n")
+                .append("    @Override\n")
+                .append("    public void configure(String name, DataFormat target) {\n")
+                .append("        CamelPropertiesHelper.copyProperties(camelContext, configuration, target);\n")
+                .append("    }\n")
+                .append("    @Override\n")
+                .append("    public boolean isEnabled(String name, DataFormat target) {\n")
+                .append("        return HierarchicalPropertiesEvaluator.evaluate(\n")
+                .append("                applicationContext,\n")
+                .append("                \"camel.dataformat.customizer\",\n")
+                .append("                \"camel.dataformat.").append(name).append(".customizer\")\n")
+                .append("            && target instanceof ").append(shortJavaType).append(";\n")
+                .append("    }\n")
+                .append("};\n")
+                .toString();
     }
 
     private static String createLanguageBody(String shortJavaType, String name) {
         return new StringBuilder()
-            .append("return new LanguageCustomizer() {\n")
-            .append("    @Override\n")
-            .append("    public void configure(String name, Language target) {\n")
-            .append("        CamelPropertiesHelper.copyProperties(camelContext, configuration, target);\n")
-            .append("    }\n")
-            .append("    @Override\n")
-            .append("    public boolean isEnabled(String name, Language target) {\n")
-            .append("        return HierarchicalPropertiesEvaluator.evaluate(\n")
-            .append("                applicationContext,\n")
-            .append("                \"camel.language.customizer\",\n")
-            .append("                \"camel.language.").append(name).append(".customizer\")\n")
-            .append("            && target instanceof ").append(shortJavaType).append(";\n")
-            .append("    }\n")
-            .append("};\n")
-            .toString();
+                .append("return new LanguageCustomizer() {\n")
+                .append("    @Override\n")
+                .append("    public void configure(String name, Language target) {\n")
+                .append("        CamelPropertiesHelper.copyProperties(camelContext, configuration, target);\n")
+                .append("    }\n")
+                .append("    @Override\n")
+                .append("    public boolean isEnabled(String name, Language target) {\n")
+                .append("        return HierarchicalPropertiesEvaluator.evaluate(\n")
+                .append("                applicationContext,\n")
+                .append("                \"camel.language.customizer\",\n")
+                .append("                \"camel.language.").append(name).append(".customizer\")\n")
+                .append("            && target instanceof ").append(shortJavaType).append(";\n")
+                .append("    }\n")
+                .append("};\n")
+                .toString();
     }
 
     private static void sortImports(JavaClass importer) {
@@ -1482,6 +1752,35 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         // do nothing, as imports are sorted automatically when displayed
     }
 
+    private static String getJavaType(ComponentOptionModel option) {
+        // type may contain generics so remove those
+        String type = option.getJavaType();
+        if (type.indexOf('<') != -1) {
+            type = type.substring(0, type.indexOf('<'));
+        }
+        type = type.replace('$', '.');
+        return type;
+    }
+
+    private static String getJavaType(DataFormatOptionModel option) {
+        // type may contain generics so remove those
+        String type = option.getJavaType();
+        if (type.indexOf('<') != -1) {
+            type = type.substring(0, type.indexOf('<'));
+        }
+        type = type.replace('$', '.');
+        return type;
+    }
+
+    private static String getJavaType(LanguageOptionModel option) {
+        // type may contain generics so remove those
+        String type = option.getJavaType();
+        if (type.indexOf('<') != -1) {
+            type = type.substring(0, type.indexOf('<'));
+        }
+        type = type.replace('$', '.');
+        return type;
+    }
 
     private void findComponentNames(Set<String> componentNames) {
         componentJar.stream()


[camel-spring-boot] 02/06: CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit afe820e274cebef16ab514a7850445d77a6aa28e
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Nov 16 10:36:25 2020 +0100

    CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
---
 .../maven/SpringBootAutoConfigurationMojo.java      | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
index c06b896..2a75ff7 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
@@ -706,7 +706,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
             }
             if (!Strings.isNullOrEmpty(option.getDescription())) {
                 String desc = option.getDescription();
-                boolean complex = isComplexType(option) && isBlank(option.getEnums());
+                boolean complex = isComplexTypeOrDuration(option) && isBlank(option.getEnums());
                 if (complex) {
                     if (!desc.endsWith(".")) {
                         desc = desc + ".";
@@ -719,7 +719,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
                 if ("java.lang.String".equals(option.getJavaType())) {
                     prop.getField().setStringInitializer(option.getDefaultValue().toString());
                 } else if ("duration".equals(option.getType())) {
-                    String value = convertDurationToMillisec(option.getDefaultValue().toString());
+                    String value = convertDurationToMills(option.getDefaultValue().toString());
                     // duration is either long or int java type
                     if ("long".equals(option.getJavaType()) || "java.lang.Long".equals(option.getJavaType())) {
                         value = value + "L";
@@ -744,10 +744,10 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         writeSourceIfChanged(javaClass, fileName, true);
     }
 
-    private String convertDurationToMillisec(String pattern) {
-        String value = null;
+    private String convertDurationToMills(String pattern) {
+        String value;
         pattern = pattern.toLowerCase();
-        if (pattern.indexOf("ms") != -1) {
+        if (pattern.contains("ms")) {
             pattern = pattern.replaceAll("ms", "");
         }
         try {
@@ -769,7 +769,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         }
     }
 
-    private boolean isComplexType(ComponentOptionModel option) {
+    private boolean isComplexTypeOrDuration(ComponentOptionModel option) {
         // we can configure map/list/set types from spring-boot so do not regard them as complex
         if (option.getJavaType().startsWith("java.util.Map") || option.getJavaType().startsWith("java.util.List") || option.getJavaType().startsWith("java.util.Set")) {
             return false;
@@ -778,6 +778,15 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         return "object".equals(option.getType()) || "duration".equals(option.getType());
     }
 
+    private boolean isComplexType(ComponentOptionModel option) {
+        // we can configure map/list/set types from spring-boot so do not regard them as complex
+        if (option.getJavaType().startsWith("java.util.Map") || option.getJavaType().startsWith("java.util.List") || option.getJavaType().startsWith("java.util.Set")) {
+            return false;
+        }
+        // all the object types are complex
+        return "object".equals(option.getType());
+    }
+
     private boolean isComplexType(DataFormatOptionModel option) {
         // we can configure map/list/set types from spring-boot so do not regard them as complex
         if (option.getJavaType().startsWith("java.util.Map") || option.getJavaType().startsWith("java.util.List") || option.getJavaType().startsWith("java.util.Set")) {


[camel-spring-boot] 04/06: CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e5afb3e42fadbe82f2258edc5294352339257243
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Nov 16 14:53:32 2020 +0100

    CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
---
 .../springboot/maven/SpringBootAutoConfigurationMojo.java    | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
index 95229ac..6edaea2 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
@@ -1366,7 +1366,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
         sb.append("switch (targetType.getName()) {\n");
         // we need complex types only which unique types only
-        Stream<String> s = model.getComponentOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        Stream<String> s = model.getComponentOptions().stream().filter(this::isComplexType).map(SpringBootAutoConfigurationMojo::getJavaType).distinct();
         s.forEach(type -> {
             sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
         });
@@ -1387,7 +1387,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
         sb.append("switch (targetType.getName()) {\n");
         // we need complex types only which unique types only
-        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(SpringBootAutoConfigurationMojo::getJavaType).distinct();
         s.forEach(type -> {
             sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
         });
@@ -1408,7 +1408,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
         sb.append("switch (targetType.getName()) {\n");
         // we need complex types only which unique types only
-        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(SpringBootAutoConfigurationMojo::getJavaType).distinct();
         s.forEach(type -> {
             sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
         });
@@ -1421,7 +1421,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         StringBuilder sb = new StringBuilder();
         sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
         // we need complex types only which unique types only
-        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(SpringBootAutoConfigurationMojo::getJavaType).distinct();
         s.forEach(type -> {
             sb.append("answer.add(new ConvertiblePair(String.class, ");
             sb.append(type);
@@ -1435,7 +1435,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         StringBuilder sb = new StringBuilder();
         sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
         // we need complex types only which unique types only
-        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(SpringBootAutoConfigurationMojo::getJavaType).distinct();
         s.forEach(type -> {
             sb.append("answer.add(new ConvertiblePair(String.class, ");
             sb.append(type);
@@ -1449,7 +1449,7 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         StringBuilder sb = new StringBuilder();
         sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
         // we need complex types only which unique types only
-        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(SpringBootAutoConfigurationMojo::getJavaType).distinct();
         s.forEach(type -> {
             sb.append("answer.add(new ConvertiblePair(String.class, ");
             sb.append(type);


[camel-spring-boot] 05/06: CAMEL-15766: Regen

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 3db0e0d185ad4a8e792cbe05574a0d06601dd868
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Nov 16 14:56:04 2020 +0100

    CAMEL-15766: Regen
---
 .../ActiveMQComponentAutoConfiguration.java        | 11 ++-
 .../springboot/ActiveMQComponentConverter.java     | 97 ++++++++++++++++++++++
 .../springboot/AhcComponentAutoConfiguration.java  | 11 ++-
 .../ahc/springboot/AhcComponentConverter.java      | 71 ++++++++++++++++
 .../springboot/WsComponentAutoConfiguration.java   | 11 ++-
 .../ahc/ws/springboot/WsComponentConverter.java    | 71 ++++++++++++++++
 .../springboot/AMQPComponentAutoConfiguration.java | 11 ++-
 .../amqp/springboot/AMQPComponentConverter.java    | 97 ++++++++++++++++++++++
 .../Any23DataFormatAutoConfiguration.java          |  9 +-
 .../springboot/ApnsComponentAutoConfiguration.java | 11 ++-
 .../apns/springboot/ApnsComponentConverter.java    | 63 ++++++++++++++
 .../ArangoDbComponentAutoConfiguration.java        | 11 ++-
 .../springboot/ArangoDbComponentConverter.java     | 65 +++++++++++++++
 .../springboot/AS2ComponentAutoConfiguration.java  | 11 ++-
 .../as2/springboot/AS2ComponentConverter.java      | 63 ++++++++++++++
 .../ASN1DataFormatAutoConfiguration.java           |  9 +-
 .../AsteriskComponentAutoConfiguration.java        |  9 +-
 .../AtlasMapComponentAutoConfiguration.java        | 11 ++-
 .../springboot/AtlasMapComponentConverter.java     | 63 ++++++++++++++
 .../AtmosComponentAutoConfiguration.java           |  9 +-
 .../WebsocketComponentAutoConfiguration.java       | 11 ++-
 .../springboot/WebsocketComponentConverter.java    | 70 ++++++++++++++++
 .../springboot/AtomComponentAutoConfiguration.java |  9 +-
 .../AtomixMapComponentAutoConfiguration.java       | 11 ++-
 .../springboot/AtomixMapComponentConverter.java    | 74 +++++++++++++++++
 .../AtomixMessagingComponentAutoConfiguration.java | 11 ++-
 .../AtomixMessagingComponentConverter.java         | 74 +++++++++++++++++
 .../AtomixMultiMapComponentAutoConfiguration.java  | 11 ++-
 .../AtomixMultiMapComponentConverter.java          | 74 +++++++++++++++++
 .../AtomixQueueComponentAutoConfiguration.java     | 11 ++-
 .../springboot/AtomixQueueComponentConverter.java  | 72 ++++++++++++++++
 .../AtomixSetComponentAutoConfiguration.java       | 11 ++-
 .../springboot/AtomixSetComponentConverter.java    | 72 ++++++++++++++++
 .../AtomixValueComponentAutoConfiguration.java     | 11 ++-
 .../springboot/AtomixValueComponentConverter.java  | 72 ++++++++++++++++
 .../springboot/AvroComponentAutoConfiguration.java | 11 ++-
 .../avro/springboot/AvroComponentConverter.java    | 65 +++++++++++++++
 .../AvroDataFormatAutoConfiguration.java           |  9 +-
 .../springboot/CwComponentAutoConfiguration.java   | 11 ++-
 .../aws/cw/springboot/CwComponentConverter.java    | 67 +++++++++++++++
 .../springboot/DdbComponentAutoConfiguration.java  | 11 ++-
 .../aws/ddb/springboot/DdbComponentConverter.java  | 69 +++++++++++++++
 .../DdbStreamComponentAutoConfiguration.java       | 11 ++-
 .../springboot/DdbStreamComponentConverter.java    | 72 ++++++++++++++++
 .../springboot/EC2ComponentAutoConfiguration.java  | 11 ++-
 .../aws/ec2/springboot/EC2ComponentConverter.java  | 69 +++++++++++++++
 .../springboot/ECSComponentAutoConfiguration.java  | 11 ++-
 .../aws/ecs/springboot/ECSComponentConverter.java  | 69 +++++++++++++++
 .../springboot/EKSComponentAutoConfiguration.java  | 11 ++-
 .../aws/eks/springboot/EKSComponentConverter.java  | 69 +++++++++++++++
 .../springboot/IAMComponentAutoConfiguration.java  | 11 ++-
 .../aws/iam/springboot/IAMComponentConverter.java  | 69 +++++++++++++++
 .../KinesisFirehoseComponentAutoConfiguration.java | 11 ++-
 .../KinesisFirehoseComponentConverter.java         | 68 +++++++++++++++
 .../KinesisComponentAutoConfiguration.java         | 11 ++-
 .../springboot/KinesisComponentConverter.java      | 71 ++++++++++++++++
 .../springboot/KMSComponentAutoConfiguration.java  | 11 ++-
 .../aws/kms/springboot/KMSComponentConverter.java  | 69 +++++++++++++++
 .../LambdaComponentAutoConfiguration.java          | 11 ++-
 .../springboot/LambdaComponentConverter.java       | 69 +++++++++++++++
 .../springboot/MQComponentAutoConfiguration.java   | 11 ++-
 .../aws/mq/springboot/MQComponentConverter.java    | 69 +++++++++++++++
 .../springboot/MSKComponentAutoConfiguration.java  | 11 ++-
 .../aws/msk/springboot/MSKComponentConverter.java  | 69 +++++++++++++++
 .../springboot/S3ComponentAutoConfiguration.java   | 11 ++-
 .../aws/s3/springboot/S3ComponentConverter.java    | 73 ++++++++++++++++
 .../springboot/SdbComponentAutoConfiguration.java  |  9 +-
 .../springboot/SesComponentAutoConfiguration.java  | 11 ++-
 .../aws/ses/springboot/SesComponentConverter.java  | 67 +++++++++++++++
 .../springboot/SnsComponentAutoConfiguration.java  | 11 ++-
 .../aws/sns/springboot/SnsComponentConverter.java  | 69 +++++++++++++++
 .../springboot/SqsComponentAutoConfiguration.java  | 11 ++-
 .../aws/sqs/springboot/SqsComponentConverter.java  | 69 +++++++++++++++
 .../springboot/SWFComponentAutoConfiguration.java  | 11 ++-
 .../aws/swf/springboot/SWFComponentConverter.java  | 75 +++++++++++++++++
 .../TranslateComponentAutoConfiguration.java       | 11 ++-
 .../springboot/TranslateComponentConverter.java    | 70 ++++++++++++++++
 .../Athena2ComponentAutoConfiguration.java         | 11 ++-
 .../springboot/Athena2ComponentConverter.java      | 73 ++++++++++++++++
 .../springboot/Cw2ComponentAutoConfiguration.java  | 11 ++-
 .../aws2/cw/springboot/Cw2ComponentConverter.java  | 69 +++++++++++++++
 .../springboot/Ddb2ComponentAutoConfiguration.java | 11 ++-
 .../ddb/springboot/Ddb2ComponentConverter.java     | 69 +++++++++++++++
 .../Ddb2StreamComponentAutoConfiguration.java      | 11 ++-
 .../springboot/Ddb2StreamComponentConverter.java   | 72 ++++++++++++++++
 .../AWS2EC2ComponentAutoConfiguration.java         | 11 ++-
 .../ec2/springboot/AWS2EC2ComponentConverter.java  | 69 +++++++++++++++
 .../src/main/docs/aws2-ecs-starter.adoc            |  3 +-
 .../springboot/ECS2ComponentAutoConfiguration.java | 11 ++-
 .../ecs/springboot/ECS2ComponentConfiguration.java | 14 ----
 .../ecs/springboot/ECS2ComponentConverter.java     | 69 +++++++++++++++
 .../src/main/docs/aws2-eks-starter.adoc            |  3 +-
 .../springboot/EKS2ComponentAutoConfiguration.java | 11 ++-
 .../eks/springboot/EKS2ComponentConfiguration.java | 14 ----
 .../eks/springboot/EKS2ComponentConverter.java     | 69 +++++++++++++++
 .../EventbridgeComponentAutoConfiguration.java     | 11 ++-
 .../springboot/EventbridgeComponentConverter.java  | 70 ++++++++++++++++
 .../springboot/IAM2ComponentAutoConfiguration.java | 11 ++-
 .../iam/springboot/IAM2ComponentConverter.java     | 69 +++++++++++++++
 ...KinesisFirehose2ComponentAutoConfiguration.java | 11 ++-
 .../KinesisFirehose2ComponentConverter.java        | 70 ++++++++++++++++
 .../Kinesis2ComponentAutoConfiguration.java        | 11 ++-
 .../springboot/Kinesis2ComponentConverter.java     | 71 ++++++++++++++++
 .../springboot/KMS2ComponentAutoConfiguration.java | 11 ++-
 .../kms/springboot/KMS2ComponentConverter.java     | 69 +++++++++++++++
 .../Lambda2ComponentAutoConfiguration.java         | 11 ++-
 .../springboot/Lambda2ComponentConverter.java      | 69 +++++++++++++++
 .../springboot/MQ2ComponentAutoConfiguration.java  | 11 ++-
 .../aws2/mq/springboot/MQ2ComponentConverter.java  | 69 +++++++++++++++
 .../springboot/MSK2ComponentAutoConfiguration.java | 11 ++-
 .../msk/springboot/MSK2ComponentConverter.java     | 69 +++++++++++++++
 .../AWS2S3ComponentAutoConfiguration.java          | 11 ++-
 .../s3/springboot/AWS2S3ComponentConverter.java    | 69 +++++++++++++++
 .../springboot/Ses2ComponentAutoConfiguration.java | 11 ++-
 .../ses/springboot/Ses2ComponentConverter.java     | 67 +++++++++++++++
 .../springboot/Sns2ComponentAutoConfiguration.java | 11 ++-
 .../sns/springboot/Sns2ComponentConverter.java     | 67 +++++++++++++++
 .../springboot/Sqs2ComponentAutoConfiguration.java | 11 ++-
 .../sqs/springboot/Sqs2ComponentConverter.java     | 69 +++++++++++++++
 .../springboot/STS2ComponentAutoConfiguration.java | 11 ++-
 .../sts/springboot/STS2ComponentConverter.java     | 69 +++++++++++++++
 .../Translate2ComponentAutoConfiguration.java      | 11 ++-
 .../springboot/Translate2ComponentConverter.java   | 70 ++++++++++++++++
 .../EventHubsComponentAutoConfiguration.java       | 11 ++-
 .../springboot/EventHubsComponentConverter.java    | 74 +++++++++++++++++
 .../BlobServiceComponentAutoConfiguration.java     | 11 ++-
 .../springboot/BlobServiceComponentConverter.java  | 72 ++++++++++++++++
 .../QueueServiceComponentAutoConfiguration.java    | 11 ++-
 .../springboot/QueueServiceComponentConverter.java | 70 ++++++++++++++++
 .../springboot/BlobComponentAutoConfiguration.java | 11 ++-
 .../blob/springboot/BlobComponentConverter.java    | 75 +++++++++++++++++
 .../QueueComponentAutoConfiguration.java           | 11 ++-
 .../queue/springboot/QueueComponentConverter.java  | 71 ++++++++++++++++
 .../BarcodeDataFormatAutoConfiguration.java        |  9 +-
 .../Base64DataFormatAutoConfiguration.java         |  9 +-
 .../springboot/BeanComponentAutoConfiguration.java | 11 ++-
 .../bean/springboot/BeanComponentConverter.java    | 63 ++++++++++++++
 .../ClassComponentAutoConfiguration.java           | 11 ++-
 .../springboot/ClassComponentConverter.java        | 63 ++++++++++++++
 .../springboot/BeanLanguageAutoConfiguration.java  |  9 +-
 .../BeanValidatorComponentAutoConfiguration.java   | 11 ++-
 .../BeanValidatorComponentConverter.java           | 72 ++++++++++++++++
 .../BeanIODataFormatAutoConfiguration.java         |  9 +-
 .../BeanstalkComponentAutoConfiguration.java       | 11 ++-
 .../springboot/BeanstalkComponentConverter.java    | 64 ++++++++++++++
 .../BindyCsvDataFormatAutoConfiguration.java       |  9 +-
 ...indyFixedLengthDataFormatAutoConfiguration.java |  9 +-
 ...ndyKeyValuePairDataFormatAutoConfiguration.java |  9 +-
 .../BonitaComponentAutoConfiguration.java          |  9 +-
 .../springboot/BoxComponentAutoConfiguration.java  | 11 ++-
 .../box/springboot/BoxComponentConverter.java      | 69 +++++++++++++++
 .../BraintreeComponentAutoConfiguration.java       | 11 ++-
 .../springboot/BraintreeComponentConverter.java    | 64 ++++++++++++++
 .../BrowseComponentAutoConfiguration.java          |  9 +-
 .../CaffeineCacheComponentAutoConfiguration.java   | 11 ++-
 .../CaffeineCacheComponentConverter.java           | 74 +++++++++++++++++
 ...affeineLoadCacheComponentAutoConfiguration.java | 11 ++-
 .../CaffeineLoadCacheComponentConverter.java       | 74 +++++++++++++++++
 .../CassandraComponentAutoConfiguration.java       |  9 +-
 .../CBORDataFormatAutoConfiguration.java           |  9 +-
 .../ChatScriptComponentAutoConfiguration.java      |  9 +-
 .../ChunkComponentAutoConfiguration.java           |  9 +-
 .../springboot/CMComponentAutoConfiguration.java   |  9 +-
 .../springboot/CMISComponentAutoConfiguration.java | 11 ++-
 .../cmis/springboot/CMISComponentConverter.java    | 63 ++++++++++++++
 .../springboot/CoAPComponentAutoConfiguration.java |  9 +-
 .../CometdComponentAutoConfiguration.java          | 11 ++-
 .../springboot/CometdComponentConverter.java       | 65 +++++++++++++++
 .../ConsulComponentAutoConfiguration.java          | 11 ++-
 .../springboot/ConsulComponentConverter.java       | 73 ++++++++++++++++
 .../ControlBusComponentAutoConfiguration.java      |  9 +-
 components-starter/camel-corda-starter/pom.xml     |  8 --
 .../CordaComponentAutoConfiguration.java           | 11 ++-
 .../corda/springboot/CordaComponentConverter.java  | 69 +++++++++++++++
 .../ConstantLanguageAutoConfiguration.java         |  9 +-
 .../HeaderLanguageAutoConfiguration.java           |  9 +-
 .../ExchangePropertyLanguageAutoConfiguration.java |  9 +-
 .../springboot/RefLanguageAutoConfiguration.java   |  9 +-
 .../springboot/FileLanguageAutoConfiguration.java  |  9 +-
 .../SimpleLanguageAutoConfiguration.java           |  9 +-
 .../TokenizeLanguageAutoConfiguration.java         |  9 +-
 .../CouchbaseComponentAutoConfiguration.java       |  9 +-
 .../CouchDbComponentAutoConfiguration.java         |  9 +-
 .../springboot/CronComponentAutoConfiguration.java |  9 +-
 .../CryptoCmsComponentAutoConfiguration.java       | 11 ++-
 .../springboot/CryptoCmsComponentConverter.java    | 66 +++++++++++++++
 ...DigitalSignatureComponentAutoConfiguration.java | 11 ++-
 .../DigitalSignatureComponentConverter.java        | 76 +++++++++++++++++
 .../CryptoDataFormatAutoConfiguration.java         |  9 +-
 .../springboot/PGPDataFormatAutoConfiguration.java |  9 +-
 .../springboot/CsvDataFormatAutoConfiguration.java |  9 +-
 .../CxfRsComponentAutoConfiguration.java           | 11 ++-
 .../jaxrs/springboot/CxfRsComponentConverter.java  | 63 ++++++++++++++
 .../springboot/CxfComponentAutoConfiguration.java  | 11 ++-
 .../cxf/springboot/CxfComponentConverter.java      | 63 ++++++++++++++
 .../DataFormatComponentAutoConfiguration.java      |  9 +-
 .../DataSetComponentAutoConfiguration.java         |  9 +-
 .../DataSetTestComponentAutoConfiguration.java     |  9 +-
 .../DebeziumMongodbComponentAutoConfiguration.java | 11 ++-
 .../DebeziumMongodbComponentConverter.java         | 64 ++++++++++++++
 .../DebeziumMySqlComponentAutoConfiguration.java   | 11 ++-
 .../DebeziumMySqlComponentConverter.java           | 64 ++++++++++++++
 ...DebeziumPostgresComponentAutoConfiguration.java | 11 ++-
 .../DebeziumPostgresComponentConverter.java        | 64 ++++++++++++++
 ...ebeziumSqlserverComponentAutoConfiguration.java | 11 ++-
 .../DebeziumSqlserverComponentConverter.java       | 64 ++++++++++++++
 .../DigitalOceanComponentAutoConfiguration.java    |  9 +-
 .../DirectComponentAutoConfiguration.java          |  9 +-
 .../DirectVmComponentAutoConfiguration.java        | 11 ++-
 .../springboot/DirectVmComponentConverter.java     | 63 ++++++++++++++
 .../DisruptorComponentAutoConfiguration.java       | 11 ++-
 .../springboot/DisruptorComponentConverter.java    | 66 +++++++++++++++
 .../DisruptorVmComponentAutoConfiguration.java     | 11 ++-
 .../springboot/DisruptorVmComponentConverter.java  | 66 +++++++++++++++
 .../springboot/DJLComponentAutoConfiguration.java  |  9 +-
 .../springboot/DnsComponentAutoConfiguration.java  |  9 +-
 .../DockerComponentAutoConfiguration.java          | 11 ++-
 .../springboot/DockerComponentConverter.java       | 63 ++++++++++++++
 .../DozerComponentAutoConfiguration.java           |  9 +-
 .../DrillComponentAutoConfiguration.java           |  9 +-
 .../DropboxComponentAutoConfiguration.java         |  9 +-
 .../EhcacheComponentAutoConfiguration.java         | 11 ++-
 .../springboot/EhcacheComponentConverter.java      | 73 ++++++++++++++++
 .../ElasticsearchComponentAutoConfiguration.java   | 11 ++-
 .../ElasticsearchComponentConverter.java           | 64 ++++++++++++++
 .../ElsqlComponentAutoConfiguration.java           | 11 ++-
 .../elsql/springboot/ElsqlComponentConverter.java  | 67 +++++++++++++++
 .../EtcdKeysComponentAutoConfiguration.java        | 11 ++-
 .../springboot/EtcdKeysComponentConverter.java     | 65 +++++++++++++++
 .../EtcdStatsComponentAutoConfiguration.java       | 11 ++-
 .../springboot/EtcdStatsComponentConverter.java    | 66 +++++++++++++++
 .../EtcdWatchComponentAutoConfiguration.java       | 11 ++-
 .../springboot/EtcdWatchComponentConverter.java    | 66 +++++++++++++++
 .../springboot/ExecComponentAutoConfiguration.java |  9 +-
 .../FacebookComponentAutoConfiguration.java        | 11 ++-
 .../springboot/FacebookComponentConverter.java     | 63 ++++++++++++++
 .../FastjsonDataFormatAutoConfiguration.java       |  9 +-
 .../springboot/FhirComponentAutoConfiguration.java | 11 ++-
 .../fhir/springboot/FhirComponentConverter.java    | 69 +++++++++++++++
 .../FhirJsonDataFormatAutoConfiguration.java       |  9 +-
 .../FhirXmlDataFormatAutoConfiguration.java        |  9 +-
 .../springboot/FileComponentAutoConfiguration.java |  9 +-
 .../FileWatchComponentAutoConfiguration.java       | 11 ++-
 .../springboot/FileWatchComponentConverter.java    | 64 ++++++++++++++
 .../FlatpackComponentAutoConfiguration.java        |  9 +-
 .../FlatpackDataFormatAutoConfiguration.java       |  9 +-
 .../FlinkComponentAutoConfiguration.java           | 11 ++-
 .../flink/springboot/FlinkComponentConverter.java  | 67 +++++++++++++++
 .../springboot/FopComponentAutoConfiguration.java  |  9 +-
 .../FreemarkerComponentAutoConfiguration.java      | 11 ++-
 .../springboot/FreemarkerComponentConverter.java   | 64 ++++++++++++++
 .../springboot/FtpComponentAutoConfiguration.java  |  9 +-
 .../springboot/FtpsComponentAutoConfiguration.java |  9 +-
 .../springboot/SftpComponentAutoConfiguration.java |  9 +-
 .../GangliaComponentAutoConfiguration.java         | 11 ++-
 .../springboot/GangliaComponentConverter.java      | 69 +++++++++++++++
 .../GeoCoderComponentAutoConfiguration.java        | 11 ++-
 .../springboot/GeoCoderComponentConverter.java     | 63 ++++++++++++++
 .../springboot/GitComponentAutoConfiguration.java  |  9 +-
 .../GitHubComponentAutoConfiguration.java          |  9 +-
 .../GoogleBigQueryComponentAutoConfiguration.java  | 11 ++-
 .../GoogleBigQueryComponentConverter.java          | 64 ++++++++++++++
 ...oogleBigQuerySQLComponentAutoConfiguration.java | 11 ++-
 .../GoogleBigQuerySQLComponentConverter.java       | 64 ++++++++++++++
 .../GoogleCalendarComponentAutoConfiguration.java  | 11 ++-
 .../GoogleCalendarComponentConverter.java          | 66 +++++++++++++++
 ...leCalendarStreamComponentAutoConfiguration.java | 11 ++-
 .../GoogleCalendarStreamComponentConverter.java    | 66 +++++++++++++++
 .../GoogleDriveComponentAutoConfiguration.java     | 11 ++-
 .../springboot/GoogleDriveComponentConverter.java  | 66 +++++++++++++++
 .../GoogleMailComponentAutoConfiguration.java      | 11 ++-
 .../springboot/GoogleMailComponentConverter.java   | 66 +++++++++++++++
 ...GoogleMailStreamComponentAutoConfiguration.java | 11 ++-
 .../GoogleMailStreamComponentConverter.java        | 66 +++++++++++++++
 .../GooglePubsubComponentAutoConfiguration.java    |  9 +-
 .../GoogleSheetsComponentAutoConfiguration.java    | 11 ++-
 .../springboot/GoogleSheetsComponentConverter.java | 66 +++++++++++++++
 ...ogleSheetsStreamComponentAutoConfiguration.java | 11 ++-
 .../GoogleSheetsStreamComponentConverter.java      | 66 +++++++++++++++
 .../springboot/GoraComponentAutoConfiguration.java |  9 +-
 .../GrapeComponentAutoConfiguration.java           | 11 ++-
 .../grape/springboot/GrapeComponentConverter.java  | 63 ++++++++++++++
 .../GraphqlComponentAutoConfiguration.java         |  9 +-
 .../GrokDataFormatAutoConfiguration.java           |  9 +-
 .../GroovyLanguageAutoConfiguration.java           |  9 +-
 .../springboot/GrpcComponentAutoConfiguration.java |  9 +-
 .../GsonDataFormatAutoConfiguration.java           |  9 +-
 .../GuavaEventBusComponentAutoConfiguration.java   | 11 ++-
 .../GuavaEventBusComponentConverter.java           | 64 ++++++++++++++
 ...castAtomicnumberComponentAutoConfiguration.java | 11 ++-
 .../HazelcastAtomicnumberComponentConverter.java   | 64 ++++++++++++++
 ...azelcastInstanceComponentAutoConfiguration.java | 11 ++-
 .../HazelcastInstanceComponentConverter.java       | 64 ++++++++++++++
 .../HazelcastListComponentAutoConfiguration.java   | 11 ++-
 .../HazelcastListComponentConverter.java           | 64 ++++++++++++++
 .../HazelcastMapComponentAutoConfiguration.java    | 11 ++-
 .../springboot/HazelcastMapComponentConverter.java | 64 ++++++++++++++
 ...azelcastMultimapComponentAutoConfiguration.java | 11 ++-
 .../HazelcastMultimapComponentConverter.java       | 64 ++++++++++++++
 .../HazelcastQueueComponentAutoConfiguration.java  | 11 ++-
 .../HazelcastQueueComponentConverter.java          | 64 ++++++++++++++
 ...astReplicatedmapComponentAutoConfiguration.java | 11 ++-
 .../HazelcastReplicatedmapComponentConverter.java  | 64 ++++++++++++++
 ...elcastRingbufferComponentAutoConfiguration.java | 11 ++-
 .../HazelcastRingbufferComponentConverter.java     | 64 ++++++++++++++
 .../HazelcastSedaComponentAutoConfiguration.java   | 11 ++-
 .../HazelcastSedaComponentConverter.java           | 64 ++++++++++++++
 .../HazelcastSetComponentAutoConfiguration.java    | 11 ++-
 .../springboot/HazelcastSetComponentConverter.java | 64 ++++++++++++++
 .../HazelcastTopicComponentAutoConfiguration.java  | 11 ++-
 .../HazelcastTopicComponentConverter.java          | 64 ++++++++++++++
 .../HBaseComponentAutoConfiguration.java           | 11 ++-
 .../hbase/springboot/HBaseComponentConverter.java  | 63 ++++++++++++++
 .../springboot/HdfsComponentAutoConfiguration.java | 11 ++-
 .../hdfs/springboot/HdfsComponentConverter.java    | 63 ++++++++++++++
 .../springboot/HL7DataFormatAutoConfiguration.java |  9 +-
 .../Hl7TerserLanguageAutoConfiguration.java        |  9 +-
 .../springboot/HttpComponentAutoConfiguration.java | 11 ++-
 .../http/springboot/HttpComponentConverter.java    | 79 ++++++++++++++++++
 .../ICalDataFormatAutoConfiguration.java           |  9 +-
 .../ClientComponentAutoConfiguration.java          | 11 ++-
 .../springboot/ClientComponentConverter.java       | 63 ++++++++++++++
 .../ServerComponentAutoConfiguration.java          | 11 ++-
 .../springboot/ServerComponentConverter.java       | 63 ++++++++++++++
 .../IgniteCacheComponentAutoConfiguration.java     | 11 ++-
 .../springboot/IgniteCacheComponentConverter.java  | 68 +++++++++++++++
 .../IgniteComputeComponentAutoConfiguration.java   | 11 ++-
 .../IgniteComputeComponentConverter.java           | 68 +++++++++++++++
 .../IgniteEventsComponentAutoConfiguration.java    | 11 ++-
 .../springboot/IgniteEventsComponentConverter.java | 68 +++++++++++++++
 .../IgniteIdGenComponentAutoConfiguration.java     | 11 ++-
 .../springboot/IgniteIdGenComponentConverter.java  | 68 +++++++++++++++
 .../IgniteMessagingComponentAutoConfiguration.java | 11 ++-
 .../IgniteMessagingComponentConverter.java         | 68 +++++++++++++++
 .../IgniteQueueComponentAutoConfiguration.java     | 11 ++-
 .../springboot/IgniteQueueComponentConverter.java  | 68 +++++++++++++++
 .../IgniteSetComponentAutoConfiguration.java       | 11 ++-
 .../springboot/IgniteSetComponentConverter.java    | 68 +++++++++++++++
 .../InfinispanComponentAutoConfiguration.java      | 11 ++-
 .../springboot/InfinispanComponentConverter.java   | 76 +++++++++++++++++
 .../InfluxDbComponentAutoConfiguration.java        | 11 ++-
 .../springboot/InfluxDbComponentConverter.java     | 63 ++++++++++++++
 components-starter/camel-iota-starter/pom.xml      | 12 ---
 .../springboot/IOTAComponentAutoConfiguration.java |  9 +-
 .../springboot/IPFSComponentAutoConfiguration.java |  9 +-
 .../springboot/IrcComponentAutoConfiguration.java  |  9 +-
 .../IronMQComponentAutoConfiguration.java          |  9 +-
 .../JacksonDataFormatAutoConfiguration.java        |  9 +-
 .../JacksonXMLDataFormatAutoConfiguration.java     |  9 +-
 .../JaxbDataFormatAutoConfiguration.java           |  9 +-
 .../springboot/JBPMComponentAutoConfiguration.java |  9 +-
 .../JCacheComponentAutoConfiguration.java          | 11 ++-
 .../springboot/JCacheComponentConverter.java       | 63 ++++++++++++++
 .../JcloudsComponentAutoConfiguration.java         |  9 +-
 .../springboot/JcrComponentAutoConfiguration.java  |  9 +-
 .../springboot/JdbcComponentAutoConfiguration.java | 11 ++-
 .../jdbc/springboot/JdbcComponentConverter.java    | 63 ++++++++++++++
 .../JettyHttpComponentAutoConfiguration9.java      | 11 ++-
 .../springboot/JettyHttpComponentConverter9.java   | 78 +++++++++++++++++
 .../JGroupsRaftComponentAutoConfiguration.java     | 11 ++-
 .../springboot/JGroupsRaftComponentConverter.java  | 66 +++++++++++++++
 .../JGroupsComponentAutoConfiguration.java         | 11 ++-
 .../springboot/JGroupsComponentConverter.java      | 63 ++++++++++++++
 .../springboot/JingComponentAutoConfiguration.java |  9 +-
 .../springboot/JiraComponentAutoConfiguration.java | 11 ++-
 .../jira/springboot/JiraComponentConverter.java    | 63 ++++++++++++++
 .../springboot/JmsComponentAutoConfiguration.java  | 11 ++-
 .../jms/springboot/JmsComponentConverter.java      | 97 ++++++++++++++++++++++
 .../springboot/JMXComponentAutoConfiguration.java  |  9 +-
 .../JohnzonDataFormatAutoConfiguration.java        |  9 +-
 .../springboot/JoltComponentAutoConfiguration.java | 11 ++-
 .../jolt/springboot/JoltComponentConverter.java    | 63 ++++++++++++++
 .../springboot/JooqComponentAutoConfiguration.java | 11 ++-
 .../jooq/springboot/JooqComponentConverter.java    | 67 +++++++++++++++
 .../springboot/JpaComponentAutoConfiguration.java  | 11 ++-
 .../jpa/springboot/JpaComponentConverter.java      | 65 +++++++++++++++
 .../springboot/ScpComponentAutoConfiguration.java  |  9 +-
 .../springboot/JsltComponentAutoConfiguration.java | 11 ++-
 .../jslt/springboot/JsltComponentConverter.java    | 63 ++++++++++++++
 .../JsonValidatorComponentAutoConfiguration.java   |  9 +-
 .../JsonApiDataFormatAutoConfiguration.java        |  9 +-
 .../JsonataComponentAutoConfiguration.java         |  9 +-
 .../JsonbDataFormatAutoConfiguration.java          |  9 +-
 .../JsonPathLanguageAutoConfiguration.java         |  9 +-
 .../Jt400ComponentAutoConfiguration.java           | 11 ++-
 .../jt400/springboot/Jt400ComponentConverter.java  | 63 ++++++++++++++
 .../KafkaComponentAutoConfiguration.java           | 11 ++-
 .../kafka/springboot/KafkaComponentConverter.java  | 77 +++++++++++++++++
 ...rnetesConfigMapsComponentAutoConfiguration.java |  9 +-
 ...sCustomResourcesComponentAutoConfiguration.java |  9 +-
 ...netesDeploymentsComponentAutoConfiguration.java |  9 +-
 .../KubernetesHPAComponentAutoConfiguration.java   |  9 +-
 .../KubernetesJobComponentAutoConfiguration.java   |  9 +-
 ...rnetesNamespacesComponentAutoConfiguration.java |  9 +-
 .../KubernetesNodesComponentAutoConfiguration.java |  9 +-
 ...ersistentVolumesComponentAutoConfiguration.java |  9 +-
 ...entVolumesClaimsComponentAutoConfiguration.java |  9 +-
 .../KubernetesPodsComponentAutoConfiguration.java  |  9 +-
 ...ationControllersComponentAutoConfiguration.java |  9 +-
 ...esResourcesQuotaComponentAutoConfiguration.java |  9 +-
 ...ubernetesSecretsComponentAutoConfiguration.java |  9 +-
 ...sServiceAccountsComponentAutoConfiguration.java |  9 +-
 ...bernetesServicesComponentAutoConfiguration.java |  9 +-
 ...hiftBuildConfigsComponentAutoConfiguration.java |  9 +-
 .../OpenshiftBuildsComponentAutoConfiguration.java |  9 +-
 .../springboot/KuduComponentAutoConfiguration.java |  9 +-
 .../LanguageComponentAutoConfiguration.java        |  9 +-
 .../springboot/LdapComponentAutoConfiguration.java |  9 +-
 .../springboot/LdifComponentAutoConfiguration.java |  9 +-
 .../springboot/LogComponentAutoConfiguration.java  | 11 ++-
 .../log/springboot/LogComponentConverter.java      | 63 ++++++++++++++
 .../LuceneComponentAutoConfiguration.java          | 11 ++-
 .../springboot/LuceneComponentConverter.java       | 65 +++++++++++++++
 .../LumberjackComponentAutoConfiguration.java      | 11 ++-
 .../springboot/LumberjackComponentConverter.java   | 64 ++++++++++++++
 .../springboot/LZFDataFormatAutoConfiguration.java |  9 +-
 .../springboot/MailComponentAutoConfiguration.java | 11 ++-
 .../mail/springboot/MailComponentConverter.java    | 79 ++++++++++++++++++
 .../MimeMultipartDataFormatAutoConfiguration.java  |  9 +-
 .../MasterComponentAutoConfiguration.java          | 11 ++-
 .../springboot/MasterComponentConverter.java       | 65 +++++++++++++++
 .../MetricsComponentAutoConfiguration.java         | 11 ++-
 .../springboot/MetricsComponentConverter.java      | 63 ++++++++++++++
 .../MicrometerComponentAutoConfiguration.java      | 11 ++-
 .../springboot/MicrometerComponentConverter.java   | 64 ++++++++++++++
 .../MiloClientComponentAutoConfiguration.java      | 11 ++-
 .../springboot/MiloClientComponentConverter.java   | 64 ++++++++++++++
 .../MiloServerComponentAutoConfiguration.java      | 11 ++-
 .../springboot/MiloServerComponentConverter.java   | 72 ++++++++++++++++
 .../springboot/MinaComponentAutoConfiguration.java | 11 ++-
 .../mina/springboot/MinaComponentConverter.java    | 71 ++++++++++++++++
 .../MinioComponentAutoConfiguration.java           | 11 ++-
 .../minio/springboot/MinioComponentConverter.java  | 75 +++++++++++++++++
 .../springboot/MllpComponentAutoConfiguration.java | 11 ++-
 .../mllp/springboot/MllpComponentConverter.java    | 63 ++++++++++++++
 .../springboot/MockComponentAutoConfiguration.java |  9 +-
 .../GridFsComponentAutoConfiguration.java          |  9 +-
 .../MongoDbComponentAutoConfiguration.java         | 11 ++-
 .../springboot/MongoDbComponentConverter.java      | 63 ++++++++++++++
 .../springboot/MsvComponentAutoConfiguration.java  | 11 ++-
 .../msv/springboot/MsvComponentConverter.java      | 65 +++++++++++++++
 .../MustacheComponentAutoConfiguration.java        | 11 ++-
 .../springboot/MustacheComponentConverter.java     | 63 ++++++++++++++
 .../springboot/MvelComponentAutoConfiguration.java |  9 +-
 .../springboot/MvelLanguageAutoConfiguration.java  |  9 +-
 .../MyBatisBeanComponentAutoConfiguration.java     | 11 ++-
 .../springboot/MyBatisBeanComponentConverter.java  | 64 ++++++++++++++
 .../MyBatisComponentAutoConfiguration.java         | 11 ++-
 .../springboot/MyBatisComponentConverter.java      | 63 ++++++++++++++
 .../NagiosComponentAutoConfiguration.java          | 11 ++-
 .../springboot/NagiosComponentConverter.java       | 65 +++++++++++++++
 .../springboot/NatsComponentAutoConfiguration.java |  9 +-
 .../NettyHttpComponentAutoConfiguration.java       | 11 ++-
 .../springboot/NettyHttpComponentConverter.java    | 92 ++++++++++++++++++++
 .../NettyComponentAutoConfiguration.java           | 11 ++-
 .../netty/springboot/NettyComponentConverter.java  | 85 +++++++++++++++++++
 .../NitriteComponentAutoConfiguration.java         |  9 +-
 .../springboot/NsqComponentAutoConfiguration.java  |  9 +-
 .../OAIPMHComponentAutoConfiguration.java          |  9 +-
 .../springboot/OgnlLanguageAutoConfiguration.java  |  9 +-
 .../Olingo2ComponentAutoConfiguration.java         | 11 ++-
 .../springboot/Olingo2ComponentConverter.java      | 75 +++++++++++++++++
 .../Olingo4ComponentAutoConfiguration.java         | 11 ++-
 .../springboot/Olingo4ComponentConverter.java      | 71 ++++++++++++++++
 .../CinderComponentAutoConfiguration.java          |  9 +-
 .../GlanceComponentAutoConfiguration.java          |  9 +-
 .../KeystoneComponentAutoConfiguration.java        |  9 +-
 .../NeutronComponentAutoConfiguration.java         |  9 +-
 .../springboot/NovaComponentAutoConfiguration.java |  9 +-
 .../SwiftComponentAutoConfiguration.java           |  9 +-
 .../OptaPlannerComponentAutoConfiguration.java     |  9 +-
 .../springboot/PahoComponentAutoConfiguration.java | 11 ++-
 .../paho/springboot/PahoComponentConverter.java    | 73 ++++++++++++++++
 .../springboot/PdfComponentAutoConfiguration.java  |  9 +-
 ...gReplicationSlotComponentAutoConfiguration.java |  9 +-
 .../PgEventComponentAutoConfiguration.java         |  9 +-
 .../PlatformHttpComponentAutoConfiguration.java    | 11 ++-
 .../springboot/PlatformHttpComponentConverter.java | 64 ++++++++++++++
 .../PrinterComponentAutoConfiguration.java         |  9 +-
 .../ProtobufDataFormatAutoConfiguration.java       |  9 +-
 .../PubNubComponentAutoConfiguration.java          |  9 +-
 .../PulsarComponentAutoConfiguration.java          | 11 ++-
 .../springboot/PulsarComponentConverter.java       | 83 ++++++++++++++++++
 .../QuartzComponentAutoConfiguration.java          | 11 ++-
 .../springboot/QuartzComponentConverter.java       | 65 +++++++++++++++
 .../QuickfixjComponentAutoConfiguration.java       | 11 ++-
 .../springboot/QuickfixjComponentConverter.java    | 68 +++++++++++++++
 .../RabbitMQComponentAutoConfiguration.java        | 11 ++-
 .../springboot/RabbitMQComponentConverter.java     | 67 +++++++++++++++
 .../ReactiveStreamsComponentAutoConfiguration.java | 11 ++-
 .../ReactiveStreamsComponentConverter.java         | 66 +++++++++++++++
 .../springboot/RefComponentAutoConfiguration.java  |  9 +-
 .../RestOpenApiComponentAutoConfiguration.java     | 11 ++-
 .../springboot/RestOpenApiComponentConverter.java  | 64 ++++++++++++++
 .../RestApiComponentAutoConfiguration.java         |  9 +-
 .../springboot/RestComponentAutoConfiguration.java |  9 +-
 .../RestSwaggerComponentAutoConfiguration.java     | 11 ++-
 .../springboot/RestSwaggerComponentConverter.java  | 64 ++++++++++++++
 .../ResteasyComponentAutoConfiguration.java        | 11 ++-
 .../springboot/ResteasyComponentConverter.java     | 63 ++++++++++++++
 .../RobotFrameworkComponentAutoConfiguration.java  | 11 ++-
 .../RobotFrameworkComponentConverter.java          | 64 ++++++++++++++
 .../springboot/RssComponentAutoConfiguration.java  |  9 +-
 .../springboot/RssDataFormatAutoConfiguration.java |  9 +-
 .../springboot/SagaComponentAutoConfiguration.java |  9 +-
 .../SalesforceComponentAutoConfiguration.java      | 11 ++-
 .../springboot/SalesforceComponentConverter.java   | 88 ++++++++++++++++++++
 .../NetWeaverComponentAutoConfiguration.java       |  9 +-
 .../XQueryComponentAutoConfiguration.java          | 11 ++-
 .../springboot/XQueryComponentConverter.java       | 65 +++++++++++++++
 .../XQueryLanguageAutoConfiguration.java           |  9 +-
 .../SchedulerComponentAutoConfiguration.java       |  9 +-
 .../SchematronComponentAutoConfiguration.java      |  9 +-
 .../springboot/SedaComponentAutoConfiguration.java | 11 ++-
 .../seda/springboot/SedaComponentConverter.java    | 63 ++++++++++++++
 .../ServiceComponentAutoConfiguration.java         | 11 ++-
 .../springboot/ServiceComponentConverter.java      | 65 +++++++++++++++
 .../ServiceNowComponentAutoConfiguration.java      | 11 ++-
 .../springboot/ServiceNowComponentConverter.java   | 74 +++++++++++++++++
 .../ServletComponentAutoConfiguration.java         | 11 ++-
 .../springboot/ServletComponentConverter.java      | 69 +++++++++++++++
 .../springboot/SipComponentAutoConfiguration.java  |  9 +-
 .../SjmsBatchComponentAutoConfiguration.java       | 11 ++-
 .../springboot/SjmsBatchComponentConverter.java    | 66 +++++++++++++++
 .../springboot/SjmsComponentAutoConfiguration.java | 11 ++-
 .../sjms/springboot/SjmsComponentConverter.java    | 77 +++++++++++++++++
 .../Sjms2ComponentAutoConfiguration.java           | 11 ++-
 .../sjms2/springboot/Sjms2ComponentConverter.java  | 77 +++++++++++++++++
 .../SlackComponentAutoConfiguration.java           |  9 +-
 .../springboot/SmppComponentAutoConfiguration.java | 11 ++-
 .../smpp/springboot/SmppComponentConverter.java    | 67 +++++++++++++++
 .../SnakeYAMLDataFormatAutoConfiguration.java      |  9 +-
 .../springboot/SnmpComponentAutoConfiguration.java |  9 +-
 .../SoapJaxbDataFormatAutoConfiguration.java       |  9 +-
 .../springboot/SolrComponentAutoConfiguration.java |  9 +-
 .../SoroushBotComponentAutoConfiguration.java      |  9 +-
 .../SparkComponentAutoConfiguration.java           | 11 ++-
 .../spark/springboot/SparkComponentConverter.java  | 65 +++++++++++++++
 .../SplunkComponentAutoConfiguration.java          | 11 ++-
 .../springboot/SplunkComponentConverter.java       | 63 ++++++++++++++
 .../SpringBatchComponentAutoConfiguration.java     | 11 ++-
 .../springboot/SpringBatchComponentConverter.java  | 66 +++++++++++++++
 ...pringIntegrationComponentAutoConfiguration.java |  9 +-
 .../SpringLdapComponentAutoConfiguration.java      |  9 +-
 .../RedisComponentAutoConfiguration.java           |  9 +-
 .../EventComponentAutoConfiguration.java           |  9 +-
 .../springboot/SpelLanguageAutoConfiguration.java  |  9 +-
 ...SpringWebserviceComponentAutoConfiguration.java |  9 +-
 .../springboot/SqlComponentAutoConfiguration.java  | 11 ++-
 .../sql/springboot/SqlComponentConverter.java      | 63 ++++++++++++++
 .../SqlStoredComponentAutoConfiguration.java       | 11 ++-
 .../springboot/SqlStoredComponentConverter.java    | 64 ++++++++++++++
 .../springboot/SshComponentAutoConfiguration.java  | 11 ++-
 .../ssh/springboot/SshComponentConverter.java      | 65 +++++++++++++++
 .../springboot/StAXComponentAutoConfiguration.java |  9 +-
 .../StompComponentAutoConfiguration.java           | 11 ++-
 .../stomp/springboot/StompComponentConverter.java  | 69 +++++++++++++++
 .../StreamComponentAutoConfiguration.java          |  9 +-
 .../StringTemplateComponentAutoConfiguration.java  |  9 +-
 .../springboot/StubComponentAutoConfiguration.java | 11 ++-
 .../stub/springboot/StubComponentConverter.java    | 63 ++++++++++++++
 .../SyslogDataFormatAutoConfiguration.java         |  9 +-
 .../TidyMarkupDataFormatAutoConfiguration.java     |  9 +-
 .../TarFileDataFormatAutoConfiguration.java        |  9 +-
 .../TelegramComponentAutoConfiguration.java        | 11 ++-
 .../springboot/TelegramComponentConverter.java     | 65 +++++++++++++++
 .../ThriftComponentAutoConfiguration.java          |  9 +-
 .../ThriftDataFormatAutoConfiguration.java         |  9 +-
 .../springboot/TikaComponentAutoConfiguration.java |  9 +-
 .../TimerComponentAutoConfiguration.java           |  9 +-
 .../TwilioComponentAutoConfiguration.java          | 11 ++-
 .../springboot/TwilioComponentConverter.java       | 65 +++++++++++++++
 ...terDirectMessageComponentAutoConfiguration.java |  9 +-
 .../TwitterSearchComponentAutoConfiguration.java   |  9 +-
 .../TwitterTimelineComponentAutoConfiguration.java |  9 +-
 .../UndertowComponentAutoConfiguration.java        | 11 ++-
 .../springboot/UndertowComponentConverter.java     | 71 ++++++++++++++++
 .../UniVocityCsvDataFormatAutoConfiguration.java   |  9 +-
 ...ocityFixedWidthDataFormatAutoConfiguration.java |  9 +-
 .../UniVocityTsvDataFormatAutoConfiguration.java   |  9 +-
 .../ValidatorComponentAutoConfiguration.java       | 11 ++-
 .../springboot/ValidatorComponentConverter.java    | 64 ++++++++++++++
 .../VelocityComponentAutoConfiguration.java        | 11 ++-
 .../springboot/VelocityComponentConverter.java     | 63 ++++++++++++++
 .../VertxHttpComponentAutoConfiguration.java       | 11 ++-
 .../springboot/VertxHttpComponentConverter.java    | 74 +++++++++++++++++
 .../VertxComponentAutoConfiguration.java           | 11 ++-
 .../vertx/springboot/VertxComponentConverter.java  | 67 +++++++++++++++
 .../VertxWebsocketComponentAutoConfiguration.java  | 11 ++-
 .../VertxWebsocketComponentConverter.java          | 68 +++++++++++++++
 .../springboot/VmComponentAutoConfiguration.java   | 11 ++-
 .../vm/springboot/VmComponentConverter.java        | 63 ++++++++++++++
 .../WeatherComponentAutoConfiguration.java         |  9 +-
 .../Web3jComponentAutoConfiguration.java           | 11 ++-
 .../web3j/springboot/Web3jComponentConverter.java  | 67 +++++++++++++++
 .../WebhookComponentAutoConfiguration.java         | 11 ++-
 .../springboot/WebhookComponentConverter.java      | 63 ++++++++++++++
 .../JSR356WebSocketComponentAutoConfiguration.java | 11 ++-
 .../JSR356WebSocketComponentConverter.java         | 64 ++++++++++++++
 .../WebsocketComponentAutoConfiguration.java       | 11 ++-
 .../springboot/WebsocketComponentConverter.java    | 66 +++++++++++++++
 .../springboot/WekaComponentAutoConfiguration.java |  9 +-
 .../WordpressComponentAutoConfiguration.java       | 11 ++-
 .../springboot/WordpressComponentConverter.java    | 66 +++++++++++++++
 .../WorkdayComponentAutoConfiguration.java         |  9 +-
 .../XChangeComponentAutoConfiguration.java         |  9 +-
 .../springboot/XJComponentAutoConfiguration.java   | 11 ++-
 .../xj/springboot/XJComponentConverter.java        | 69 +++++++++++++++
 .../XMLTokenizeLanguageAutoConfiguration.java      |  9 +-
 .../XmlSignerComponentAutoConfiguration.java       | 11 ++-
 .../springboot/XmlSignerComponentConverter.java    | 74 +++++++++++++++++
 .../XmlVerifierComponentAutoConfiguration.java     | 11 ++-
 .../springboot/XmlVerifierComponentConverter.java  | 76 +++++++++++++++++
 .../XMLSecurityDataFormatAutoConfiguration.java    |  9 +-
 .../springboot/XmppComponentAutoConfiguration.java |  9 +-
 .../springboot/XPathLanguageAutoConfiguration.java |  9 +-
 .../XsltSaxonComponentAutoConfiguration.java       | 11 ++-
 .../springboot/XsltSaxonComponentConverter.java    | 70 ++++++++++++++++
 .../springboot/XsltComponentAutoConfiguration.java | 11 ++-
 .../xslt/springboot/XsltComponentConverter.java    | 67 +++++++++++++++
 .../JsonDataFormatAutoConfiguration.java           |  9 +-
 .../XStreamDataFormatAutoConfiguration.java        |  9 +-
 .../YammerComponentAutoConfiguration.java          | 11 ++-
 .../springboot/YammerComponentConverter.java       | 65 +++++++++++++++
 .../ZendeskComponentAutoConfiguration.java         | 11 ++-
 .../springboot/ZendeskComponentConverter.java      | 65 +++++++++++++++
 .../GzipDeflaterDataFormatAutoConfiguration.java   |  9 +-
 .../ZipDeflaterDataFormatAutoConfiguration.java    |  9 +-
 .../ZipFileDataFormatAutoConfiguration.java        |  9 +-
 .../MasterComponentAutoConfiguration.java          | 11 ++-
 .../springboot/MasterComponentConverter.java       | 65 +++++++++++++++
 .../ZooKeeperComponentAutoConfiguration.java       | 11 ++-
 .../springboot/ZooKeeperComponentConverter.java    | 64 ++++++++++++++
 633 files changed, 18328 insertions(+), 864 deletions(-)

diff --git a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java
index 4c69695..d60f872 100644
--- a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java
+++ b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ActiveMQComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ActiveMQComponentConfiguration configuration;
 
+    public ActiveMQComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ActiveMQComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureActiveMQComponent() {
diff --git a/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConverter.java b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConverter.java
new file mode 100644
index 0000000..ee3b682
--- /dev/null
+++ b/components-starter/camel-activemq-starter/src/main/java/org/apache/camel/component/activemq/springboot/ActiveMQComponentConverter.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.activemq.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ActiveMQComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ActiveMQComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, javax.jms.ConnectionFactory.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.JmsMessageType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.ConsumerType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.DefaultTaskExecutorType.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.core.task.TaskExecutor.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.ReplyToType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.JmsConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.jms.support.destination.DestinationResolver.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.util.ErrorHandler.class));
+        answer.add(new ConvertiblePair(String.class, javax.jms.ExceptionListener.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.JmsKeyFormatStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.jms.support.converter.MessageConverter.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.MessageCreatedStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.MessageListenerContainerFactory.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.QueueBrowseStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.spi.HeaderFilterStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.LoggingLevel.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.transaction.PlatformTransactionManager.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "javax.jms.ConnectionFactory": return camelContext.getRegistry().lookupByNameAndType(ref, javax.jms.ConnectionFactory.class);
+            case "org.apache.camel.component.jms.JmsMessageType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.JmsMessageType.class);
+            case "org.apache.camel.component.jms.ConsumerType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.ConsumerType.class);
+            case "org.apache.camel.component.jms.DefaultTaskExecutorType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.DefaultTaskExecutorType.class);
+            case "org.springframework.core.task.TaskExecutor": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.core.task.TaskExecutor.class);
+            case "org.apache.camel.component.jms.ReplyToType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.ReplyToType.class);
+            case "org.apache.camel.component.jms.JmsConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.JmsConfiguration.class);
+            case "org.springframework.jms.support.destination.DestinationResolver": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.jms.support.destination.DestinationResolver.class);
+            case "org.springframework.util.ErrorHandler": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.util.ErrorHandler.class);
+            case "javax.jms.ExceptionListener": return camelContext.getRegistry().lookupByNameAndType(ref, javax.jms.ExceptionListener.class);
+            case "org.apache.camel.component.jms.JmsKeyFormatStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.JmsKeyFormatStrategy.class);
+            case "org.springframework.jms.support.converter.MessageConverter": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.jms.support.converter.MessageConverter.class);
+            case "org.apache.camel.component.jms.MessageCreatedStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.MessageCreatedStrategy.class);
+            case "org.apache.camel.component.jms.MessageListenerContainerFactory": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.MessageListenerContainerFactory.class);
+            case "org.apache.camel.component.jms.QueueBrowseStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.QueueBrowseStrategy.class);
+            case "org.apache.camel.spi.HeaderFilterStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.spi.HeaderFilterStrategy.class);
+            case "org.apache.camel.LoggingLevel": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.LoggingLevel.class);
+            case "org.springframework.transaction.PlatformTransactionManager": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.transaction.PlatformTransactionManager.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
index 2bfc15c..4a46b54 100644
--- a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
+++ b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AhcComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AhcComponentConfiguration configuration;
 
+    public AhcComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AhcComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAhcComponent() {
diff --git a/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConverter.java b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConverter.java
new file mode 100644
index 0000000..3f0d723
--- /dev/null
+++ b/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConverter.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ahc.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AhcComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AhcComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.ahc.AhcBinding.class));
+        answer.add(new ConvertiblePair(String.class, org.asynchttpclient.AsyncHttpClient.class));
+        answer.add(new ConvertiblePair(String.class, org.asynchttpclient.AsyncHttpClientConfig.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.spi.HeaderFilterStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.support.jsse.SSLContextParameters.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.ahc.AhcBinding": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.ahc.AhcBinding.class);
+            case "org.asynchttpclient.AsyncHttpClient": return camelContext.getRegistry().lookupByNameAndType(ref, org.asynchttpclient.AsyncHttpClient.class);
+            case "org.asynchttpclient.AsyncHttpClientConfig": return camelContext.getRegistry().lookupByNameAndType(ref, org.asynchttpclient.AsyncHttpClientConfig.class);
+            case "org.apache.camel.spi.HeaderFilterStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.spi.HeaderFilterStrategy.class);
+            case "org.apache.camel.support.jsse.SSLContextParameters": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.support.jsse.SSLContextParameters.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
index 4aad5a4..8312d79 100644
--- a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
+++ b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class WsComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private WsComponentConfiguration configuration;
 
+    public WsComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new WsComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureWsComponent() {
diff --git a/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConverter.java b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConverter.java
new file mode 100644
index 0000000..80a0d54
--- /dev/null
+++ b/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConverter.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.ahc.ws.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class WsComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public WsComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.ahc.AhcBinding.class));
+        answer.add(new ConvertiblePair(String.class, org.asynchttpclient.AsyncHttpClient.class));
+        answer.add(new ConvertiblePair(String.class, org.asynchttpclient.AsyncHttpClientConfig.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.spi.HeaderFilterStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.support.jsse.SSLContextParameters.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.ahc.AhcBinding": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.ahc.AhcBinding.class);
+            case "org.asynchttpclient.AsyncHttpClient": return camelContext.getRegistry().lookupByNameAndType(ref, org.asynchttpclient.AsyncHttpClient.class);
+            case "org.asynchttpclient.AsyncHttpClientConfig": return camelContext.getRegistry().lookupByNameAndType(ref, org.asynchttpclient.AsyncHttpClientConfig.class);
+            case "org.apache.camel.spi.HeaderFilterStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.spi.HeaderFilterStrategy.class);
+            case "org.apache.camel.support.jsse.SSLContextParameters": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.support.jsse.SSLContextParameters.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
index b69e002..e291135 100644
--- a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
+++ b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AMQPComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AMQPComponentConfiguration configuration;
 
+    public AMQPComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AMQPComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAMQPComponent() {
diff --git a/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConverter.java b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConverter.java
new file mode 100644
index 0000000..a95dae1
--- /dev/null
+++ b/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConverter.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.amqp.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AMQPComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AMQPComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, javax.jms.ConnectionFactory.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.JmsMessageType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.ConsumerType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.DefaultTaskExecutorType.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.core.task.TaskExecutor.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.ReplyToType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.JmsConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.jms.support.destination.DestinationResolver.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.util.ErrorHandler.class));
+        answer.add(new ConvertiblePair(String.class, javax.jms.ExceptionListener.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.JmsKeyFormatStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.jms.support.converter.MessageConverter.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.MessageCreatedStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.MessageListenerContainerFactory.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.jms.QueueBrowseStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.spi.HeaderFilterStrategy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.LoggingLevel.class));
+        answer.add(new ConvertiblePair(String.class, org.springframework.transaction.PlatformTransactionManager.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "javax.jms.ConnectionFactory": return camelContext.getRegistry().lookupByNameAndType(ref, javax.jms.ConnectionFactory.class);
+            case "org.apache.camel.component.jms.JmsMessageType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.JmsMessageType.class);
+            case "org.apache.camel.component.jms.ConsumerType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.ConsumerType.class);
+            case "org.apache.camel.component.jms.DefaultTaskExecutorType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.DefaultTaskExecutorType.class);
+            case "org.springframework.core.task.TaskExecutor": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.core.task.TaskExecutor.class);
+            case "org.apache.camel.component.jms.ReplyToType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.ReplyToType.class);
+            case "org.apache.camel.component.jms.JmsConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.JmsConfiguration.class);
+            case "org.springframework.jms.support.destination.DestinationResolver": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.jms.support.destination.DestinationResolver.class);
+            case "org.springframework.util.ErrorHandler": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.util.ErrorHandler.class);
+            case "javax.jms.ExceptionListener": return camelContext.getRegistry().lookupByNameAndType(ref, javax.jms.ExceptionListener.class);
+            case "org.apache.camel.component.jms.JmsKeyFormatStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.JmsKeyFormatStrategy.class);
+            case "org.springframework.jms.support.converter.MessageConverter": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.jms.support.converter.MessageConverter.class);
+            case "org.apache.camel.component.jms.MessageCreatedStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.MessageCreatedStrategy.class);
+            case "org.apache.camel.component.jms.MessageListenerContainerFactory": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.MessageListenerContainerFactory.class);
+            case "org.apache.camel.component.jms.QueueBrowseStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.jms.QueueBrowseStrategy.class);
+            case "org.apache.camel.spi.HeaderFilterStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.spi.HeaderFilterStrategy.class);
+            case "org.apache.camel.LoggingLevel": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.LoggingLevel.class);
+            case "org.springframework.transaction.PlatformTransactionManager": return camelContext.getRegistry().lookupByNameAndType(ref, org.springframework.transaction.PlatformTransactionManager.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java b/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
index d97bcfc..ccb7a83 100644
--- a/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
+++ b/components-starter/camel-any23-starter/src/main/java/org/apache/camel/dataformat/any23/springboot/Any23DataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class Any23DataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Any23DataFormatConfiguration configuration;
 
+    public Any23DataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureAny23DataFormatFactory() {
diff --git a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
index 392fd76..077a6b4 100644
--- a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
+++ b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ApnsComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ApnsComponentConfiguration configuration;
 
+    public ApnsComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ApnsComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureApnsComponent() {
diff --git a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConverter.java b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConverter.java
new file mode 100644
index 0000000..db46b6d
--- /dev/null
+++ b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConverter.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.apns.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ApnsComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ApnsComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.notnoop.apns.ApnsService.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.notnoop.apns.ApnsService": return camelContext.getRegistry().lookupByNameAndType(ref, com.notnoop.apns.ApnsService.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentAutoConfiguration.java b/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentAutoConfiguration.java
index 2caee54..295fb93 100644
--- a/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentAutoConfiguration.java
+++ b/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ArangoDbComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ArangoDbComponentConfiguration configuration;
 
+    public ArangoDbComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ArangoDbComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureArangoDbComponent() {
diff --git a/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConverter.java b/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConverter.java
new file mode 100644
index 0000000..e3da532
--- /dev/null
+++ b/components-starter/camel-arangodb-starter/src/main/java/org/apache/camel/component/arangodb/springboot/ArangoDbComponentConverter.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.arangodb.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ArangoDbComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ArangoDbComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.arangodb.ArangoDbConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.arangodb.ArangoDbOperation.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.arangodb.ArangoDbConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.arangodb.ArangoDbConfiguration.class);
+            case "org.apache.camel.component.arangodb.ArangoDbOperation": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.arangodb.ArangoDbOperation.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java
index 3035f95..6589024 100644
--- a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AS2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AS2ComponentConfiguration configuration;
 
+    public AS2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AS2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAS2Component() {
diff --git a/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConverter.java b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConverter.java
new file mode 100644
index 0000000..a3c6d8f
--- /dev/null
+++ b/components-starter/camel-as2-starter/src/main/java/org/apache/camel/component/as2/springboot/AS2ComponentConverter.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.as2.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AS2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AS2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.as2.AS2Configuration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.as2.AS2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.as2.AS2Configuration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-asn1-starter/src/main/java/org/apache/camel/dataformat/asn1/springboot/ASN1DataFormatAutoConfiguration.java b/components-starter/camel-asn1-starter/src/main/java/org/apache/camel/dataformat/asn1/springboot/ASN1DataFormatAutoConfiguration.java
index f7393d3..f115fb4 100644
--- a/components-starter/camel-asn1-starter/src/main/java/org/apache/camel/dataformat/asn1/springboot/ASN1DataFormatAutoConfiguration.java
+++ b/components-starter/camel-asn1-starter/src/main/java/org/apache/camel/dataformat/asn1/springboot/ASN1DataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class ASN1DataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ASN1DataFormatConfiguration configuration;
 
+    public ASN1DataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureASN1DataFormatFactory() {
diff --git a/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java b/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java
index 51d78ca..4b4668b 100644
--- a/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java
+++ b/components-starter/camel-asterisk-starter/src/main/java/org/apache/camel/component/asterisk/springboot/AsteriskComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class AsteriskComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AsteriskComponentConfiguration configuration;
 
+    public AsteriskComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAsteriskComponent() {
diff --git a/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentAutoConfiguration.java b/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentAutoConfiguration.java
index fbd1317..b143328 100644
--- a/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentAutoConfiguration.java
+++ b/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtlasMapComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtlasMapComponentConfiguration configuration;
 
+    public AtlasMapComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtlasMapComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtlasMapComponent() {
diff --git a/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentConverter.java b/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentConverter.java
new file mode 100644
index 0000000..6a7783a
--- /dev/null
+++ b/components-starter/camel-atlasmap-starter/src/main/java/org/apache/camel/component/atlasmap/springboot/AtlasMapComponentConverter.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atlasmap.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtlasMapComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtlasMapComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atlasmap.api.AtlasContextFactory.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atlasmap.api.AtlasContextFactory": return camelContext.getRegistry().lookupByNameAndType(ref, io.atlasmap.api.AtlasContextFactory.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java b/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java
index ed6799f..b08e9c2 100644
--- a/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java
+++ b/components-starter/camel-atmos-starter/src/main/java/org/apache/camel/component/atmos/springboot/AtmosComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class AtmosComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtmosComponentConfiguration configuration;
 
+    public AtmosComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtmosComponent() {
diff --git a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
index b6bc50f..bb610a5 100644
--- a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
+++ b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class WebsocketComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private WebsocketComponentConfiguration configuration;
 
+    public WebsocketComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new WebsocketComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureWebsocketComponent() {
diff --git a/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConverter.java b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConverter.java
new file mode 100644
index 0000000..4215db3
--- /dev/null
+++ b/components-starter/camel-atmosphere-websocket-starter/src/main/java/org/apache/camel/component/atmosphere/websocket/springboot/WebsocketComponentConverter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atmosphere.websocket.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class WebsocketComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public WebsocketComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.http.common.HttpRegistry.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.http.common.HttpBinding.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.http.common.HttpConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.spi.HeaderFilterStrategy.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.http.common.HttpRegistry": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.http.common.HttpRegistry.class);
+            case "org.apache.camel.http.common.HttpBinding": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.http.common.HttpBinding.class);
+            case "org.apache.camel.http.common.HttpConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.http.common.HttpConfiguration.class);
+            case "org.apache.camel.spi.HeaderFilterStrategy": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.spi.HeaderFilterStrategy.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java b/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java
index 794307e..bd4e250 100644
--- a/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java
+++ b/components-starter/camel-atom-starter/src/main/java/org/apache/camel/component/atom/springboot/AtomComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class AtomComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomComponentConfiguration configuration;
 
+    public AtomComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java
index 3a19bac..a35edb2 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtomixMapComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomixMapComponentConfiguration configuration;
 
+    public AtomixMapComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtomixMapComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomixMapComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConverter.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConverter.java
new file mode 100644
index 0000000..d2c9c38
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/map/springboot/AtomixMapComponentConverter.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atomix.client.map.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtomixMapComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtomixMapComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atomix.Atomix.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.map.AtomixMapConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.map.AtomixMap.Action.class));
+        answer.add(new ConvertiblePair(String.class, java.lang.Object.class));
+        answer.add(new ConvertiblePair(String.class, java.util.Properties.class));
+        answer.add(new ConvertiblePair(String.class, io.atomix.resource.ReadConsistency.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atomix.Atomix": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.Atomix.class);
+            case "org.apache.camel.component.atomix.client.map.AtomixMapConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.map.AtomixMapConfiguration.class);
+            case "org.apache.camel.component.atomix.client.map.AtomixMap.Action": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.map.AtomixMap.Action.class);
+            case "java.lang.Object": return camelContext.getRegistry().lookupByNameAndType(ref, java.lang.Object.class);
+            case "java.util.Properties": return camelContext.getRegistry().lookupByNameAndType(ref, java.util.Properties.class);
+            case "io.atomix.resource.ReadConsistency": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.resource.ReadConsistency.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java
index 7219287..d0a0c6f 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtomixMessagingComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomixMessagingComponentConfiguration configuration;
 
+    public AtomixMessagingComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtomixMessagingComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomixMessagingComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConverter.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConverter.java
new file mode 100644
index 0000000..c25caed
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/messaging/springboot/AtomixMessagingComponentConverter.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atomix.client.messaging.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtomixMessagingComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtomixMessagingComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atomix.Atomix.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.messaging.AtomixMessaging.BroadcastType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.messaging.AtomixMessaging.Action.class));
+        answer.add(new ConvertiblePair(String.class, java.util.Properties.class));
+        answer.add(new ConvertiblePair(String.class, io.atomix.resource.ReadConsistency.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atomix.Atomix": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.Atomix.class);
+            case "org.apache.camel.component.atomix.client.messaging.AtomixMessaging.BroadcastType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.messaging.AtomixMessaging.BroadcastType.class);
+            case "org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.messaging.AtomixMessagingConfiguration.class);
+            case "org.apache.camel.component.atomix.client.messaging.AtomixMessaging.Action": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.messaging.AtomixMessaging.Action.class);
+            case "java.util.Properties": return camelContext.getRegistry().lookupByNameAndType(ref, java.util.Properties.class);
+            case "io.atomix.resource.ReadConsistency": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.resource.ReadConsistency.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java
index 8684751..52e1f8c 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtomixMultiMapComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomixMultiMapComponentConfiguration configuration;
 
+    public AtomixMultiMapComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtomixMultiMapComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomixMultiMapComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConverter.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConverter.java
new file mode 100644
index 0000000..39e20c4
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/multimap/springboot/AtomixMultiMapComponentConverter.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atomix.client.multimap.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtomixMultiMapComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtomixMultiMapComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atomix.Atomix.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.multimap.AtomixMultiMap.Action.class));
+        answer.add(new ConvertiblePair(String.class, java.lang.Object.class));
+        answer.add(new ConvertiblePair(String.class, java.util.Properties.class));
+        answer.add(new ConvertiblePair(String.class, io.atomix.resource.ReadConsistency.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atomix.Atomix": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.Atomix.class);
+            case "org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.multimap.AtomixMultiMapConfiguration.class);
+            case "org.apache.camel.component.atomix.client.multimap.AtomixMultiMap.Action": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.multimap.AtomixMultiMap.Action.class);
+            case "java.lang.Object": return camelContext.getRegistry().lookupByNameAndType(ref, java.lang.Object.class);
+            case "java.util.Properties": return camelContext.getRegistry().lookupByNameAndType(ref, java.util.Properties.class);
+            case "io.atomix.resource.ReadConsistency": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.resource.ReadConsistency.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java
index 03e73b3..398968a 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtomixQueueComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomixQueueComponentConfiguration configuration;
 
+    public AtomixQueueComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtomixQueueComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomixQueueComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConverter.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConverter.java
new file mode 100644
index 0000000..a31806f
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/queue/springboot/AtomixQueueComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atomix.client.queue.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtomixQueueComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtomixQueueComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atomix.Atomix.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.queue.AtomixQueue.Action.class));
+        answer.add(new ConvertiblePair(String.class, java.util.Properties.class));
+        answer.add(new ConvertiblePair(String.class, io.atomix.resource.ReadConsistency.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atomix.Atomix": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.Atomix.class);
+            case "org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.queue.AtomixQueueConfiguration.class);
+            case "org.apache.camel.component.atomix.client.queue.AtomixQueue.Action": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.queue.AtomixQueue.Action.class);
+            case "java.util.Properties": return camelContext.getRegistry().lookupByNameAndType(ref, java.util.Properties.class);
+            case "io.atomix.resource.ReadConsistency": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.resource.ReadConsistency.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java
index 1be55ca..bdc30d9 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtomixSetComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomixSetComponentConfiguration configuration;
 
+    public AtomixSetComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtomixSetComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomixSetComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConverter.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConverter.java
new file mode 100644
index 0000000..e706c6b
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/set/springboot/AtomixSetComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atomix.client.set.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtomixSetComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtomixSetComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atomix.Atomix.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.set.AtomixSetConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.set.AtomixSet.Action.class));
+        answer.add(new ConvertiblePair(String.class, java.util.Properties.class));
+        answer.add(new ConvertiblePair(String.class, io.atomix.resource.ReadConsistency.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atomix.Atomix": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.Atomix.class);
+            case "org.apache.camel.component.atomix.client.set.AtomixSetConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.set.AtomixSetConfiguration.class);
+            case "org.apache.camel.component.atomix.client.set.AtomixSet.Action": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.set.AtomixSet.Action.class);
+            case "java.util.Properties": return camelContext.getRegistry().lookupByNameAndType(ref, java.util.Properties.class);
+            case "io.atomix.resource.ReadConsistency": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.resource.ReadConsistency.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java
index e2d515d..4a80aaf 100644
--- a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AtomixValueComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AtomixValueComponentConfiguration configuration;
 
+    public AtomixValueComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AtomixValueComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAtomixValueComponent() {
diff --git a/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConverter.java b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConverter.java
new file mode 100644
index 0000000..0c94dfe
--- /dev/null
+++ b/components-starter/camel-atomix-starter/src/main/java/org/apache/camel/component/atomix/client/value/springboot/AtomixValueComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.atomix.client.value.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AtomixValueComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AtomixValueComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, io.atomix.Atomix.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.value.AtomixValueConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.atomix.client.value.AtomixValue.Action.class));
+        answer.add(new ConvertiblePair(String.class, java.util.Properties.class));
+        answer.add(new ConvertiblePair(String.class, io.atomix.resource.ReadConsistency.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "io.atomix.Atomix": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.Atomix.class);
+            case "org.apache.camel.component.atomix.client.value.AtomixValueConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.value.AtomixValueConfiguration.class);
+            case "org.apache.camel.component.atomix.client.value.AtomixValue.Action": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.atomix.client.value.AtomixValue.Action.class);
+            case "java.util.Properties": return camelContext.getRegistry().lookupByNameAndType(ref, java.util.Properties.class);
+            case "io.atomix.resource.ReadConsistency": return camelContext.getRegistry().lookupByNameAndType(ref, io.atomix.resource.ReadConsistency.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java b/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
index afdc2e3..6c59ead 100644
--- a/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
+++ b/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AvroComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AvroComponentConfiguration configuration;
 
+    public AvroComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AvroComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAvroComponent() {
diff --git a/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConverter.java b/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConverter.java
new file mode 100644
index 0000000..6986a50
--- /dev/null
+++ b/components-starter/camel-avro-rpc-starter/src/main/java/org/apache/camel/component/avro/springboot/AvroComponentConverter.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.avro.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AvroComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AvroComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.avro.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.avro.AvroConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.avro.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.avro.Protocol.class);
+            case "org.apache.camel.component.avro.AvroConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.avro.AvroConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-avro-starter/src/main/java/org/apache/camel/dataformat/avro/springboot/AvroDataFormatAutoConfiguration.java b/components-starter/camel-avro-starter/src/main/java/org/apache/camel/dataformat/avro/springboot/AvroDataFormatAutoConfiguration.java
index 78d0aa1..782b7ce 100644
--- a/components-starter/camel-avro-starter/src/main/java/org/apache/camel/dataformat/avro/springboot/AvroDataFormatAutoConfiguration.java
+++ b/components-starter/camel-avro-starter/src/main/java/org/apache/camel/dataformat/avro/springboot/AvroDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class AvroDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AvroDataFormatConfiguration configuration;
 
+    public AvroDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureAvroDataFormatFactory() {
diff --git a/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java
index 45a0869..5092e1e 100644
--- a/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CwComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CwComponentConfiguration configuration;
 
+    public CwComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CwComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCwComponent() {
diff --git a/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConverter.java b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConverter.java
new file mode 100644
index 0000000..bcc4bdf
--- /dev/null
+++ b/components-starter/camel-aws-cw-starter/src/main/java/org/apache/camel/component/aws/cw/springboot/CwComponentConverter.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.cw.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CwComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CwComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.cloudwatch.AmazonCloudWatch.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.cw.CwConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.cloudwatch.AmazonCloudWatch": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.cloudwatch.AmazonCloudWatch.class);
+            case "org.apache.camel.component.aws.cw.CwConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.cw.CwConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java
index 2f289e2..025e053 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class DdbComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private DdbComponentConfiguration configuration;
 
+    public DdbComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new DdbComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureDdbComponent() {
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConverter.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConverter.java
new file mode 100644
index 0000000..066f058
--- /dev/null
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddb/springboot/DdbComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.ddb.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class DdbComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public DdbComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ddb.DdbConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ddb.DdbOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.dynamodbv2.AmazonDynamoDB": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.dynamodbv2.AmazonDynamoDB.class);
+            case "org.apache.camel.component.aws.ddb.DdbConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ddb.DdbConfiguration.class);
+            case "org.apache.camel.component.aws.ddb.DdbOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ddb.DdbOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java
index 22b786b..ced2c59 100644
--- a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class DdbStreamComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private DdbStreamComponentConfiguration configuration;
 
+    public DdbStreamComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new DdbStreamComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureDdbStreamComponent() {
diff --git a/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConverter.java b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConverter.java
new file mode 100644
index 0000000..c848d6e
--- /dev/null
+++ b/components-starter/camel-aws-ddb-starter/src/main/java/org/apache/camel/component/aws/ddbstream/springboot/DdbStreamComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.ddbstream.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class DdbStreamComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public DdbStreamComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.dynamodbv2.AmazonDynamoDBStreams.class);
+            case "org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ddbstream.DdbStreamConfiguration.class);
+            case "com.amazonaws.services.dynamodbv2.model.ShardIteratorType": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.dynamodbv2.model.ShardIteratorType.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+            case "org.apache.camel.component.aws.ddbstream.SequenceNumberProvider": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ddbstream.SequenceNumberProvider.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java
index e6bd4d2..ed086b7 100644
--- a/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class EC2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private EC2ComponentConfiguration configuration;
 
+    public EC2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new EC2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureEC2Component() {
diff --git a/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConverter.java b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConverter.java
new file mode 100644
index 0000000..cfe32fd
--- /dev/null
+++ b/components-starter/camel-aws-ec2-starter/src/main/java/org/apache/camel/component/aws/ec2/springboot/EC2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.ec2.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class EC2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public EC2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.ec2.AmazonEC2.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ec2.EC2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ec2.EC2Operations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.ec2.AmazonEC2": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.ec2.AmazonEC2.class);
+            case "org.apache.camel.component.aws.ec2.EC2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ec2.EC2Configuration.class);
+            case "org.apache.camel.component.aws.ec2.EC2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ec2.EC2Operations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java
index ecc6183..91e6347 100644
--- a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ECSComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ECSComponentConfiguration configuration;
 
+    public ECSComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ECSComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureECSComponent() {
diff --git a/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConverter.java b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConverter.java
new file mode 100644
index 0000000..e3a646c
--- /dev/null
+++ b/components-starter/camel-aws-ecs-starter/src/main/java/org/apache/camel/component/aws/ecs/springboot/ECSComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.ecs.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ECSComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ECSComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ecs.ECSConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.ecs.AmazonECS.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ecs.ECSOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.ecs.ECSConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ecs.ECSConfiguration.class);
+            case "com.amazonaws.services.ecs.AmazonECS": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.ecs.AmazonECS.class);
+            case "org.apache.camel.component.aws.ecs.ECSOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ecs.ECSOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java
index 9562fac..0bae4a5 100644
--- a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class EKSComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private EKSComponentConfiguration configuration;
 
+    public EKSComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new EKSComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureEKSComponent() {
diff --git a/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConverter.java b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConverter.java
new file mode 100644
index 0000000..9c7b853
--- /dev/null
+++ b/components-starter/camel-aws-eks-starter/src/main/java/org/apache/camel/component/aws/eks/springboot/EKSComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.eks.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class EKSComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public EKSComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.eks.EKSConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.eks.AmazonEKS.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.eks.EKSOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.eks.EKSConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.eks.EKSConfiguration.class);
+            case "com.amazonaws.services.eks.AmazonEKS": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.eks.AmazonEKS.class);
+            case "org.apache.camel.component.aws.eks.EKSOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.eks.EKSOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java
index a2d13a4..0bdf80c 100644
--- a/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class IAMComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private IAMComponentConfiguration configuration;
 
+    public IAMComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new IAMComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureIAMComponent() {
diff --git a/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConverter.java b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConverter.java
new file mode 100644
index 0000000..80fef08
--- /dev/null
+++ b/components-starter/camel-aws-iam-starter/src/main/java/org/apache/camel/component/aws/iam/springboot/IAMComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.iam.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class IAMComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public IAMComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.iam.IAMConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.iam.IAMOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.iam.IAMConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.iam.IAMConfiguration.class);
+            case "com.amazonaws.services.identitymanagement.AmazonIdentityManagement": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.identitymanagement.AmazonIdentityManagement.class);
+            case "org.apache.camel.component.aws.iam.IAMOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.iam.IAMOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java
index 5fd1621..dd0f1de 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class KinesisFirehoseComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private KinesisFirehoseComponentConfiguration configuration;
 
+    public KinesisFirehoseComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new KinesisFirehoseComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureKinesisFirehoseComponent() {
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConverter.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConverter.java
new file mode 100644
index 0000000..9d4aa90
--- /dev/null
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/firehose/springboot/KinesisFirehoseComponentConverter.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.firehose.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class KinesisFirehoseComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public KinesisFirehoseComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.kinesisfirehose.AmazonKinesisFirehose.class);
+            case "org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.firehose.KinesisFirehoseConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java
index ef9ac43..5fae020 100644
--- a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class KinesisComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private KinesisComponentConfiguration configuration;
 
+    public KinesisComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new KinesisComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureKinesisComponent() {
diff --git a/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConverter.java b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConverter.java
new file mode 100644
index 0000000..49ad844
--- /dev/null
+++ b/components-starter/camel-aws-kinesis-starter/src/main/java/org/apache/camel/component/aws/kinesis/springboot/KinesisComponentConverter.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.kinesis.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class KinesisComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public KinesisComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.kinesis.AmazonKinesis.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.kinesis.KinesisConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.kinesis.model.ShardIteratorType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.kinesis.KinesisShardClosedStrategyEnum.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.kinesis.AmazonKinesis": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.kinesis.AmazonKinesis.class);
+            case "org.apache.camel.component.aws.kinesis.KinesisConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.kinesis.KinesisConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+            case "com.amazonaws.services.kinesis.model.ShardIteratorType": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.kinesis.model.ShardIteratorType.class);
+            case "org.apache.camel.component.aws.kinesis.KinesisShardClosedStrategyEnum": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.kinesis.KinesisShardClosedStrategyEnum.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java
index 8773a96..0679d1f 100644
--- a/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class KMSComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private KMSComponentConfiguration configuration;
 
+    public KMSComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new KMSComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureKMSComponent() {
diff --git a/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConverter.java b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConverter.java
new file mode 100644
index 0000000..87d064d
--- /dev/null
+++ b/components-starter/camel-aws-kms-starter/src/main/java/org/apache/camel/component/aws/kms/springboot/KMSComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.kms.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class KMSComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public KMSComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.kms.KMSConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.kms.AWSKMS.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.kms.KMSOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.kms.KMSConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.kms.KMSConfiguration.class);
+            case "com.amazonaws.services.kms.AWSKMS": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.kms.AWSKMS.class);
+            case "org.apache.camel.component.aws.kms.KMSOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.kms.KMSOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
index 251e560..1171ced 100644
--- a/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class LambdaComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private LambdaComponentConfiguration configuration;
 
+    public LambdaComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new LambdaComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureLambdaComponent() {
diff --git a/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConverter.java b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConverter.java
new file mode 100644
index 0000000..ad50f5b
--- /dev/null
+++ b/components-starter/camel-aws-lambda-starter/src/main/java/org/apache/camel/component/aws/lambda/springboot/LambdaComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.lambda.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class LambdaComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public LambdaComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.lambda.LambdaConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.lambda.LambdaOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.lambda.AWSLambda.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.lambda.LambdaConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.lambda.LambdaConfiguration.class);
+            case "org.apache.camel.component.aws.lambda.LambdaOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.lambda.LambdaOperations.class);
+            case "com.amazonaws.services.lambda.AWSLambda": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.lambda.AWSLambda.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java
index 2ca2cb4..b36b7cb 100644
--- a/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class MQComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private MQComponentConfiguration configuration;
 
+    public MQComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new MQComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureMQComponent() {
diff --git a/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConverter.java b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConverter.java
new file mode 100644
index 0000000..fd91bf7
--- /dev/null
+++ b/components-starter/camel-aws-mq-starter/src/main/java/org/apache/camel/component/aws/mq/springboot/MQComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.mq.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class MQComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public MQComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.mq.AmazonMQ.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.mq.MQConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.mq.MQOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.mq.AmazonMQ": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.mq.AmazonMQ.class);
+            case "org.apache.camel.component.aws.mq.MQConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.mq.MQConfiguration.class);
+            case "org.apache.camel.component.aws.mq.MQOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.mq.MQOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java
index b0c5230..273040d 100644
--- a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class MSKComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private MSKComponentConfiguration configuration;
 
+    public MSKComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new MSKComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureMSKComponent() {
diff --git a/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConverter.java b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConverter.java
new file mode 100644
index 0000000..0825337
--- /dev/null
+++ b/components-starter/camel-aws-msk-starter/src/main/java/org/apache/camel/component/aws/msk/springboot/MSKComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.msk.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class MSKComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public MSKComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.msk.MSKConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.kafka.AWSKafka.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.msk.MSKOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.msk.MSKConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.msk.MSKConfiguration.class);
+            case "com.amazonaws.services.kafka.AWSKafka": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.kafka.AWSKafka.class);
+            case "org.apache.camel.component.aws.msk.MSKOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.msk.MSKOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java
index 72faf06..0070a29 100644
--- a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class S3ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private S3ComponentConfiguration configuration;
 
+    public S3ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new S3ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureS3Component() {
diff --git a/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConverter.java b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConverter.java
new file mode 100644
index 0000000..286ccf5
--- /dev/null
+++ b/components-starter/camel-aws-s3-starter/src/main/java/org/apache/camel/component/aws/s3/springboot/S3ComponentConverter.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.s3.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class S3ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public S3ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.s3.AmazonS3.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.s3.S3Configuration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.s3.model.EncryptionMaterials.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.s3.S3Operations.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.s3.AmazonS3": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.s3.AmazonS3.class);
+            case "org.apache.camel.component.aws.s3.S3Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.s3.S3Configuration.class);
+            case "com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+            case "com.amazonaws.services.s3.model.EncryptionMaterials": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.s3.model.EncryptionMaterials.class);
+            case "org.apache.camel.component.aws.s3.S3Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.s3.S3Operations.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java b/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java
index fd3b8fa..61b2de6 100644
--- a/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-sdb-starter/src/main/java/org/apache/camel/component/aws/sdb/springboot/SdbComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class SdbComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private SdbComponentConfiguration configuration;
 
+    public SdbComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSdbComponent() {
diff --git a/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java
index e2786e5..26b3e43 100644
--- a/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class SesComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private SesComponentConfiguration configuration;
 
+    public SesComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new SesComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSesComponent() {
diff --git a/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConverter.java b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConverter.java
new file mode 100644
index 0000000..398deef
--- /dev/null
+++ b/components-starter/camel-aws-ses-starter/src/main/java/org/apache/camel/component/aws/ses/springboot/SesComponentConverter.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.ses.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class SesComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public SesComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleemail.AmazonSimpleEmailService.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.ses.SesConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.simpleemail.AmazonSimpleEmailService": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleemail.AmazonSimpleEmailService.class);
+            case "org.apache.camel.component.aws.ses.SesConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.ses.SesConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java
index 7847d57..a02ebf1 100644
--- a/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class SnsComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private SnsComponentConfiguration configuration;
 
+    public SnsComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new SnsComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSnsComponent() {
diff --git a/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConverter.java b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConverter.java
new file mode 100644
index 0000000..0d1ba42
--- /dev/null
+++ b/components-starter/camel-aws-sns-starter/src/main/java/org/apache/camel/component/aws/sns/springboot/SnsComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.sns.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class SnsComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public SnsComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.sns.AmazonSNS.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.sqs.AmazonSQS.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.sns.SnsConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.sns.AmazonSNS": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.sns.AmazonSNS.class);
+            case "com.amazonaws.services.sqs.AmazonSQS": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.sqs.AmazonSQS.class);
+            case "org.apache.camel.component.aws.sns.SnsConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.sns.SnsConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java
index d1349fd..8ac2546 100644
--- a/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class SqsComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private SqsComponentConfiguration configuration;
 
+    public SqsComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new SqsComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSqsComponent() {
diff --git a/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConverter.java b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConverter.java
new file mode 100644
index 0000000..abd5319
--- /dev/null
+++ b/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.sqs.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class SqsComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public SqsComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.sqs.AmazonSQS.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.sqs.SqsConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.sqs.SqsOperations.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.sqs.AmazonSQS": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.sqs.AmazonSQS.class);
+            case "org.apache.camel.component.aws.sqs.SqsConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.sqs.SqsConfiguration.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+            case "org.apache.camel.component.aws.sqs.SqsOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.sqs.SqsOperations.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java
index 5717c34..f06a71c 100644
--- a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class SWFComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private SWFComponentConfiguration configuration;
 
+    public SWFComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new SWFComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSWFComponent() {
diff --git a/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConverter.java b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConverter.java
new file mode 100644
index 0000000..bcc66e2
--- /dev/null
+++ b/components-starter/camel-aws-swf-starter/src/main/java/org/apache/camel/component/aws/swf/springboot/SWFComponentConverter.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.swf.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class SWFComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public SWFComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.swf.SWFConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleworkflow.flow.DataConverter.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflow.class);
+            case "org.apache.camel.component.aws.swf.SWFConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.swf.SWFConfiguration.class);
+            case "com.amazonaws.services.simpleworkflow.flow.DataConverter": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleworkflow.flow.DataConverter.class);
+            case "com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleworkflow.flow.ActivitySchedulingOptions.class);
+            case "com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions.class);
+            case "com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions.class);
+            case "com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java
index 3e3d654..820baff 100644
--- a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java
+++ b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class TranslateComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private TranslateComponentConfiguration configuration;
 
+    public TranslateComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new TranslateComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureTranslateComponent() {
diff --git a/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConverter.java b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConverter.java
new file mode 100644
index 0000000..ef8583d
--- /dev/null
+++ b/components-starter/camel-aws-translate-starter/src/main/java/org/apache/camel/component/aws/translate/springboot/TranslateComponentConverter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws.translate.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class TranslateComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public TranslateComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.translate.TranslateConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws.translate.TranslateOperations.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, com.amazonaws.services.translate.AmazonTranslate.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws.translate.TranslateConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.translate.TranslateConfiguration.class);
+            case "org.apache.camel.component.aws.translate.TranslateOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws.translate.TranslateOperations.class);
+            case "com.amazonaws.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.Protocol.class);
+            case "com.amazonaws.services.translate.AmazonTranslate": return camelContext.getRegistry().lookupByNameAndType(ref, com.amazonaws.services.translate.AmazonTranslate.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentAutoConfiguration.java b/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentAutoConfiguration.java
index 4e9bb8b..af8748b 100644
--- a/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Athena2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Athena2ComponentConfiguration configuration;
 
+    public Athena2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Athena2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAthena2Component() {
diff --git a/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConverter.java b/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConverter.java
new file mode 100644
index 0000000..e6d7d1f
--- /dev/null
+++ b/components-starter/camel-aws2-athena-starter/src/main/java/org/apache/camel/component/aws2/athena/springboot/Athena2ComponentConverter.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.athena.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Athena2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Athena2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.athena.AthenaClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.athena.Athena2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.athena.model.EncryptionOption.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.athena.Athena2Operations.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.athena.Athena2OutputType.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.athena.AthenaClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.athena.AthenaClient.class);
+            case "org.apache.camel.component.aws2.athena.Athena2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.athena.Athena2Configuration.class);
+            case "software.amazon.awssdk.services.athena.model.EncryptionOption": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.athena.model.EncryptionOption.class);
+            case "org.apache.camel.component.aws2.athena.Athena2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.athena.Athena2Operations.class);
+            case "org.apache.camel.component.aws2.athena.Athena2OutputType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.athena.Athena2OutputType.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java
index 57a6d03..81790fb 100644
--- a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Cw2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Cw2ComponentConfiguration configuration;
 
+    public Cw2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Cw2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCw2Component() {
diff --git a/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConverter.java b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConverter.java
new file mode 100644
index 0000000..1a41621
--- /dev/null
+++ b/components-starter/camel-aws2-cw-starter/src/main/java/org/apache/camel/component/aws2/cw/springboot/Cw2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.cw.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Cw2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Cw2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.cloudwatch.CloudWatchClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.cw.Cw2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, java.time.Instant.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.cloudwatch.CloudWatchClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.cloudwatch.CloudWatchClient.class);
+            case "org.apache.camel.component.aws2.cw.Cw2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.cw.Cw2Configuration.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "java.time.Instant": return camelContext.getRegistry().lookupByNameAndType(ref, java.time.Instant.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java
index 2fdb2bd..f5a7c1e 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Ddb2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Ddb2ComponentConfiguration configuration;
 
+    public Ddb2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Ddb2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureDdb2Component() {
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConverter.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConverter.java
new file mode 100644
index 0000000..4cb7b36
--- /dev/null
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddb/springboot/Ddb2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.ddb.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Ddb2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Ddb2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.dynamodb.DynamoDbClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ddb.Ddb2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ddb.Ddb2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.dynamodb.DynamoDbClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.dynamodb.DynamoDbClient.class);
+            case "org.apache.camel.component.aws2.ddb.Ddb2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ddb.Ddb2Configuration.class);
+            case "org.apache.camel.component.aws2.ddb.Ddb2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ddb.Ddb2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java
index d82aad6..2726008 100644
--- a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Ddb2StreamComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Ddb2StreamComponentConfiguration configuration;
 
+    public Ddb2StreamComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Ddb2StreamComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureDdb2StreamComponent() {
diff --git a/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConverter.java b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConverter.java
new file mode 100644
index 0000000..8875073
--- /dev/null
+++ b/components-starter/camel-aws2-ddb-starter/src/main/java/org/apache/camel/component/aws2/ddbstream/springboot/Ddb2StreamComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.ddbstream.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Ddb2StreamComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Ddb2StreamComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.dynamodb.model.ShardIteratorType.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.dynamodb.streams.DynamoDbStreamsClient.class);
+            case "org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ddbstream.Ddb2StreamConfiguration.class);
+            case "software.amazon.awssdk.services.dynamodb.model.ShardIteratorType": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.dynamodb.model.ShardIteratorType.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ddbstream.SequenceNumberProvider.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java
index fa5cbf8..0ded8d1 100644
--- a/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AWS2EC2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AWS2EC2ComponentConfiguration configuration;
 
+    public AWS2EC2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AWS2EC2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAWS2EC2Component() {
diff --git a/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConverter.java b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConverter.java
new file mode 100644
index 0000000..ffa9504
--- /dev/null
+++ b/components-starter/camel-aws2-ec2-starter/src/main/java/org/apache/camel/component/aws2/ec2/springboot/AWS2EC2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.ec2.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AWS2EC2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AWS2EC2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.ec2.Ec2Client.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ec2.AWS2EC2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ec2.AWS2EC2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.ec2.Ec2Client": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.ec2.Ec2Client.class);
+            case "org.apache.camel.component.aws2.ec2.AWS2EC2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ec2.AWS2EC2Configuration.class);
+            case "org.apache.camel.component.aws2.ec2.AWS2EC2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ec2.AWS2EC2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc b/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc
index 7812269..f24c071 100644
--- a/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc
+++ b/components-starter/camel-aws2-ecs-starter/src/main/docs/aws2-ecs-starter.adoc
@@ -17,7 +17,7 @@ When using aws2-ecs with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 15 options, which are listed below.
+The component supports 14 options, which are listed below.
 
 
 
@@ -25,7 +25,6 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-ecs.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-ecs.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws2-ecs.autowired-enabled* | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | Boolean
 | *camel.component.aws2-ecs.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.ecs.ECS2Configuration type. |  | ECS2Configuration
 | *camel.component.aws2-ecs.ecs-client* | To use a existing configured AWS ECS as client. The option is a software.amazon.awssdk.services.ecs.EcsClient type. |  | EcsClient
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java
index 0b6bec9..7e6d239 100644
--- a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ECS2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ECS2ComponentConfiguration configuration;
 
+    public ECS2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ECS2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureECS2Component() {
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java
index 95ae17f..4e45649 100644
--- a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConfiguration.java
@@ -42,12 +42,6 @@ public class ECS2ComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * Setting the autoDiscoverClient mechanism, if true, the component will
-     * look for a client instance in the registry automatically otherwise it
-     * will skip that checking.
-     */
-    private Boolean autoDiscoverClient = true;
-    /**
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.ecs.ECS2Configuration type.
      */
@@ -116,14 +110,6 @@ public class ECS2ComponentConfiguration
      */
     private String secretKey;
 
-    public Boolean getAutoDiscoverClient() {
-        return autoDiscoverClient;
-    }
-
-    public void setAutoDiscoverClient(Boolean autoDiscoverClient) {
-        this.autoDiscoverClient = autoDiscoverClient;
-    }
-
     public ECS2Configuration getConfiguration() {
         return configuration;
     }
diff --git a/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConverter.java b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConverter.java
new file mode 100644
index 0000000..559c81f
--- /dev/null
+++ b/components-starter/camel-aws2-ecs-starter/src/main/java/org/apache/camel/component/aws2/ecs/springboot/ECS2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.ecs.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ECS2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ECS2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ecs.ECS2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.ecs.EcsClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ecs.ECS2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.ecs.ECS2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ecs.ECS2Configuration.class);
+            case "software.amazon.awssdk.services.ecs.EcsClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.ecs.EcsClient.class);
+            case "org.apache.camel.component.aws2.ecs.ECS2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ecs.ECS2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc b/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc
index b42da4f..70e8be4 100644
--- a/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc
+++ b/components-starter/camel-aws2-eks-starter/src/main/docs/aws2-eks-starter.adoc
@@ -17,7 +17,7 @@ When using aws2-eks with Spring Boot make sure to use the following Maven depend
 ----
 
 
-The component supports 15 options, which are listed below.
+The component supports 14 options, which are listed below.
 
 
 
@@ -25,7 +25,6 @@ The component supports 15 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *camel.component.aws2-eks.access-key* | Amazon AWS Access Key |  | String
-| *camel.component.aws2-eks.auto-discover-client* | Setting the autoDiscoverClient mechanism, if true, the component will look for a client instance in the registry automatically otherwise it will skip that checking. | true | Boolean
 | *camel.component.aws2-eks.autowired-enabled* | Whether autowiring is enabled. This is used for automatic autowiring options (the option must be marked as autowired) by looking up in the registry to find if there is a single instance of matching type, which then gets configured on the component. This can be used for automatic configuring JDBC data sources, JMS connection factories, AWS Clients, etc. | true | Boolean
 | *camel.component.aws2-eks.configuration* | Component configuration. The option is a org.apache.camel.component.aws2.eks.EKS2Configuration type. |  | EKS2Configuration
 | *camel.component.aws2-eks.eks-client* | To use a existing configured AWS EKS as client. The option is a software.amazon.awssdk.services.eks.EksClient type. |  | EksClient
diff --git a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java
index 8e97a19..c70edd1 100644
--- a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class EKS2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private EKS2ComponentConfiguration configuration;
 
+    public EKS2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new EKS2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureEKS2Component() {
diff --git a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java
index fdb4310..07ffec7 100644
--- a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java
+++ b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConfiguration.java
@@ -42,12 +42,6 @@ public class EKS2ComponentConfiguration
      */
     private Boolean enabled;
     /**
-     * Setting the autoDiscoverClient mechanism, if true, the component will
-     * look for a client instance in the registry automatically otherwise it
-     * will skip that checking.
-     */
-    private Boolean autoDiscoverClient = true;
-    /**
      * Component configuration. The option is a
      * org.apache.camel.component.aws2.eks.EKS2Configuration type.
      */
@@ -116,14 +110,6 @@ public class EKS2ComponentConfiguration
      */
     private String secretKey;
 
-    public Boolean getAutoDiscoverClient() {
-        return autoDiscoverClient;
-    }
-
-    public void setAutoDiscoverClient(Boolean autoDiscoverClient) {
-        this.autoDiscoverClient = autoDiscoverClient;
-    }
-
     public EKS2Configuration getConfiguration() {
         return configuration;
     }
diff --git a/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConverter.java b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConverter.java
new file mode 100644
index 0000000..c523d64
--- /dev/null
+++ b/components-starter/camel-aws2-eks-starter/src/main/java/org/apache/camel/component/aws2/eks/springboot/EKS2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.eks.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class EKS2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public EKS2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.eks.EKS2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.eks.EksClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.eks.EKS2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.eks.EKS2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.eks.EKS2Configuration.class);
+            case "software.amazon.awssdk.services.eks.EksClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.eks.EksClient.class);
+            case "org.apache.camel.component.aws2.eks.EKS2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.eks.EKS2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentAutoConfiguration.java b/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentAutoConfiguration.java
index c5a4322..96cbd8f 100644
--- a/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class EventbridgeComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private EventbridgeComponentConfiguration configuration;
 
+    public EventbridgeComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new EventbridgeComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureEventbridgeComponent() {
diff --git a/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConverter.java b/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConverter.java
new file mode 100644
index 0000000..95fbf26
--- /dev/null
+++ b/components-starter/camel-aws2-eventbridge-starter/src/main/java/org/apache/camel/component/aws2/eventbridge/springboot/EventbridgeComponentConverter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.eventbridge.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class EventbridgeComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public EventbridgeComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.eventbridge.EventBridgeClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.eventbridge.EventbridgeOperations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.eventbridge.EventbridgeConfiguration.class);
+            case "software.amazon.awssdk.services.eventbridge.EventBridgeClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.eventbridge.EventBridgeClient.class);
+            case "org.apache.camel.component.aws2.eventbridge.EventbridgeOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.eventbridge.EventbridgeOperations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java
index 1b06a69..ea54f15 100644
--- a/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class IAM2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private IAM2ComponentConfiguration configuration;
 
+    public IAM2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new IAM2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureIAM2Component() {
diff --git a/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConverter.java b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConverter.java
new file mode 100644
index 0000000..7941d3a
--- /dev/null
+++ b/components-starter/camel-aws2-iam-starter/src/main/java/org/apache/camel/component/aws2/iam/springboot/IAM2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.iam.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class IAM2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public IAM2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.iam.IAM2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.iam.IamClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.iam.IAM2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.iam.IAM2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.iam.IAM2Configuration.class);
+            case "software.amazon.awssdk.services.iam.IamClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.iam.IamClient.class);
+            case "org.apache.camel.component.aws2.iam.IAM2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.iam.IAM2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java
index e62123e..a49964d 100644
--- a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class KinesisFirehose2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private KinesisFirehose2ComponentConfiguration configuration;
 
+    public KinesisFirehose2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new KinesisFirehose2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureKinesisFirehose2Component() {
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConverter.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConverter.java
new file mode 100644
index 0000000..8fc1482
--- /dev/null
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/firehose/springboot/KinesisFirehose2ComponentConverter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.firehose.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class KinesisFirehose2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public KinesisFirehose2ComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.firehose.FirehoseClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.firehose.KinesisFirehose2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.firehose.FirehoseClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.firehose.FirehoseClient.class);
+            case "org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.firehose.KinesisFirehose2Configuration.class);
+            case "org.apache.camel.component.aws2.firehose.KinesisFirehose2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.firehose.KinesisFirehose2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentAutoConfiguration.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentAutoConfiguration.java
index eb6d7e1..9291acd 100644
--- a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Kinesis2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Kinesis2ComponentConfiguration configuration;
 
+    public Kinesis2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Kinesis2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureKinesis2Component() {
diff --git a/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConverter.java b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConverter.java
new file mode 100644
index 0000000..efd9104
--- /dev/null
+++ b/components-starter/camel-aws2-kinesis-starter/src/main/java/org/apache/camel/component/aws2/kinesis/springboot/Kinesis2ComponentConverter.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.kinesis.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Kinesis2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Kinesis2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.kinesis.KinesisClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.kinesis.Kinesis2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.kinesis.model.ShardIteratorType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.kinesis.KinesisClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.kinesis.KinesisClient.class);
+            case "org.apache.camel.component.aws2.kinesis.Kinesis2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.kinesis.Kinesis2Configuration.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "software.amazon.awssdk.services.kinesis.model.ShardIteratorType": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.kinesis.model.ShardIteratorType.class);
+            case "org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.kinesis.Kinesis2ShardClosedStrategyEnum.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentAutoConfiguration.java b/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentAutoConfiguration.java
index 14ecee4..d77f7e0 100644
--- a/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class KMS2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private KMS2ComponentConfiguration configuration;
 
+    public KMS2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new KMS2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureKMS2Component() {
diff --git a/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConverter.java b/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConverter.java
new file mode 100644
index 0000000..2a48395
--- /dev/null
+++ b/components-starter/camel-aws2-kms-starter/src/main/java/org/apache/camel/component/aws2/kms/springboot/KMS2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.kms.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class KMS2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public KMS2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.kms.KMS2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.kms.KmsClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.kms.KMS2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.kms.KMS2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.kms.KMS2Configuration.class);
+            case "software.amazon.awssdk.services.kms.KmsClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.kms.KmsClient.class);
+            case "org.apache.camel.component.aws2.kms.KMS2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.kms.KMS2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentAutoConfiguration.java b/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentAutoConfiguration.java
index 1af8d08..d620617 100644
--- a/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Lambda2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Lambda2ComponentConfiguration configuration;
 
+    public Lambda2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Lambda2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureLambda2Component() {
diff --git a/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConverter.java b/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConverter.java
new file mode 100644
index 0000000..1e50c28
--- /dev/null
+++ b/components-starter/camel-aws2-lambda-starter/src/main/java/org/apache/camel/component/aws2/lambda/springboot/Lambda2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.lambda.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Lambda2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Lambda2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.lambda.Lambda2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.lambda.Lambda2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.lambda.LambdaClient.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.lambda.Lambda2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.lambda.Lambda2Configuration.class);
+            case "org.apache.camel.component.aws2.lambda.Lambda2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.lambda.Lambda2Operations.class);
+            case "software.amazon.awssdk.services.lambda.LambdaClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.lambda.LambdaClient.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentAutoConfiguration.java b/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentAutoConfiguration.java
index 4b1322a..de2df5f 100644
--- a/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class MQ2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private MQ2ComponentConfiguration configuration;
 
+    public MQ2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new MQ2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureMQ2Component() {
diff --git a/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConverter.java b/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConverter.java
new file mode 100644
index 0000000..9749f40
--- /dev/null
+++ b/components-starter/camel-aws2-mq-starter/src/main/java/org/apache/camel/component/aws2/mq/springboot/MQ2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.mq.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class MQ2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public MQ2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.mq.MqClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.mq.MQ2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.mq.MQ2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.mq.MqClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.mq.MqClient.class);
+            case "org.apache.camel.component.aws2.mq.MQ2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.mq.MQ2Configuration.class);
+            case "org.apache.camel.component.aws2.mq.MQ2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.mq.MQ2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentAutoConfiguration.java b/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentAutoConfiguration.java
index b6b8f7e..ad06452 100644
--- a/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class MSK2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private MSK2ComponentConfiguration configuration;
 
+    public MSK2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new MSK2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureMSK2Component() {
diff --git a/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConverter.java b/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConverter.java
new file mode 100644
index 0000000..9c82897
--- /dev/null
+++ b/components-starter/camel-aws2-msk-starter/src/main/java/org/apache/camel/component/aws2/msk/springboot/MSK2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.msk.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class MSK2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public MSK2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.msk.MSK2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.kafka.KafkaClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.msk.MSK2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.msk.MSK2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.msk.MSK2Configuration.class);
+            case "software.amazon.awssdk.services.kafka.KafkaClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.kafka.KafkaClient.class);
+            case "org.apache.camel.component.aws2.msk.MSK2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.msk.MSK2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentAutoConfiguration.java b/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentAutoConfiguration.java
index 719b5af..e32067c 100644
--- a/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class AWS2S3ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private AWS2S3ComponentConfiguration configuration;
 
+    public AWS2S3ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new AWS2S3ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureAWS2S3Component() {
diff --git a/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConverter.java b/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConverter.java
new file mode 100644
index 0000000..5219fc5
--- /dev/null
+++ b/components-starter/camel-aws2-s3-starter/src/main/java/org/apache/camel/component/aws2/s3/springboot/AWS2S3ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.s3.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class AWS2S3ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public AWS2S3ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.s3.S3Client.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.s3.AWS2S3Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.s3.AWS2S3Operations.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.s3.S3Client": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.s3.S3Client.class);
+            case "org.apache.camel.component.aws2.s3.AWS2S3Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.s3.AWS2S3Configuration.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "org.apache.camel.component.aws2.s3.AWS2S3Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.s3.AWS2S3Operations.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentAutoConfiguration.java b/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentAutoConfiguration.java
index 6ed0f1c..af60d1f 100644
--- a/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Ses2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Ses2ComponentConfiguration configuration;
 
+    public Ses2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Ses2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSes2Component() {
diff --git a/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConverter.java b/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConverter.java
new file mode 100644
index 0000000..0246737
--- /dev/null
+++ b/components-starter/camel-aws2-ses-starter/src/main/java/org/apache/camel/component/aws2/ses/springboot/Ses2ComponentConverter.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.ses.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Ses2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Ses2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.ses.SesClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.ses.Ses2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.ses.SesClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.ses.SesClient.class);
+            case "org.apache.camel.component.aws2.ses.Ses2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.ses.Ses2Configuration.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentAutoConfiguration.java b/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentAutoConfiguration.java
index 85ce9d4..821cd86 100644
--- a/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Sns2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Sns2ComponentConfiguration configuration;
 
+    public Sns2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Sns2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSns2Component() {
diff --git a/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConverter.java b/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConverter.java
new file mode 100644
index 0000000..24b6b05
--- /dev/null
+++ b/components-starter/camel-aws2-sns-starter/src/main/java/org/apache/camel/component/aws2/sns/springboot/Sns2ComponentConverter.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sns.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Sns2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Sns2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.sns.SnsClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.sns.Sns2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.sns.SnsClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.sns.SnsClient.class);
+            case "org.apache.camel.component.aws2.sns.Sns2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.sns.Sns2Configuration.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentAutoConfiguration.java b/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentAutoConfiguration.java
index e704aab..c580765 100644
--- a/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Sqs2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Sqs2ComponentConfiguration configuration;
 
+    public Sqs2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Sqs2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSqs2Component() {
diff --git a/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConverter.java b/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConverter.java
new file mode 100644
index 0000000..ea2a70f
--- /dev/null
+++ b/components-starter/camel-aws2-sqs-starter/src/main/java/org/apache/camel/component/aws2/sqs/springboot/Sqs2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sqs.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Sqs2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Sqs2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.sqs.SqsClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.sqs.Sqs2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.sqs.Sqs2Operations.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "software.amazon.awssdk.services.sqs.SqsClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.sqs.SqsClient.class);
+            case "org.apache.camel.component.aws2.sqs.Sqs2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.sqs.Sqs2Configuration.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "org.apache.camel.component.aws2.sqs.Sqs2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.sqs.Sqs2Operations.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentAutoConfiguration.java b/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentAutoConfiguration.java
index b7f526d..a50a31f 100644
--- a/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class STS2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private STS2ComponentConfiguration configuration;
 
+    public STS2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new STS2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureSTS2Component() {
diff --git a/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConverter.java b/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConverter.java
new file mode 100644
index 0000000..94d20b2
--- /dev/null
+++ b/components-starter/camel-aws2-sts-starter/src/main/java/org/apache/camel/component/aws2/sts/springboot/STS2ComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.sts.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class STS2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public STS2ComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.sts.STS2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.sts.STS2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.sts.StsClient.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.sts.STS2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.sts.STS2Configuration.class);
+            case "org.apache.camel.component.aws2.sts.STS2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.sts.STS2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "software.amazon.awssdk.services.sts.StsClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.sts.StsClient.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentAutoConfiguration.java b/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentAutoConfiguration.java
index 3608864..827c167 100644
--- a/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentAutoConfiguration.java
+++ b/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class Translate2ComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Translate2ComponentConfiguration configuration;
 
+    public Translate2ComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new Translate2ComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureTranslate2Component() {
diff --git a/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConverter.java b/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConverter.java
new file mode 100644
index 0000000..2c55bce
--- /dev/null
+++ b/components-starter/camel-aws2-translate-starter/src/main/java/org/apache/camel/component/aws2/translate/springboot/Translate2ComponentConverter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.aws2.translate.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class Translate2ComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public Translate2ComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.translate.Translate2Configuration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.aws2.translate.Translate2Operations.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.core.Protocol.class));
+        answer.add(new ConvertiblePair(String.class, software.amazon.awssdk.services.translate.TranslateClient.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.aws2.translate.Translate2Configuration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.translate.Translate2Configuration.class);
+            case "org.apache.camel.component.aws2.translate.Translate2Operations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.aws2.translate.Translate2Operations.class);
+            case "software.amazon.awssdk.core.Protocol": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.core.Protocol.class);
+            case "software.amazon.awssdk.services.translate.TranslateClient": return camelContext.getRegistry().lookupByNameAndType(ref, software.amazon.awssdk.services.translate.TranslateClient.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentAutoConfiguration.java b/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentAutoConfiguration.java
index 0caa25f..cb0fb92 100644
--- a/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentAutoConfiguration.java
+++ b/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class EventHubsComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private EventHubsComponentConfiguration configuration;
 
+    public EventHubsComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new EventHubsComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureEventHubsComponent() {
diff --git a/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConverter.java b/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConverter.java
new file mode 100644
index 0000000..a5ec597
--- /dev/null
+++ b/components-starter/camel-azure-eventhubs-starter/src/main/java/org/apache/camel/component/azure/eventhubs/springboot/EventHubsComponentConverter.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.eventhubs.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class EventHubsComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public EventHubsComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.azure.core.amqp.AmqpRetryOptions.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.core.amqp.AmqpTransportType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.eventhubs.EventHubsConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.storage.common.StorageSharedKeyCredential.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.messaging.eventhubs.CheckpointStore.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.messaging.eventhubs.EventHubProducerAsyncClient.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.azure.core.amqp.AmqpRetryOptions": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.core.amqp.AmqpRetryOptions.class);
+            case "com.azure.core.amqp.AmqpTransportType": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.core.amqp.AmqpTransportType.class);
+            case "org.apache.camel.component.azure.eventhubs.EventHubsConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.eventhubs.EventHubsConfiguration.class);
+            case "com.azure.storage.common.StorageSharedKeyCredential": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.storage.common.StorageSharedKeyCredential.class);
+            case "com.azure.messaging.eventhubs.CheckpointStore": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.messaging.eventhubs.CheckpointStore.class);
+            case "com.azure.messaging.eventhubs.EventHubProducerAsyncClient": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.messaging.eventhubs.EventHubProducerAsyncClient.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentAutoConfiguration.java b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentAutoConfiguration.java
index 5570802..7bd2dd6 100644
--- a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentAutoConfiguration.java
+++ b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BlobServiceComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BlobServiceComponentConfiguration configuration;
 
+    public BlobServiceComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BlobServiceComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBlobServiceComponent() {
diff --git a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConverter.java b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConverter.java
new file mode 100644
index 0000000..ecb0cc4
--- /dev/null
+++ b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/blob/springboot/BlobServiceComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.blob.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BlobServiceComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BlobServiceComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.microsoft.azure.storage.blob.CloudBlob.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.blob.BlobType.class));
+        answer.add(new ConvertiblePair(String.class, com.microsoft.azure.storage.StorageCredentials.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.blob.BlobServiceOperations.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.blob.BlobServiceConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.microsoft.azure.storage.blob.CloudBlob": return camelContext.getRegistry().lookupByNameAndType(ref, com.microsoft.azure.storage.blob.CloudBlob.class);
+            case "org.apache.camel.component.azure.blob.BlobType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.blob.BlobType.class);
+            case "com.microsoft.azure.storage.StorageCredentials": return camelContext.getRegistry().lookupByNameAndType(ref, com.microsoft.azure.storage.StorageCredentials.class);
+            case "org.apache.camel.component.azure.blob.BlobServiceOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.blob.BlobServiceOperations.class);
+            case "org.apache.camel.component.azure.blob.BlobServiceConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.blob.BlobServiceConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentAutoConfiguration.java b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentAutoConfiguration.java
index 95fcda0..b4948fb 100644
--- a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentAutoConfiguration.java
+++ b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class QueueServiceComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private QueueServiceComponentConfiguration configuration;
 
+    public QueueServiceComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new QueueServiceComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureQueueServiceComponent() {
diff --git a/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConverter.java b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConverter.java
new file mode 100644
index 0000000..eb84b53
--- /dev/null
+++ b/components-starter/camel-azure-starter/src/main/java/org/apache/camel/component/azure/queue/springboot/QueueServiceComponentConverter.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.queue.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class QueueServiceComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public QueueServiceComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.microsoft.azure.storage.queue.CloudQueue.class));
+        answer.add(new ConvertiblePair(String.class, com.microsoft.azure.storage.StorageCredentials.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.queue.QueueServiceOperations.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.queue.QueueServiceConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.microsoft.azure.storage.queue.CloudQueue": return camelContext.getRegistry().lookupByNameAndType(ref, com.microsoft.azure.storage.queue.CloudQueue.class);
+            case "com.microsoft.azure.storage.StorageCredentials": return camelContext.getRegistry().lookupByNameAndType(ref, com.microsoft.azure.storage.StorageCredentials.class);
+            case "org.apache.camel.component.azure.queue.QueueServiceOperations": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.queue.QueueServiceOperations.class);
+            case "org.apache.camel.component.azure.queue.QueueServiceConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.queue.QueueServiceConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentAutoConfiguration.java b/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentAutoConfiguration.java
index 9f6b2a6..582fed9 100644
--- a/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentAutoConfiguration.java
+++ b/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BlobComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BlobComponentConfiguration configuration;
 
+    public BlobComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BlobComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBlobComponent() {
diff --git a/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConverter.java b/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConverter.java
new file mode 100644
index 0000000..dea8678
--- /dev/null
+++ b/components-starter/camel-azure-storage-blob-starter/src/main/java/org/apache/camel/component/azure/storage/blob/springboot/BlobComponentConverter.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.storage.blob.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BlobComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BlobComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.storage.blob.BlobType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.storage.blob.BlobConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.storage.common.StorageSharedKeyCredential.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.storage.blob.BlobServiceClient.class));
+        answer.add(new ConvertiblePair(String.class, java.time.Duration.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.storage.blob.models.BlockListType.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.azure.storage.blob.BlobType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.storage.blob.BlobType.class);
+            case "org.apache.camel.component.azure.storage.blob.BlobConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.storage.blob.BlobConfiguration.class);
+            case "com.azure.storage.common.StorageSharedKeyCredential": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.storage.common.StorageSharedKeyCredential.class);
+            case "com.azure.storage.blob.BlobServiceClient": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.storage.blob.BlobServiceClient.class);
+            case "java.time.Duration": return camelContext.getRegistry().lookupByNameAndType(ref, java.time.Duration.class);
+            case "com.azure.storage.blob.models.BlockListType": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.storage.blob.models.BlockListType.class);
+            case "org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.storage.blob.BlobOperationsDefinition.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentAutoConfiguration.java b/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentAutoConfiguration.java
index 06f87e7..32070f1 100644
--- a/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentAutoConfiguration.java
+++ b/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class QueueComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private QueueComponentConfiguration configuration;
 
+    public QueueComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new QueueComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureQueueComponent() {
diff --git a/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConverter.java b/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConverter.java
new file mode 100644
index 0000000..17ced3b
--- /dev/null
+++ b/components-starter/camel-azure-storage-queue-starter/src/main/java/org/apache/camel/component/azure/storage/queue/springboot/QueueComponentConverter.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.azure.storage.queue.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class QueueComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public QueueComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.storage.queue.QueueConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.storage.queue.QueueServiceClient.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.azure.storage.queue.QueueOperationDefinition.class));
+        answer.add(new ConvertiblePair(String.class, java.time.Duration.class));
+        answer.add(new ConvertiblePair(String.class, com.azure.storage.common.StorageSharedKeyCredential.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.azure.storage.queue.QueueConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.storage.queue.QueueConfiguration.class);
+            case "com.azure.storage.queue.QueueServiceClient": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.storage.queue.QueueServiceClient.class);
+            case "org.apache.camel.component.azure.storage.queue.QueueOperationDefinition": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.azure.storage.queue.QueueOperationDefinition.class);
+            case "java.time.Duration": return camelContext.getRegistry().lookupByNameAndType(ref, java.time.Duration.class);
+            case "com.azure.storage.common.StorageSharedKeyCredential": return camelContext.getRegistry().lookupByNameAndType(ref, com.azure.storage.common.StorageSharedKeyCredential.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-barcode-starter/src/main/java/org/apache/camel/dataformat/barcode/springboot/BarcodeDataFormatAutoConfiguration.java b/components-starter/camel-barcode-starter/src/main/java/org/apache/camel/dataformat/barcode/springboot/BarcodeDataFormatAutoConfiguration.java
index 4d69564..5e2930c 100644
--- a/components-starter/camel-barcode-starter/src/main/java/org/apache/camel/dataformat/barcode/springboot/BarcodeDataFormatAutoConfiguration.java
+++ b/components-starter/camel-barcode-starter/src/main/java/org/apache/camel/dataformat/barcode/springboot/BarcodeDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BarcodeDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BarcodeDataFormatConfiguration configuration;
 
+    public BarcodeDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureBarcodeDataFormatFactory() {
diff --git a/components-starter/camel-base64-starter/src/main/java/org/apache/camel/dataformat/base64/springboot/Base64DataFormatAutoConfiguration.java b/components-starter/camel-base64-starter/src/main/java/org/apache/camel/dataformat/base64/springboot/Base64DataFormatAutoConfiguration.java
index 77c38c7..26124fd 100644
--- a/components-starter/camel-base64-starter/src/main/java/org/apache/camel/dataformat/base64/springboot/Base64DataFormatAutoConfiguration.java
+++ b/components-starter/camel-base64-starter/src/main/java/org/apache/camel/dataformat/base64/springboot/Base64DataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class Base64DataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private Base64DataFormatConfiguration configuration;
 
+    public Base64DataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureBase64DataFormatFactory() {
diff --git a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentAutoConfiguration.java b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentAutoConfiguration.java
index df7c333..7a1f4b5 100644
--- a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentAutoConfiguration.java
+++ b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BeanComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BeanComponentConfiguration configuration;
 
+    public BeanComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BeanComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBeanComponent() {
diff --git a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConverter.java b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConverter.java
new file mode 100644
index 0000000..25565e7
--- /dev/null
+++ b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/bean/springboot/BeanComponentConverter.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.bean.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BeanComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BeanComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.BeanScope.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.BeanScope": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.BeanScope.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentAutoConfiguration.java b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentAutoConfiguration.java
index 1047e39..3dbc539 100644
--- a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentAutoConfiguration.java
+++ b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ClassComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ClassComponentConfiguration configuration;
 
+    public ClassComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ClassComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureClassComponent() {
diff --git a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConverter.java b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConverter.java
new file mode 100644
index 0000000..b0adeb1
--- /dev/null
+++ b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/component/beanclass/springboot/ClassComponentConverter.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.beanclass.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ClassComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ClassComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.BeanScope.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.BeanScope": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.BeanScope.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/language/bean/springboot/BeanLanguageAutoConfiguration.java b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/language/bean/springboot/BeanLanguageAutoConfiguration.java
index 5edbf21..88da996 100644
--- a/components-starter/camel-bean-starter/src/main/java/org/apache/camel/language/bean/springboot/BeanLanguageAutoConfiguration.java
+++ b/components-starter/camel-bean-starter/src/main/java/org/apache/camel/language/bean/springboot/BeanLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BeanLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BeanLanguageConfiguration configuration;
 
+    public BeanLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureBeanLanguage() {
diff --git a/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentAutoConfiguration.java b/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentAutoConfiguration.java
index a38f219..2779ae6 100644
--- a/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentAutoConfiguration.java
+++ b/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BeanValidatorComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BeanValidatorComponentConfiguration configuration;
 
+    public BeanValidatorComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BeanValidatorComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBeanValidatorComponent() {
diff --git a/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConverter.java b/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConverter.java
new file mode 100644
index 0000000..b5fb9f7
--- /dev/null
+++ b/components-starter/camel-bean-validator-starter/src/main/java/org/apache/camel/component/bean/validator/springboot/BeanValidatorComponentConverter.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.bean.validator.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BeanValidatorComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BeanValidatorComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, javax.validation.ConstraintValidatorFactory.class));
+        answer.add(new ConvertiblePair(String.class, javax.validation.MessageInterpolator.class));
+        answer.add(new ConvertiblePair(String.class, javax.validation.TraversableResolver.class));
+        answer.add(new ConvertiblePair(String.class, javax.validation.ValidationProviderResolver.class));
+        answer.add(new ConvertiblePair(String.class, javax.validation.ValidatorFactory.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "javax.validation.ConstraintValidatorFactory": return camelContext.getRegistry().lookupByNameAndType(ref, javax.validation.ConstraintValidatorFactory.class);
+            case "javax.validation.MessageInterpolator": return camelContext.getRegistry().lookupByNameAndType(ref, javax.validation.MessageInterpolator.class);
+            case "javax.validation.TraversableResolver": return camelContext.getRegistry().lookupByNameAndType(ref, javax.validation.TraversableResolver.class);
+            case "javax.validation.ValidationProviderResolver": return camelContext.getRegistry().lookupByNameAndType(ref, javax.validation.ValidationProviderResolver.class);
+            case "javax.validation.ValidatorFactory": return camelContext.getRegistry().lookupByNameAndType(ref, javax.validation.ValidatorFactory.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-beanio-starter/src/main/java/org/apache/camel/dataformat/beanio/springboot/BeanIODataFormatAutoConfiguration.java b/components-starter/camel-beanio-starter/src/main/java/org/apache/camel/dataformat/beanio/springboot/BeanIODataFormatAutoConfiguration.java
index c81e714..d28f73b 100644
--- a/components-starter/camel-beanio-starter/src/main/java/org/apache/camel/dataformat/beanio/springboot/BeanIODataFormatAutoConfiguration.java
+++ b/components-starter/camel-beanio-starter/src/main/java/org/apache/camel/dataformat/beanio/springboot/BeanIODataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BeanIODataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BeanIODataFormatConfiguration configuration;
 
+    public BeanIODataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureBeanIODataFormatFactory() {
diff --git a/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java b/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java
index 166c271..fc68def 100644
--- a/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java
+++ b/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BeanstalkComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BeanstalkComponentConfiguration configuration;
 
+    public BeanstalkComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BeanstalkComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBeanstalkComponent() {
diff --git a/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConverter.java b/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConverter.java
new file mode 100644
index 0000000..e8ab21b
--- /dev/null
+++ b/components-starter/camel-beanstalk-starter/src/main/java/org/apache/camel/component/beanstalk/springboot/BeanstalkComponentConverter.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.beanstalk.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BeanstalkComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BeanstalkComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.beanstalk.ConnectionSettingsFactory.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.beanstalk.ConnectionSettingsFactory": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.beanstalk.ConnectionSettingsFactory.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatAutoConfiguration.java b/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatAutoConfiguration.java
index 3164e95..df9abac 100644
--- a/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatAutoConfiguration.java
+++ b/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/csv/springboot/BindyCsvDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BindyCsvDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BindyCsvDataFormatConfiguration configuration;
 
+    public BindyCsvDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureBindyCsvDataFormatFactory() {
diff --git a/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatAutoConfiguration.java b/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatAutoConfiguration.java
index aa81cf8..7223cd9 100644
--- a/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatAutoConfiguration.java
+++ b/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/fixed/springboot/BindyFixedLengthDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BindyFixedLengthDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BindyFixedLengthDataFormatConfiguration configuration;
 
+    public BindyFixedLengthDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureBindyFixedLengthDataFormatFactory() {
diff --git a/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatAutoConfiguration.java b/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatAutoConfiguration.java
index 600fb33..3ea122d 100644
--- a/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatAutoConfiguration.java
+++ b/components-starter/camel-bindy-starter/src/main/java/org/apache/camel/dataformat/bindy/kvp/springboot/BindyKeyValuePairDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BindyKeyValuePairDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BindyKeyValuePairDataFormatConfiguration configuration;
 
+    public BindyKeyValuePairDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureBindyKeyValuePairDataFormatFactory() {
diff --git a/components-starter/camel-bonita-starter/src/main/java/org/apache/camel/component/bonita/springboot/BonitaComponentAutoConfiguration.java b/components-starter/camel-bonita-starter/src/main/java/org/apache/camel/component/bonita/springboot/BonitaComponentAutoConfiguration.java
index 505f094..19387b4 100644
--- a/components-starter/camel-bonita-starter/src/main/java/org/apache/camel/component/bonita/springboot/BonitaComponentAutoConfiguration.java
+++ b/components-starter/camel-bonita-starter/src/main/java/org/apache/camel/component/bonita/springboot/BonitaComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BonitaComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BonitaComponentConfiguration configuration;
 
+    public BonitaComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBonitaComponent() {
diff --git a/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java b/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java
index c0e86db..0f5683a 100644
--- a/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java
+++ b/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BoxComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BoxComponentConfiguration configuration;
 
+    public BoxComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BoxComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBoxComponent() {
diff --git a/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConverter.java b/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConverter.java
new file mode 100644
index 0000000..6045989
--- /dev/null
+++ b/components-starter/camel-box-starter/src/main/java/org/apache/camel/component/box/springboot/BoxComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.box.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BoxComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BoxComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.box.BoxConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.box.sdk.IAccessTokenCache.class));
+        answer.add(new ConvertiblePair(String.class, com.box.sdk.EncryptionAlgorithm.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.support.jsse.SSLContextParameters.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.box.BoxConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.box.BoxConfiguration.class);
+            case "com.box.sdk.IAccessTokenCache": return camelContext.getRegistry().lookupByNameAndType(ref, com.box.sdk.IAccessTokenCache.class);
+            case "com.box.sdk.EncryptionAlgorithm": return camelContext.getRegistry().lookupByNameAndType(ref, com.box.sdk.EncryptionAlgorithm.class);
+            case "org.apache.camel.support.jsse.SSLContextParameters": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.support.jsse.SSLContextParameters.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java b/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java
index 5b70cdb..9ae8b64 100644
--- a/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java
+++ b/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class BraintreeComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BraintreeComponentConfiguration configuration;
 
+    public BraintreeComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new BraintreeComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBraintreeComponent() {
diff --git a/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConverter.java b/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConverter.java
new file mode 100644
index 0000000..f0d2c97
--- /dev/null
+++ b/components-starter/camel-braintree-starter/src/main/java/org/apache/camel/component/braintree/springboot/BraintreeComponentConverter.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.braintree.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class BraintreeComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public BraintreeComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.braintree.BraintreeConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.braintree.BraintreeConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.braintree.BraintreeConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-browse-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentAutoConfiguration.java b/components-starter/camel-browse-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentAutoConfiguration.java
index ef66348c..6971408 100644
--- a/components-starter/camel-browse-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentAutoConfiguration.java
+++ b/components-starter/camel-browse-starter/src/main/java/org/apache/camel/component/browse/springboot/BrowseComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class BrowseComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private BrowseComponentConfiguration configuration;
 
+    public BrowseComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureBrowseComponent() {
diff --git a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentAutoConfiguration.java b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentAutoConfiguration.java
index 90960df..7a125e7 100644
--- a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentAutoConfiguration.java
+++ b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CaffeineCacheComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CaffeineCacheComponentConfiguration configuration;
 
+    public CaffeineCacheComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CaffeineCacheComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCaffeineCacheComponent() {
diff --git a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConverter.java b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConverter.java
new file mode 100644
index 0000000..05fba89
--- /dev/null
+++ b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/cache/springboot/CaffeineCacheComponentConverter.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.caffeine.cache.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CaffeineCacheComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CaffeineCacheComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.github.benmanes.caffeine.cache.CacheLoader.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.caffeine.EvictionType.class));
+        answer.add(new ConvertiblePair(String.class, java.lang.Object.class));
+        answer.add(new ConvertiblePair(String.class, com.github.benmanes.caffeine.cache.RemovalListener.class));
+        answer.add(new ConvertiblePair(String.class, com.github.benmanes.caffeine.cache.stats.StatsCounter.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.caffeine.CaffeineConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.github.benmanes.caffeine.cache.CacheLoader": return camelContext.getRegistry().lookupByNameAndType(ref, com.github.benmanes.caffeine.cache.CacheLoader.class);
+            case "org.apache.camel.component.caffeine.EvictionType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.caffeine.EvictionType.class);
+            case "java.lang.Object": return camelContext.getRegistry().lookupByNameAndType(ref, java.lang.Object.class);
+            case "com.github.benmanes.caffeine.cache.RemovalListener": return camelContext.getRegistry().lookupByNameAndType(ref, com.github.benmanes.caffeine.cache.RemovalListener.class);
+            case "com.github.benmanes.caffeine.cache.stats.StatsCounter": return camelContext.getRegistry().lookupByNameAndType(ref, com.github.benmanes.caffeine.cache.stats.StatsCounter.class);
+            case "org.apache.camel.component.caffeine.CaffeineConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.caffeine.CaffeineConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentAutoConfiguration.java b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentAutoConfiguration.java
index bfa3c5f..091a70f 100644
--- a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentAutoConfiguration.java
+++ b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CaffeineLoadCacheComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CaffeineLoadCacheComponentConfiguration configuration;
 
+    public CaffeineLoadCacheComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CaffeineLoadCacheComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCaffeineLoadCacheComponent() {
diff --git a/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConverter.java b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConverter.java
new file mode 100644
index 0000000..324294f
--- /dev/null
+++ b/components-starter/camel-caffeine-starter/src/main/java/org/apache/camel/component/caffeine/load/springboot/CaffeineLoadCacheComponentConverter.java
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.caffeine.load.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CaffeineLoadCacheComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CaffeineLoadCacheComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, com.github.benmanes.caffeine.cache.CacheLoader.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.caffeine.EvictionType.class));
+        answer.add(new ConvertiblePair(String.class, java.lang.Object.class));
+        answer.add(new ConvertiblePair(String.class, com.github.benmanes.caffeine.cache.RemovalListener.class));
+        answer.add(new ConvertiblePair(String.class, com.github.benmanes.caffeine.cache.stats.StatsCounter.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.caffeine.CaffeineConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "com.github.benmanes.caffeine.cache.CacheLoader": return camelContext.getRegistry().lookupByNameAndType(ref, com.github.benmanes.caffeine.cache.CacheLoader.class);
+            case "org.apache.camel.component.caffeine.EvictionType": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.caffeine.EvictionType.class);
+            case "java.lang.Object": return camelContext.getRegistry().lookupByNameAndType(ref, java.lang.Object.class);
+            case "com.github.benmanes.caffeine.cache.RemovalListener": return camelContext.getRegistry().lookupByNameAndType(ref, com.github.benmanes.caffeine.cache.RemovalListener.class);
+            case "com.github.benmanes.caffeine.cache.stats.StatsCounter": return camelContext.getRegistry().lookupByNameAndType(ref, com.github.benmanes.caffeine.cache.stats.StatsCounter.class);
+            case "org.apache.camel.component.caffeine.CaffeineConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.caffeine.CaffeineConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-cassandraql-starter/src/main/java/org/apache/camel/component/cassandra/springboot/CassandraComponentAutoConfiguration.java b/components-starter/camel-cassandraql-starter/src/main/java/org/apache/camel/component/cassandra/springboot/CassandraComponentAutoConfiguration.java
index d105c3b..2d8f6c2 100644
--- a/components-starter/camel-cassandraql-starter/src/main/java/org/apache/camel/component/cassandra/springboot/CassandraComponentAutoConfiguration.java
+++ b/components-starter/camel-cassandraql-starter/src/main/java/org/apache/camel/component/cassandra/springboot/CassandraComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CassandraComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CassandraComponentConfiguration configuration;
 
+    public CassandraComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCassandraComponent() {
diff --git a/components-starter/camel-cbor-starter/src/main/java/org/apache/camel/component/cbor/springboot/CBORDataFormatAutoConfiguration.java b/components-starter/camel-cbor-starter/src/main/java/org/apache/camel/component/cbor/springboot/CBORDataFormatAutoConfiguration.java
index 1a4b94e..ebacee3 100644
--- a/components-starter/camel-cbor-starter/src/main/java/org/apache/camel/component/cbor/springboot/CBORDataFormatAutoConfiguration.java
+++ b/components-starter/camel-cbor-starter/src/main/java/org/apache/camel/component/cbor/springboot/CBORDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CBORDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CBORDataFormatConfiguration configuration;
 
+    public CBORDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureCBORDataFormatFactory() {
diff --git a/components-starter/camel-chatscript-starter/src/main/java/org/apache/camel/component/chatscript/springboot/ChatScriptComponentAutoConfiguration.java b/components-starter/camel-chatscript-starter/src/main/java/org/apache/camel/component/chatscript/springboot/ChatScriptComponentAutoConfiguration.java
index 114e926..cbbc482 100644
--- a/components-starter/camel-chatscript-starter/src/main/java/org/apache/camel/component/chatscript/springboot/ChatScriptComponentAutoConfiguration.java
+++ b/components-starter/camel-chatscript-starter/src/main/java/org/apache/camel/component/chatscript/springboot/ChatScriptComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class ChatScriptComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ChatScriptComponentConfiguration configuration;
 
+    public ChatScriptComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureChatScriptComponent() {
diff --git a/components-starter/camel-chunk-starter/src/main/java/org/apache/camel/component/chunk/springboot/ChunkComponentAutoConfiguration.java b/components-starter/camel-chunk-starter/src/main/java/org/apache/camel/component/chunk/springboot/ChunkComponentAutoConfiguration.java
index c4a6c2c..935f9c6 100644
--- a/components-starter/camel-chunk-starter/src/main/java/org/apache/camel/component/chunk/springboot/ChunkComponentAutoConfiguration.java
+++ b/components-starter/camel-chunk-starter/src/main/java/org/apache/camel/component/chunk/springboot/ChunkComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class ChunkComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ChunkComponentConfiguration configuration;
 
+    public ChunkComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureChunkComponent() {
diff --git a/components-starter/camel-cm-sms-starter/src/main/java/org/apache/camel/component/cm/springboot/CMComponentAutoConfiguration.java b/components-starter/camel-cm-sms-starter/src/main/java/org/apache/camel/component/cm/springboot/CMComponentAutoConfiguration.java
index 29a42d7..1ce7809 100644
--- a/components-starter/camel-cm-sms-starter/src/main/java/org/apache/camel/component/cm/springboot/CMComponentAutoConfiguration.java
+++ b/components-starter/camel-cm-sms-starter/src/main/java/org/apache/camel/component/cm/springboot/CMComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CMComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CMComponentConfiguration configuration;
 
+    public CMComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCMComponent() {
diff --git a/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentAutoConfiguration.java b/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentAutoConfiguration.java
index 6c75097..df12db8 100644
--- a/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentAutoConfiguration.java
+++ b/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CMISComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CMISComponentConfiguration configuration;
 
+    public CMISComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CMISComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCMISComponent() {
diff --git a/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConverter.java b/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConverter.java
new file mode 100644
index 0000000..9e7c72c
--- /dev/null
+++ b/components-starter/camel-cmis-starter/src/main/java/org/apache/camel/component/cmis/springboot/CMISComponentConverter.java
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cmis.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CMISComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CMISComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.cmis.CMISSessionFacadeFactory.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.cmis.CMISSessionFacadeFactory": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.cmis.CMISSessionFacadeFactory.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-coap-starter/src/main/java/org/apache/camel/coap/springboot/CoAPComponentAutoConfiguration.java b/components-starter/camel-coap-starter/src/main/java/org/apache/camel/coap/springboot/CoAPComponentAutoConfiguration.java
index 6787f1b..55b24b7 100644
--- a/components-starter/camel-coap-starter/src/main/java/org/apache/camel/coap/springboot/CoAPComponentAutoConfiguration.java
+++ b/components-starter/camel-coap-starter/src/main/java/org/apache/camel/coap/springboot/CoAPComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CoAPComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CoAPComponentConfiguration configuration;
 
+    public CoAPComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCoAPComponent() {
diff --git a/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java b/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java
index e770201..34e6384 100644
--- a/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java
+++ b/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CometdComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CometdComponentConfiguration configuration;
 
+    public CometdComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CometdComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCometdComponent() {
diff --git a/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConverter.java b/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConverter.java
new file mode 100644
index 0000000..0876366
--- /dev/null
+++ b/components-starter/camel-cometd-starter/src/main/java/org/apache/camel/component/cometd/springboot/CometdComponentConverter.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.cometd.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CometdComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CometdComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.cometd.bayeux.server.SecurityPolicy.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.support.jsse.SSLContextParameters.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.cometd.bayeux.server.SecurityPolicy": return camelContext.getRegistry().lookupByNameAndType(ref, org.cometd.bayeux.server.SecurityPolicy.class);
+            case "org.apache.camel.support.jsse.SSLContextParameters": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.support.jsse.SSLContextParameters.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentAutoConfiguration.java b/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentAutoConfiguration.java
index f4a89ae..2548afb 100644
--- a/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentAutoConfiguration.java
+++ b/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class ConsulComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ConsulComponentConfiguration configuration;
 
+    public ConsulComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new ConsulComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureConsulComponent() {
diff --git a/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConverter.java b/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConverter.java
new file mode 100644
index 0000000..7fac4de
--- /dev/null
+++ b/components-starter/camel-consul-starter/src/main/java/org/apache/camel/component/consul/springboot/ConsulComponentConverter.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.consul.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class ConsulComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public ConsulComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, java.time.Duration.class));
+        answer.add(new ConvertiblePair(String.class, com.orbitz.consul.Consul.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.consul.ConsulConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, com.orbitz.consul.option.ConsistencyMode.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.support.jsse.SSLContextParameters.class));
+        answer.add(new ConvertiblePair(String.class, java.math.BigInteger.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "java.time.Duration": return camelContext.getRegistry().lookupByNameAndType(ref, java.time.Duration.class);
+            case "com.orbitz.consul.Consul": return camelContext.getRegistry().lookupByNameAndType(ref, com.orbitz.consul.Consul.class);
+            case "org.apache.camel.component.consul.ConsulConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.consul.ConsulConfiguration.class);
+            case "com.orbitz.consul.option.ConsistencyMode": return camelContext.getRegistry().lookupByNameAndType(ref, com.orbitz.consul.option.ConsistencyMode.class);
+            case "org.apache.camel.support.jsse.SSLContextParameters": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.support.jsse.SSLContextParameters.class);
+            case "java.math.BigInteger": return camelContext.getRegistry().lookupByNameAndType(ref, java.math.BigInteger.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-controlbus-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentAutoConfiguration.java b/components-starter/camel-controlbus-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentAutoConfiguration.java
index 28866aa..4261684 100644
--- a/components-starter/camel-controlbus-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentAutoConfiguration.java
+++ b/components-starter/camel-controlbus-starter/src/main/java/org/apache/camel/component/controlbus/springboot/ControlBusComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class ControlBusComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ControlBusComponentConfiguration configuration;
 
+    public ControlBusComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureControlBusComponent() {
diff --git a/components-starter/camel-corda-starter/pom.xml b/components-starter/camel-corda-starter/pom.xml
index 252daab..5ad677a 100644
--- a/components-starter/camel-corda-starter/pom.xml
+++ b/components-starter/camel-corda-starter/pom.xml
@@ -41,14 +41,6 @@
       <!--START OF GENERATED CODE-->
       <exclusions>
         <exclusion>
-          <groupId>ch.qos.logback</groupId>
-          <artifactId>logback-classic</artifactId>
-        </exclusion>
-        <exclusion>
-          <groupId>ch.qos.logback</groupId>
-          <artifactId>logback-core</artifactId>
-        </exclusion>
-        <exclusion>
           <groupId>org.apache.logging.log4j</groupId>
           <artifactId>log4j-core</artifactId>
         </exclusion>
diff --git a/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentAutoConfiguration.java b/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentAutoConfiguration.java
index 2fe16e8..66558b6 100644
--- a/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentAutoConfiguration.java
+++ b/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CordaComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CordaComponentConfiguration configuration;
 
+    public CordaComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CordaComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCordaComponent() {
diff --git a/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConverter.java b/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConverter.java
new file mode 100644
index 0000000..20746b4
--- /dev/null
+++ b/components-starter/camel-corda-starter/src/main/java/org/apache/camel/component/corda/springboot/CordaComponentConverter.java
@@ -0,0 +1,69 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.corda.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CordaComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CordaComponentConverter(org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.corda.CordaConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, net.corda.core.node.services.vault.PageSpecification.class));
+        answer.add(new ConvertiblePair(String.class, net.corda.core.node.services.vault.Sort.class));
+        answer.add(new ConvertiblePair(String.class, net.corda.core.node.services.vault.QueryCriteria.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.corda.CordaConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.corda.CordaConfiguration.class);
+            case "net.corda.core.node.services.vault.PageSpecification": return camelContext.getRegistry().lookupByNameAndType(ref, net.corda.core.node.services.vault.PageSpecification.class);
+            case "net.corda.core.node.services.vault.Sort": return camelContext.getRegistry().lookupByNameAndType(ref, net.corda.core.node.services.vault.Sort.class);
+            case "net.corda.core.node.services.vault.QueryCriteria": return camelContext.getRegistry().lookupByNameAndType(ref, net.corda.core.node.services.vault.QueryCriteria.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/constant/springboot/ConstantLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/constant/springboot/ConstantLanguageAutoConfiguration.java
index c2bd171..e75d41d 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/constant/springboot/ConstantLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/constant/springboot/ConstantLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class ConstantLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ConstantLanguageConfiguration configuration;
 
+    public ConstantLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureConstantLanguage() {
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/header/springboot/HeaderLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/header/springboot/HeaderLanguageAutoConfiguration.java
index e060d69..c706e67 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/header/springboot/HeaderLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/header/springboot/HeaderLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class HeaderLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private HeaderLanguageConfiguration configuration;
 
+    public HeaderLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureHeaderLanguage() {
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/property/springboot/ExchangePropertyLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/property/springboot/ExchangePropertyLanguageAutoConfiguration.java
index 1c29a38..9a68d12 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/property/springboot/ExchangePropertyLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/property/springboot/ExchangePropertyLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class ExchangePropertyLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private ExchangePropertyLanguageConfiguration configuration;
 
+    public ExchangePropertyLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureExchangePropertyLanguage() {
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/ref/springboot/RefLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/ref/springboot/RefLanguageAutoConfiguration.java
index 82304b3..519d93a 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/ref/springboot/RefLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/ref/springboot/RefLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class RefLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private RefLanguageConfiguration configuration;
 
+    public RefLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureRefLanguage() {
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/FileLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/FileLanguageAutoConfiguration.java
index fa4e22d..2190032 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/FileLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/FileLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class FileLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private FileLanguageConfiguration configuration;
 
+    public FileLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureFileLanguage() {
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/SimpleLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/SimpleLanguageAutoConfiguration.java
index ffc3f50..fc60320 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/SimpleLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/simple/springboot/SimpleLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class SimpleLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private SimpleLanguageConfiguration configuration;
 
+    public SimpleLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureSimpleLanguage() {
diff --git a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/tokenizer/springboot/TokenizeLanguageAutoConfiguration.java b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/tokenizer/springboot/TokenizeLanguageAutoConfiguration.java
index 1b11182..529d676 100644
--- a/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/tokenizer/springboot/TokenizeLanguageAutoConfiguration.java
+++ b/components-starter/camel-core-starter/src/main/java/org/apache/camel/language/tokenizer/springboot/TokenizeLanguageAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class TokenizeLanguageAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private TokenizeLanguageConfiguration configuration;
 
+    public TokenizeLanguageAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public org.apache.camel.spi.LanguageCustomizer configureTokenizeLanguage() {
diff --git a/components-starter/camel-couchbase-starter/src/main/java/org/apache/camel/component/couchbase/springboot/CouchbaseComponentAutoConfiguration.java b/components-starter/camel-couchbase-starter/src/main/java/org/apache/camel/component/couchbase/springboot/CouchbaseComponentAutoConfiguration.java
index 09e162f..0bad259 100644
--- a/components-starter/camel-couchbase-starter/src/main/java/org/apache/camel/component/couchbase/springboot/CouchbaseComponentAutoConfiguration.java
+++ b/components-starter/camel-couchbase-starter/src/main/java/org/apache/camel/component/couchbase/springboot/CouchbaseComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CouchbaseComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CouchbaseComponentConfiguration configuration;
 
+    public CouchbaseComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCouchbaseComponent() {
diff --git a/components-starter/camel-couchdb-starter/src/main/java/org/apache/camel/component/couchdb/springboot/CouchDbComponentAutoConfiguration.java b/components-starter/camel-couchdb-starter/src/main/java/org/apache/camel/component/couchdb/springboot/CouchDbComponentAutoConfiguration.java
index 9e706a9..69bd825 100644
--- a/components-starter/camel-couchdb-starter/src/main/java/org/apache/camel/component/couchdb/springboot/CouchDbComponentAutoConfiguration.java
+++ b/components-starter/camel-couchdb-starter/src/main/java/org/apache/camel/component/couchdb/springboot/CouchDbComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CouchDbComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CouchDbComponentConfiguration configuration;
 
+    public CouchDbComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCouchDbComponent() {
diff --git a/components-starter/camel-cron-starter/src/main/java/org/apache/camel/component/cron/springboot/CronComponentAutoConfiguration.java b/components-starter/camel-cron-starter/src/main/java/org/apache/camel/component/cron/springboot/CronComponentAutoConfiguration.java
index dfc6ed1..11454ac 100644
--- a/components-starter/camel-cron-starter/src/main/java/org/apache/camel/component/cron/springboot/CronComponentAutoConfiguration.java
+++ b/components-starter/camel-cron-starter/src/main/java/org/apache/camel/component/cron/springboot/CronComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CronComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CronComponentConfiguration configuration;
 
+    public CronComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCronComponent() {
diff --git a/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentAutoConfiguration.java b/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentAutoConfiguration.java
index c1fd161..0a36950 100644
--- a/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentAutoConfiguration.java
+++ b/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class CryptoCmsComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CryptoCmsComponentConfiguration configuration;
 
+    public CryptoCmsComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new CryptoCmsComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureCryptoCmsComponent() {
diff --git a/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConverter.java b/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConverter.java
new file mode 100644
index 0000000..68c66d9
--- /dev/null
+++ b/components-starter/camel-crypto-cms-starter/src/main/java/org/apache/camel/component/crypto/cms/springboot/CryptoCmsComponentConverter.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.crypto.cms.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class CryptoCmsComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public CryptoCmsComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration.class);
+            case "org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java
index 41c5dd4..3c280c3 100644
--- a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java
+++ b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,17 @@ public class DigitalSignatureComponentAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private DigitalSignatureComponentConfiguration configuration;
 
+    public DigitalSignatureComponentAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+        ApplicationConversionService acs = (ApplicationConversionService) ApplicationConversionService.getSharedInstance();
+        acs.addConverter(new DigitalSignatureComponentConverter(camelContext));
+    }
+
     @Lazy
     @Bean
     public ComponentCustomizer configureDigitalSignatureComponent() {
diff --git a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConverter.java b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConverter.java
new file mode 100644
index 0000000..3e5c306
--- /dev/null
+++ b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/component/crypto/springboot/DigitalSignatureComponentConverter.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.crypto.springboot;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import javax.annotation.Generated;
+import org.apache.camel.CamelContext;
+import org.springframework.core.convert.TypeDescriptor;
+import org.springframework.core.convert.converter.GenericConverter;
+
+/**
+ * Generated by camel-package-maven-plugin - do not edit this file!
+ */
+@Generated("org.apache.camel.springboot.maven.SpringBootAutoConfigurationMojo")
+public class DigitalSignatureComponentConverter
+        implements
+            org.springframework.core.convert.converter.GenericConverter {
+
+    private final CamelContext camelContext;
+
+    public DigitalSignatureComponentConverter(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
+    public Set<ConvertiblePair> getConvertibleTypes() {
+        Set<ConvertiblePair> answer = new LinkedHashSet<>();
+        answer.add(new ConvertiblePair(String.class, java.security.KeyStore.class));
+        answer.add(new ConvertiblePair(String.class, java.security.PrivateKey.class));
+        answer.add(new ConvertiblePair(String.class, java.security.cert.Certificate.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.component.crypto.DigitalSignatureConfiguration.class));
+        answer.add(new ConvertiblePair(String.class, org.apache.camel.support.jsse.KeyStoreParameters.class));
+        answer.add(new ConvertiblePair(String.class, java.security.PublicKey.class));
+        answer.add(new ConvertiblePair(String.class, java.security.SecureRandom.class));
+        return answer;
+    }
+
+    public Object convert(
+            Object source,
+            TypeDescriptor sourceType,
+            TypeDescriptor targetType) {
+        if (source == null) {
+            return null;
+        }
+        String ref = source.toString();
+        if (!ref.startsWith("#")) {
+            return null;
+        }
+        ref = ref.startsWith("#bean:") ? ref.substring(6) : ref.substring(1);
+        switch (targetType.getName()) {
+            case "java.security.KeyStore": return camelContext.getRegistry().lookupByNameAndType(ref, java.security.KeyStore.class);
+            case "java.security.PrivateKey": return camelContext.getRegistry().lookupByNameAndType(ref, java.security.PrivateKey.class);
+            case "java.security.cert.Certificate": return camelContext.getRegistry().lookupByNameAndType(ref, java.security.cert.Certificate.class);
+            case "org.apache.camel.component.crypto.DigitalSignatureConfiguration": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.component.crypto.DigitalSignatureConfiguration.class);
+            case "org.apache.camel.support.jsse.KeyStoreParameters": return camelContext.getRegistry().lookupByNameAndType(ref, org.apache.camel.support.jsse.KeyStoreParameters.class);
+            case "java.security.PublicKey": return camelContext.getRegistry().lookupByNameAndType(ref, java.security.PublicKey.class);
+            case "java.security.SecureRandom": return camelContext.getRegistry().lookupByNameAndType(ref, java.security.SecureRandom.class);
+        }
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/CryptoDataFormatAutoConfiguration.java b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/CryptoDataFormatAutoConfiguration.java
index edb2529..0ef537b 100644
--- a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/CryptoDataFormatAutoConfiguration.java
+++ b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/CryptoDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class CryptoDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private CryptoDataFormatConfiguration configuration;
 
+    public CryptoDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configureCryptoDataFormatFactory() {
diff --git a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/PGPDataFormatAutoConfiguration.java b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/PGPDataFormatAutoConfiguration.java
index 58ddad9..a1101b7 100644
--- a/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/PGPDataFormatAutoConfiguration.java
+++ b/components-starter/camel-crypto-starter/src/main/java/org/apache/camel/converter/crypto/springboot/PGPDataFormatAutoConfiguration.java
@@ -30,6 +30,7 @@ import org.apache.camel.spring.boot.util.HierarchicalPropertiesEvaluator;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.convert.ApplicationConversionService;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Conditional;
@@ -49,11 +50,15 @@ public class PGPDataFormatAutoConfiguration {
 
     @Autowired
     private ApplicationContext applicationContext;
-    @Autowired
-    private CamelContext camelContext;
+    private final CamelContext camelContext;
     @Autowired
     private PGPDataFormatConfiguration configuration;
 
+    public PGPDataFormatAutoConfiguration(
+            org.apache.camel.CamelContext camelContext) {
+        this.camelContext = camelContext;
+    }
+
     @Lazy
     @Bean
     public DataFormatCustomizer configurePGPDataFormatFactory() {
... 20000 lines suppressed ...


[camel-spring-boot] 06/06: regen

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 83920672d5edbd3734bfbe50f15155533e86be13
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Nov 16 14:56:48 2020 +0100

    regen
---
 .../org/apache/camel/springboot/catalog/components/aws2-ecs.json    | 6 ++----
 .../org/apache/camel/springboot/catalog/components/aws2-eks.json    | 6 ++----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ecs.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ecs.json
index 2eb8477..7e96d46 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ecs.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-ecs.json
@@ -22,9 +22,8 @@
     "lenientProperties": false
   },
   "componentProperties": {
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client inst [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
-    "ecsClient": { "kind": "property", "displayName": "Ecs Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
+    "ecsClient": { "kind": "property", "displayName": "Ecs Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "descript [...]
     "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
@@ -39,8 +38,7 @@
   },
   "properties": {
     "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Logical name" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client ins [...]
-    "ecsClient": { "kind": "parameter", "displayName": "Ecs Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
+    "ecsClient": { "kind": "parameter", "displayName": "Ecs Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.ecs.EcsClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS ECS as client" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
     "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.ecs.ECS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "descrip [...]
     "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.ecs.ECS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-eks.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-eks.json
index 1f02b1d..b24154d 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-eks.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/aws2-eks.json
@@ -22,9 +22,8 @@
     "lenientProperties": false
   },
   "componentProperties": {
-    "autoDiscoverClient": { "kind": "property", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client inst [...]
     "configuration": { "kind": "property", "displayName": "Configuration", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Configuration", "deprecated": false, "autowired": false, "secret": false, "description": "Component configuration" },
-    "eksClient": { "kind": "property", "displayName": "Eks Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
+    "eksClient": { "kind": "property", "displayName": "Eks Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
     "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...]
     "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "descript [...]
     "pojoRequest": { "kind": "property", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },
@@ -39,8 +38,7 @@
   },
   "properties": {
     "label": { "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Logical name" },
-    "autoDiscoverClient": { "kind": "parameter", "displayName": "Auto Discover Client", "group": "common", "label": "common", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "Setting the autoDiscoverClient mechanism, if true, the component will look for a client ins [...]
-    "eksClient": { "kind": "parameter", "displayName": "Eks Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
+    "eksClient": { "kind": "parameter", "displayName": "Eks Client", "group": "producer", "label": "", "required": false, "type": "object", "javaType": "software.amazon.awssdk.services.eks.EksClient", "deprecated": false, "deprecationNote": "", "autowired": true, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "To use a existing configured AWS EKS as client" },
     "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...]
     "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "", "required": true, "type": "object", "javaType": "org.apache.camel.component.aws2.eks.EKS2Operations", "enum": [ "listClusters", "describeCluster", "createCluster", "deleteCluster" ], "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "descrip [...]
     "pojoRequest": { "kind": "parameter", "displayName": "Pojo Request", "group": "producer", "label": "", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.eks.EKS2Configuration", "configurationField": "configuration", "description": "If we want to use a POJO request as body or not" },


[camel-spring-boot] 03/06: CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 080ed8d3f3abe70e268e93d91069a118da9009b3
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Nov 16 14:45:16 2020 +0100

    CAMEL-15766: camel-spring-boot - Support complex types to be referenced via # lookup from configuration files.
---
 .../maven/SpringBootAutoConfigurationMojo.java     | 82 ++++++++++------------
 1 file changed, 37 insertions(+), 45 deletions(-)

diff --git a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
index 2a75ff7..95229ac 100644
--- a/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
+++ b/tooling/camel-spring-boot-generator-maven-plugin/src/main/java/org/apache/camel/springboot/maven/SpringBootAutoConfigurationMojo.java
@@ -41,6 +41,7 @@ import java.util.stream.Stream;
 import java.util.zip.ZipEntry;
 
 import org.apache.camel.maven.packaging.AbstractGeneratorMojo;
+import org.apache.camel.tooling.model.BaseOptionModel;
 import org.apache.camel.tooling.model.ComponentModel;
 import org.apache.camel.tooling.model.ComponentModel.ComponentOptionModel;
 import org.apache.camel.tooling.model.DataFormatModel;
@@ -1364,13 +1365,11 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         sb.append("}\n");
         sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
         sb.append("switch (targetType.getName()) {\n");
-        for (ComponentOptionModel option : model.getComponentOptions()) {
-            // is it a complex type
-            if (isComplexType(option)) {
-                String type = getJavaType(option);
-                sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
-            }
-        }
+        // we need complex types only which unique types only
+        Stream<String> s = model.getComponentOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        s.forEach(type -> {
+            sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
+        });
         sb.append("}\n");
         sb.append("return null;\n");
         return sb.toString();
@@ -1387,13 +1386,11 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         sb.append("}\n");
         sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
         sb.append("switch (targetType.getName()) {\n");
-        for (DataFormatOptionModel option : model.getOptions()) {
-            // is it a complex type
-            if (isComplexType(option)) {
-                String type = getJavaType(option);
-                sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
-            }
-        }
+        // we need complex types only which unique types only
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        s.forEach(type -> {
+            sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
+        });
         sb.append("}\n");
         sb.append("return null;\n");
         return sb.toString();
@@ -1410,13 +1407,11 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
         sb.append("}\n");
         sb.append("ref = ref.startsWith(\"#bean:\") ? ref.substring(6) : ref.substring(1);\n");
         sb.append("switch (targetType.getName()) {\n");
-        for (LanguageOptionModel option : model.getOptions()) {
-            // is it a complex type
-            if (isComplexType(option)) {
-                String type = getJavaType(option);
-                sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
-            }
-        }
+        // we need complex types only which unique types only
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        s.forEach(type -> {
+            sb.append("    case \"").append(type).append("\": return camelContext.getRegistry().lookupByNameAndType(ref, ").append(type).append(".class);\n");
+        });
         sb.append("}\n");
         sb.append("return null;\n");
         return sb.toString();
@@ -1425,14 +1420,13 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
     private String createConverterPairBody(ComponentModel model) {
         StringBuilder sb = new StringBuilder();
         sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
-        for (ComponentOptionModel option : model.getComponentOptions()) {
-            // is it a complex type
-            if (isComplexType(option)) {
-                sb.append("answer.add(new ConvertiblePair(String.class, ");
-                sb.append(option.getJavaType());
-                sb.append(".class));\n");
-            }
-        }
+        // we need complex types only which unique types only
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        s.forEach(type -> {
+            sb.append("answer.add(new ConvertiblePair(String.class, ");
+            sb.append(type);
+            sb.append(".class));\n");
+        });
         sb.append("return answer;\n");
         return sb.toString();
     }
@@ -1440,14 +1434,13 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
     private String createConverterPairBody(DataFormatModel model) {
         StringBuilder sb = new StringBuilder();
         sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
-        for (DataFormatOptionModel option : model.getOptions()) {
-            // is it a complex type
-            if (isComplexType(option)) {
-                sb.append("answer.add(new ConvertiblePair(String.class, ");
-                sb.append(option.getJavaType());
-                sb.append(".class));\n");
-            }
-        }
+        // we need complex types only which unique types only
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        s.forEach(type -> {
+            sb.append("answer.add(new ConvertiblePair(String.class, ");
+            sb.append(type);
+            sb.append(".class));\n");
+        });
         sb.append("return answer;\n");
         return sb.toString();
     }
@@ -1455,14 +1448,13 @@ public class SpringBootAutoConfigurationMojo extends AbstractSpringBootGenerator
     private String createConverterPairBody(LanguageModel model) {
         StringBuilder sb = new StringBuilder();
         sb.append("Set<ConvertiblePair> answer = new LinkedHashSet<>();\n");
-        for (LanguageOptionModel option : model.getOptions()) {
-            // is it a complex type
-            if (isComplexType(option)) {
-                sb.append("answer.add(new ConvertiblePair(String.class, ");
-                sb.append(option.getJavaType());
-                sb.append(".class));\n");
-            }
-        }
+        // we need complex types only which unique types only
+        Stream<String> s = model.getOptions().stream().filter(this::isComplexType).map(BaseOptionModel::getJavaType).distinct();
+        s.forEach(type -> {
+            sb.append("answer.add(new ConvertiblePair(String.class, ");
+            sb.append(type);
+            sb.append(".class));\n");
+        });
         sb.append("return answer;\n");
         return sb.toString();
     }