[camel] branch master updated (8f0b29a -> 908e51b)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[camel] branch master updated (8f0b29a -> 908e51b)

davsclaus-2
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.git.


    from 8f0b29a  use isArrayOrCollection
     new a1594cb  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new 1c28757  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new a8397b9  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new ec24d17  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new 0fb0413  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new c947278  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new 99836d9  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new c2fb87f  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new bc06649  CAMEL-13850: Fixed CS
     new 386687c  CAMEL-13850: Polished
     new e59cf7a  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new 59309b7  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new 06fbd61  CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
     new cf12f9c  CAMEL-13850: Remove resolvePropertyPlaceholders on DefaultComponent as this is already supported via camel main, spring boot and other means. This avoid reflection overhead on bootstrap.
     new 6701fa4  CAMEL-13850: Remove resolvePropertyPlaceholders on DefaultComponent as this is already supported via camel main, spring boot and other means. This avoid reflection overhead on bootstrap.
     new f14ba3f  CAMEL-13850: Source code generate ExchangeConstantProvider so we can do fast lookup of its constant values without reflection
     new 17cfc8e  CAMEL-13850: Source code generate ExchangeConstantProvider so we can do fast lookup of its constant values without reflection
     new f6cf229  CAMEL-13850: Source code generate ExchangeConstantProvider so we can do fast lookup of its constant values without reflection
     new 4bf7fda  CAMEL-13863: camel3 - Optimize XmlConverterLoader and other loaders as synchronization is not needed as the loader is invoked during bootstrapping.
     new ed97387  CAMEL-13863: Regen
     new 908e51b  Upgrade groovy and logger

The 21 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:
 MIGRATION.md                                       |   3 +
 .../src/main/docs/activemq-component.adoc          |   6 +-
 .../src/main/docs/ahc-ws-component.adoc            |   6 +-
 .../camel-ahc/src/main/docs/ahc-component.adoc     |   6 +-
 .../camel-amqp/src/main/docs/amqp-component.adoc   |   6 +-
 .../camel-apns/src/main/docs/apns-component.adoc   |   6 +-
 .../src/main/docs/as2-component.adoc               |   6 +-
 .../src/main/docs/asterisk-component.adoc          |   6 +-
 .../camel-atmos/src/main/docs/atmos-component.adoc |   6 +-
 .../main/docs/atmosphere-websocket-component.adoc  |   6 +-
 .../camel-atom/src/main/docs/atom-component.adoc   |   6 +-
 .../src/main/docs/atomix-map-component.adoc        |   6 +-
 .../src/main/docs/atomix-messaging-component.adoc  |   6 +-
 .../src/main/docs/atomix-multimap-component.adoc   |   6 +-
 .../src/main/docs/atomix-queue-component.adoc      |   6 +-
 .../src/main/docs/atomix-set-component.adoc        |   6 +-
 .../src/main/docs/atomix-value-component.adoc      |   6 +-
 .../camel-avro/src/main/docs/avro-component.adoc   |   6 +-
 .../camel-avro/src/main/docs/avro-dataformat.adoc  |   3 +-
 .../src/main/docs/aws-cw-component.adoc            |   6 +-
 .../src/main/docs/aws-ddb-component.adoc           |   6 +-
 .../src/main/docs/aws-ddbstream-component.adoc     |   6 +-
 .../src/main/docs/aws-ec2-component.adoc           |   6 +-
 .../src/main/docs/aws-ecs-component.adoc           |   6 +-
 .../src/main/docs/aws-eks-component.adoc           |   6 +-
 .../src/main/docs/aws-iam-component.adoc           |   6 +-
 .../src/main/docs/aws-kinesis-component.adoc       |   6 +-
 .../main/docs/aws-kinesis-firehose-component.adoc  |   6 +-
 .../src/main/docs/aws-kms-component.adoc           |   6 +-
 .../src/main/docs/aws-lambda-component.adoc        |   6 +-
 .../src/main/docs/aws-mq-component.adoc            |   6 +-
 .../src/main/docs/aws-msk-component.adoc           |   6 +-
 .../src/main/docs/aws-s3-component.adoc            |   6 +-
 .../src/main/docs/aws-sdb-component.adoc           |   6 +-
 .../src/main/docs/aws-ses-component.adoc           |   6 +-
 .../src/main/docs/aws-sns-component.adoc           |   6 +-
 .../src/main/docs/aws-sqs-component.adoc           |   6 +-
 .../src/main/docs/aws-swf-component.adoc           |   6 +-
 .../src/main/docs/azure-blob-component.adoc        |   6 +-
 .../src/main/docs/azure-queue-component.adoc       |   6 +-
 .../src/main/docs/bean-validator-component.adoc    |   6 +-
 .../camel-bean/src/main/docs/bean-component.adoc   |   3 +-
 .../camel-bean/src/main/docs/class-component.adoc  |   3 +-
 .../src/main/docs/beanstalk-component.adoc         |   6 +-
 .../src/main/docs/bonita-component.adoc            |   6 +-
 .../src/main/docs/box-component.adoc               |   6 +-
 .../src/main/docs/braintree-component.adoc         |   6 +-
 .../src/main/docs/browse-component.adoc            |   6 +-
 .../src/main/docs/caffeine-cache-component.adoc    |   6 +-
 .../main/docs/caffeine-loadcache-component.adoc    |   6 +-
 .../src/main/docs/cql-component.adoc               |   6 +-
 .../src/main/docs/chatscript-component.adoc        |   6 +-
 .../camel-chunk/src/main/docs/chunk-component.adoc |   6 +-
 .../src/main/docs/cm-sms-component.adoc            |   6 +-
 .../camel-cmis/src/main/docs/cmis-component.adoc   |   6 +-
 .../camel-coap/src/main/docs/coap-component.adoc   |   6 +-
 .../src/main/docs/cometd-component.adoc            |   6 +-
 .../src/main/docs/consul-component.adoc            |   6 +-
 .../src/main/docs/controlbus-component.adoc        |   6 +-
 .../camel-corda/src/main/docs/corda-component.adoc |   6 +-
 .../src/main/docs/couchbase-component.adoc         |   6 +-
 .../src/main/docs/couchdb-component.adoc           |   6 +-
 .../src/main/docs/crypto-cms-component.adoc        |   6 +-
 .../src/main/docs/crypto-component.adoc            |   6 +-
 .../src/main/docs/crypto-dataformat.adoc           |   3 +-
 .../camel-cxf/src/main/docs/cxf-component.adoc     |   6 +-
 .../camel-cxf/src/main/docs/cxfrs-component.adoc   |   6 +-
 .../src/main/docs/dataformat-component.adoc        |   6 +-
 .../src/main/docs/dataset-component.adoc           |   6 +-
 .../src/main/docs/dataset-test-component.adoc      |   6 +-
 .../src/main/docs/digitalocean-component.adoc      |   6 +-
 .../src/main/docs/direct-component.adoc            |   6 +-
 .../src/main/docs/direct-vm-component.adoc         |   3 +-
 .../src/main/docs/disruptor-component.adoc         |   7 +-
 .../camel-dns/src/main/docs/dns-component.adoc     |   6 +-
 .../src/main/docs/docker-component.adoc            |   6 +-
 .../camel-dozer/src/main/docs/dozer-component.adoc |   6 +-
 .../camel-drill/src/main/docs/drill-component.adoc |   6 +-
 .../src/main/docs/dropbox-component.adoc           |   6 +-
 .../src/main/docs/ehcache-component.adoc           |   6 +-
 .../main/docs/elasticsearch-rest-component.adoc    |   6 +-
 .../camel-elsql/src/main/docs/elsql-component.adoc |   6 +-
 .../camel-etcd/src/main/docs/etcd-component.adoc   |   6 +-
 .../src/main/docs/eventadmin-component.adoc        |   3 +-
 .../camel-exec/src/main/docs/exec-component.adoc   |   6 +-
 .../src/main/docs/facebook-component.adoc          |   6 +-
 .../src/main/docs/fhir-component.adoc              |   6 +-
 .../src/main/docs/file-watch-component.adoc        |   6 +-
 .../camel-file/src/main/docs/file-component.adoc   |   6 +-
 .../src/main/docs/flatpack-component.adoc          |   6 +-
 .../src/main/docs/flatpack-dataformat.adoc         |   3 +-
 .../camel-flink/src/main/docs/flink-component.adoc |   6 +-
 .../camel-fop/src/main/docs/fop-component.adoc     |   6 +-
 .../src/main/docs/freemarker-component.adoc        |   6 +-
 .../camel-ftp/src/main/docs/ftp-component.adoc     |   6 +-
 .../camel-ftp/src/main/docs/ftps-component.adoc    |   6 +-
 .../camel-ftp/src/main/docs/sftp-component.adoc    |   3 +-
 .../src/main/docs/ganglia-component.adoc           |   6 +-
 .../src/main/docs/geocoder-component.adoc          |   6 +-
 .../camel-git/src/main/docs/git-component.adoc     |   6 +-
 .../src/main/docs/github-component.adoc            |   6 +-
 .../src/main/docs/google-bigquery-component.adoc   |   6 +-
 .../main/docs/google-bigquery-sql-component.adoc   |   6 +-
 .../src/main/docs/google-calendar-component.adoc   |   6 +-
 .../docs/google-calendar-stream-component.adoc     |   6 +-
 .../src/main/docs/google-drive-component.adoc      |   6 +-
 .../src/main/docs/google-mail-component.adoc       |   6 +-
 .../main/docs/google-mail-stream-component.adoc    |   6 +-
 .../src/main/docs/google-pubsub-component.adoc     |   6 +-
 .../src/main/docs/google-sheets-component.adoc     |   6 +-
 .../main/docs/google-sheets-stream-component.adoc  |   6 +-
 .../camel-gora/src/main/docs/gora-component.adoc   |   6 +-
 .../camel-grape/src/main/docs/grape-component.adoc |   3 +-
 .../camel-grpc/src/main/docs/grpc-component.adoc   |   6 +-
 .../src/main/docs/guava-eventbus-component.adoc    |   6 +-
 .../main/docs/hazelcast-atomicvalue-component.adoc |   6 +-
 .../main/docs/hazelcast-instance-component.adoc    |   6 +-
 .../src/main/docs/hazelcast-list-component.adoc    |   6 +-
 .../src/main/docs/hazelcast-map-component.adoc     |   6 +-
 .../main/docs/hazelcast-multimap-component.adoc    |   6 +-
 .../src/main/docs/hazelcast-queue-component.adoc   |   6 +-
 .../docs/hazelcast-replicatedmap-component.adoc    |   6 +-
 .../main/docs/hazelcast-ringbuffer-component.adoc  |   6 +-
 .../src/main/docs/hazelcast-seda-component.adoc    |   6 +-
 .../src/main/docs/hazelcast-set-component.adoc     |   6 +-
 .../src/main/docs/hazelcast-topic-component.adoc   |   6 +-
 .../camel-hbase/src/main/docs/hbase-component.adoc |   6 +-
 .../camel-hdfs/src/main/docs/hdfs-component.adoc   |   6 +-
 .../src/main/docs/hipchat-component.adoc           |   6 +-
 .../camel-http/src/main/docs/http-component.adoc   |   6 +-
 .../src/main/docs/iec60870-client-component.adoc   |   6 +-
 .../src/main/docs/iec60870-server-component.adoc   |   6 +-
 .../src/main/docs/ignite-cache-component.adoc      |   6 +-
 .../src/main/docs/ignite-compute-component.adoc    |   6 +-
 .../src/main/docs/ignite-events-component.adoc     |   6 +-
 .../src/main/docs/ignite-idgen-component.adoc      |   6 +-
 .../src/main/docs/ignite-messaging-component.adoc  |   6 +-
 .../src/main/docs/ignite-queue-component.adoc      |   6 +-
 .../src/main/docs/ignite-set-component.adoc        |   6 +-
 .../src/main/docs/infinispan-component.adoc        |   6 +-
 .../src/main/docs/influxdb-component.adoc          |   6 +-
 .../camel-iota/src/main/docs/iota-component.adoc   |   6 +-
 .../camel-ipfs/src/main/docs/ipfs-component.adoc   |   6 +-
 .../camel-irc/src/main/docs/irc-component.adoc     |   6 +-
 .../src/main/docs/ironmq-component.adoc            |   6 +-
 .../camel-jbpm/src/main/docs/jbpm-component.adoc   |   6 +-
 .../src/main/docs/jcache-component.adoc            |   6 +-
 .../src/main/docs/jclouds-component.adoc           |   6 +-
 .../camel-jcr/src/main/docs/jcr-component.adoc     |   6 +-
 .../camel-jdbc/src/main/docs/jdbc-component.adoc   |   6 +-
 .../camel-jetty/src/main/docs/jetty-component.adoc |   6 +-
 .../src/main/docs/jgroups-raft-component.adoc      |   6 +-
 .../src/main/docs/jgroups-component.adoc           |   6 +-
 .../camel-jing/src/main/docs/jing-component.adoc   |   6 +-
 .../camel-jira/src/main/docs/jira-component.adoc   |   6 +-
 .../camel-jms/src/main/docs/jms-component.adoc     |   6 +-
 .../camel-jmx/src/main/docs/jmx-component.adoc     |   6 +-
 .../camel-jolt/src/main/docs/jolt-component.adoc   |   6 +-
 .../camel-jooq/src/main/docs/jooq-component.adoc   |   6 +-
 .../camel-jpa/src/main/docs/jpa-component.adoc     |   6 +-
 .../camel-jsch/src/main/docs/scp-component.adoc    |   6 +-
 .../src/main/docs/json-validator-component.adoc    |   6 +-
 .../camel-jt400/src/main/docs/jt400-component.adoc |   6 +-
 .../camel-kafka/src/main/docs/kafka-component.adoc |   6 +-
 .../docs/kubernetes-config-maps-component.adoc     |   6 +-
 .../docs/kubernetes-deployments-component.adoc     |   6 +-
 .../src/main/docs/kubernetes-hpa-component.adoc    |   6 +-
 .../src/main/docs/kubernetes-job-component.adoc    |   6 +-
 .../main/docs/kubernetes-namespaces-component.adoc |   6 +-
 .../src/main/docs/kubernetes-nodes-component.adoc  |   6 +-
 ...rnetes-persistent-volumes-claims-component.adoc |   6 +-
 .../kubernetes-persistent-volumes-component.adoc   |   6 +-
 .../src/main/docs/kubernetes-pods-component.adoc   |   6 +-
 ...bernetes-replication-controllers-component.adoc |   6 +-
 .../docs/kubernetes-resources-quota-component.adoc |   6 +-
 .../main/docs/kubernetes-secrets-component.adoc    |   6 +-
 .../kubernetes-service-accounts-component.adoc     |   6 +-
 .../main/docs/kubernetes-services-component.adoc   |   6 +-
 .../docs/openshift-build-configs-component.adoc    |   3 +-
 .../src/main/docs/openshift-builds-component.adoc  |   3 +-
 .../src/main/docs/language-component.adoc          |   6 +-
 .../camel-ldap/src/main/docs/ldap-component.adoc   |   6 +-
 .../camel-ldif/src/main/docs/ldif-component.adoc   |   6 +-
 .../src/main/docs/linkedin-component.adoc          |   6 +-
 .../camel-log/src/main/docs/log-component.adoc     |   6 +-
 .../src/main/docs/lucene-component.adoc            |   6 +-
 .../src/main/docs/lumberjack-component.adoc        |   6 +-
 .../camel-mail/src/main/docs/mail-component.adoc   |   6 +-
 .../src/main/docs/master-component.adoc            |   6 +-
 .../src/main/docs/metrics-component.adoc           |   6 +-
 .../src/main/docs/micrometer-component.adoc        |   6 +-
 .../src/main/docs/milo-client-component.adoc       |   6 +-
 .../src/main/docs/milo-server-component.adoc       |   6 +-
 .../camel-mina/src/main/docs/mina-component.adoc   |   6 +-
 .../camel-mllp/src/main/docs/mllp-component.adoc   |   6 +-
 .../camel-mock/src/main/docs/mock-component.adoc   |   3 +-
 .../src/main/docs/mongodb-gridfs-component.adoc    |   6 +-
 .../src/main/docs/mongodb-component.adoc           |   6 +-
 .../camel-mqtt/src/main/docs/mqtt-component.adoc   |   6 +-
 .../camel-msv/src/main/docs/msv-component.adoc     |   6 +-
 .../src/main/docs/mustache-component.adoc          |   6 +-
 .../camel-mvel/src/main/docs/mvel-component.adoc   |   6 +-
 .../camel-mvel/src/main/docs/mvel-language.adoc    |   3 +-
 .../src/main/docs/mybatis-bean-component.adoc      |   6 +-
 .../src/main/docs/mybatis-component.adoc           |   6 +-
 .../src/main/docs/nagios-component.adoc            |   6 +-
 .../camel-nats/src/main/docs/nats-component.adoc   |   6 +-
 .../src/main/docs/netty-http-component.adoc        |   6 +-
 .../camel-netty/src/main/docs/netty-component.adoc |   6 +-
 .../camel-nsq/src/main/docs/nsq-component.adoc     |   6 +-
 .../src/main/docs/olingo2-component.adoc           |   6 +-
 .../src/main/docs/olingo4-component.adoc           |   6 +-
 .../src/main/docs/openstack-cinder-component.adoc  |   6 +-
 .../src/main/docs/openstack-glance-component.adoc  |   6 +-
 .../main/docs/openstack-keystone-component.adoc    |   6 +-
 .../src/main/docs/openstack-neutron-component.adoc |   6 +-
 .../src/main/docs/openstack-nova-component.adoc    |   6 +-
 .../src/main/docs/openstack-swift-component.adoc   |   6 +-
 .../src/main/docs/optaplanner-component.adoc       |   6 +-
 .../camel-paho/src/main/docs/paho-component.adoc   |   6 +-
 .../src/main/docs/paxlogging-component.adoc        |   3 +-
 .../camel-pdf/src/main/docs/pdf-component.adoc     |   6 +-
 .../main/docs/pg-replication-slot-component.adoc   |   6 +-
 .../src/main/docs/pgevent-component.adoc           |   6 +-
 .../camel-printer/src/main/docs/lpr-component.adoc |   6 +-
 .../src/main/docs/properties-component.adoc        |   6 +-
 .../src/main/docs/pubnub-component.adoc            |   6 +-
 .../src/main/docs/pulsar-component.adoc            |   8 +-
 .../src/main/docs/quartz-component.adoc            |   6 +-
 .../src/main/docs/quickfix-component.adoc          |   6 +-
 .../src/main/docs/rabbitmq-component.adoc          |   6 +-
 .../src/main/docs/reactive-streams-component.adoc  |   6 +-
 .../camel-ref/src/main/docs/ref-component.adoc     |   6 +-
 .../src/main/docs/rest-swagger-component.adoc      |   6 +-
 .../src/main/docs/rest-api-component.adoc          |   6 +-
 .../camel-rest/src/main/docs/rest-component.adoc   |   6 +-
 .../src/main/docs/restlet-component.adoc           |   6 +-
 .../camel-rss/src/main/docs/rss-component.adoc     |   6 +-
 .../camel-rss/src/main/docs/rss-dataformat.adoc    |   3 +-
 .../camel-saga/src/main/docs/saga-component.adoc   |   6 +-
 .../src/main/docs/salesforce-component.adoc        |   6 +-
 .../src/main/docs/sap-netweaver-component.adoc     |   6 +-
 .../src/main/docs/xquery-component.adoc            |   6 +-
 .../camel-saxon/src/main/docs/xquery-language.adoc |   3 +-
 .../src/main/docs/scheduler-component.adoc         |   6 +-
 .../src/main/docs/schematron-component.adoc        |   6 +-
 .../camel-seda/src/main/docs/seda-component.adoc   |   6 +-
 .../src/main/docs/service-component.adoc           |   6 +-
 .../src/main/docs/servicenow-component.adoc        |   6 +-
 .../src/main/docs/servlet-component.adoc           |   6 +-
 .../camel-sip/src/main/docs/sip-component.adoc     |   6 +-
 .../src/main/docs/sjms-batch-component.adoc        |   6 +-
 .../camel-sjms/src/main/docs/sjms-component.adoc   |   6 +-
 .../camel-sjms2/src/main/docs/sjms2-component.adoc |   6 +-
 .../camel-slack/src/main/docs/slack-component.adoc |   6 +-
 .../camel-smpp/src/main/docs/smpp-component.adoc   |   6 +-
 .../camel-snmp/src/main/docs/snmp-component.adoc   |   6 +-
 .../camel-solr/src/main/docs/solr-component.adoc   |   6 +-
 .../src/main/docs/soroush-component.adoc           |   6 +-
 .../src/main/docs/spark-rest-component.adoc        |   3 +-
 .../camel-spark/src/main/docs/spark-component.adoc |   6 +-
 .../src/main/docs/splunk-component.adoc            |   6 +-
 .../src/main/docs/spring-batch-component.adoc      |   6 +-
 .../main/docs/spring-integration-component.adoc    |   6 +-
 .../src/main/docs/spring-ldap-component.adoc       |   6 +-
 .../src/main/docs/spring-redis-component.adoc      |   6 +-
 .../src/main/docs/spring-ws-component.adoc         |   6 +-
 .../src/main/docs/spring-event-component.adoc      |   6 +-
 .../camel-sql/src/main/docs/sql-component.adoc     |   6 +-
 .../src/main/docs/sql-stored-component.adoc        |   6 +-
 .../camel-ssh/src/main/docs/ssh-component.adoc     |   6 +-
 .../camel-stax/src/main/docs/stax-component.adoc   |   6 +-
 .../camel-stomp/src/main/docs/stomp-component.adoc |   6 +-
 .../src/main/docs/stream-component.adoc            |   6 +-
 .../src/main/docs/string-template-component.adoc   |   6 +-
 .../camel-stub/src/main/docs/stub-component.adoc   |   6 +-
 .../src/main/docs/telegram-component.adoc          |   6 +-
 .../src/main/docs/thrift-component.adoc            |   6 +-
 .../src/main/docs/thrift-dataformat.adoc           |   3 +-
 .../camel-tika/src/main/docs/tika-component.adoc   |   6 +-
 .../camel-timer/src/main/docs/timer-component.adoc |   6 +-
 .../src/main/docs/twilio-component.adoc            |   6 +-
 .../main/docs/twitter-directmessage-component.adoc |   6 +-
 .../src/main/docs/twitter-search-component.adoc    |   6 +-
 .../src/main/docs/twitter-timeline-component.adoc  |   6 +-
 .../src/main/docs/undertow-component.adoc          |   6 +-
 .../src/main/docs/validator-component.adoc         |   6 +-
 .../src/main/docs/velocity-component.adoc          |   6 +-
 .../camel-vertx/src/main/docs/vertx-component.adoc |   6 +-
 .../camel-vm/src/main/docs/vm-component.adoc       |   6 +-
 .../src/main/docs/weather-component.adoc           |   6 +-
 .../camel-web3j/src/main/docs/web3j-component.adoc |   6 +-
 .../src/main/docs/webhook-component.adoc           |   6 +-
 .../src/main/docs/websocket-jsr356-component.adoc  |   6 +-
 .../src/main/docs/websocket-component.adoc         |   6 +-
 .../src/main/docs/wordpress-component.adoc         |   6 +-
 .../src/main/docs/xchange-component.adoc           |   6 +-
 .../src/main/docs/xmlsecurity-component.adoc       |   6 +-
 .../camel-xmpp/src/main/docs/xmpp-component.adoc   |   6 +-
 .../camel-xslt/src/main/docs/xslt-component.adoc   |   6 +-
 .../src/main/docs/yammer-component.adoc            |   6 +-
 .../src/main/docs/zendesk-component.adoc           |   6 +-
 .../src/main/docs/zookeeper-master-component.adoc  |   6 +-
 .../src/main/docs/zookeeper-component.adoc         |   6 +-
 core/camel-api/pom.xml                             |  18 ++
 .../src/main/java/org/apache/camel/Exchange.java   |   2 +
 ...are.java => PropertyPlaceholderConfigurer.java} |  31 +--
 .../apache/camel/model/DataFormatDefinition.java   |   2 +-
 .../DefinitionPropertyPlaceholderConfigurer.java   |  52 +++++
 .../org/apache/camel/model/FromDefinition.java     |   3 +
 .../java/org/apache/camel/model/LogDefinition.java |   2 +
 .../camel/model/OptionalIdentifiedDefinition.java  |   2 +-
 .../camel/model/ProcessorDefinitionHelper.java     | 206 ++++++++++----------
 .../java/org/apache/camel/model/ToDefinition.java  |   4 +
 .../camel/model/language/ExpressionDefinition.java |   3 +-
 .../org/apache/camel/reifier/ChoiceReifier.java    |   3 -
 .../org/apache/camel/reifier/ProcessorReifier.java |  16 +-
 .../OptionalPropertiesDslInvalidSyntaxTest.java    |   7 +-
 ...RouteWithConstantFieldFromExchangeFailTest.java |   1 +
 .../camel/processor/SimpleMockPlaceholderTest.java |  22 ++-
 .../org/apache/camel/processor/SimpleMockTest.java |   2 -
 .../org/apache/camel/support/DefaultComponent.java |  31 ---
 .../camel/support/PropertyPlaceholdersHelper.java  |  78 --------
 .../apache/camel/support/SimpleTypeConverter.java  |   1 +
 .../modules/ROOT/pages/activemq-component.adoc     |   6 +-
 .../modules/ROOT/pages/ahc-component.adoc          |   6 +-
 .../modules/ROOT/pages/ahc-ws-component.adoc       |   6 +-
 .../modules/ROOT/pages/amqp-component.adoc         |   6 +-
 .../modules/ROOT/pages/apns-component.adoc         |   6 +-
 .../modules/ROOT/pages/as2-component.adoc          |   6 +-
 .../modules/ROOT/pages/asterisk-component.adoc     |   6 +-
 .../modules/ROOT/pages/atmos-component.adoc        |   6 +-
 .../ROOT/pages/atmosphere-websocket-component.adoc |   6 +-
 .../modules/ROOT/pages/atom-component.adoc         |   6 +-
 .../modules/ROOT/pages/atomix-map-component.adoc   |   6 +-
 .../ROOT/pages/atomix-messaging-component.adoc     |   6 +-
 .../ROOT/pages/atomix-multimap-component.adoc      |   6 +-
 .../modules/ROOT/pages/atomix-queue-component.adoc |   6 +-
 .../modules/ROOT/pages/atomix-set-component.adoc   |   6 +-
 .../modules/ROOT/pages/atomix-value-component.adoc |   6 +-
 .../modules/ROOT/pages/avro-component.adoc         |   6 +-
 .../modules/ROOT/pages/avro-dataformat.adoc        |   3 +-
 .../modules/ROOT/pages/aws-cw-component.adoc       |   6 +-
 .../modules/ROOT/pages/aws-ddb-component.adoc      |   6 +-
 .../ROOT/pages/aws-ddbstream-component.adoc        |   6 +-
 .../modules/ROOT/pages/aws-ec2-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-ecs-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-eks-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-iam-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-kinesis-component.adoc  |   6 +-
 .../ROOT/pages/aws-kinesis-firehose-component.adoc |   6 +-
 .../modules/ROOT/pages/aws-kms-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-lambda-component.adoc   |   6 +-
 .../modules/ROOT/pages/aws-mq-component.adoc       |   6 +-
 .../modules/ROOT/pages/aws-msk-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-s3-component.adoc       |   6 +-
 .../modules/ROOT/pages/aws-sdb-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-ses-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-sns-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-sqs-component.adoc      |   6 +-
 .../modules/ROOT/pages/aws-swf-component.adoc      |   6 +-
 .../modules/ROOT/pages/azure-blob-component.adoc   |   6 +-
 .../modules/ROOT/pages/azure-queue-component.adoc  |   6 +-
 .../modules/ROOT/pages/bean-component.adoc         |   3 +-
 .../ROOT/pages/bean-validator-component.adoc       |   6 +-
 .../modules/ROOT/pages/beanstalk-component.adoc    |   6 +-
 .../modules/ROOT/pages/bonita-component.adoc       |   6 +-
 .../modules/ROOT/pages/box-component.adoc          |   6 +-
 .../modules/ROOT/pages/braintree-component.adoc    |   6 +-
 .../modules/ROOT/pages/browse-component.adoc       |   6 +-
 .../ROOT/pages/caffeine-cache-component.adoc       |   6 +-
 .../ROOT/pages/caffeine-loadcache-component.adoc   |   6 +-
 .../modules/ROOT/pages/chatscript-component.adoc   |   6 +-
 .../modules/ROOT/pages/chunk-component.adoc        |   6 +-
 .../modules/ROOT/pages/class-component.adoc        |   3 +-
 .../modules/ROOT/pages/cm-sms-component.adoc       |   6 +-
 .../modules/ROOT/pages/cmis-component.adoc         |   6 +-
 .../modules/ROOT/pages/coap-component.adoc         |   6 +-
 .../modules/ROOT/pages/cometd-component.adoc       |   6 +-
 .../modules/ROOT/pages/consul-component.adoc       |   6 +-
 .../modules/ROOT/pages/controlbus-component.adoc   |   6 +-
 .../modules/ROOT/pages/corda-component.adoc        |   6 +-
 .../modules/ROOT/pages/couchbase-component.adoc    |   6 +-
 .../modules/ROOT/pages/couchdb-component.adoc      |   6 +-
 .../modules/ROOT/pages/cql-component.adoc          |   6 +-
 .../modules/ROOT/pages/crypto-cms-component.adoc   |   6 +-
 .../modules/ROOT/pages/crypto-component.adoc       |   6 +-
 .../modules/ROOT/pages/crypto-dataformat.adoc      |   3 +-
 .../modules/ROOT/pages/cxf-component.adoc          |   6 +-
 .../modules/ROOT/pages/cxfrs-component.adoc        |   6 +-
 .../modules/ROOT/pages/dataformat-component.adoc   |   6 +-
 .../modules/ROOT/pages/dataset-component.adoc      |   6 +-
 .../modules/ROOT/pages/dataset-test-component.adoc |   6 +-
 .../modules/ROOT/pages/digitalocean-component.adoc |   6 +-
 .../modules/ROOT/pages/direct-component.adoc       |   6 +-
 .../modules/ROOT/pages/direct-vm-component.adoc    |   3 +-
 .../modules/ROOT/pages/disruptor-component.adoc    |   7 +-
 .../modules/ROOT/pages/dns-component.adoc          |   6 +-
 .../modules/ROOT/pages/docker-component.adoc       |   6 +-
 .../modules/ROOT/pages/dozer-component.adoc        |   6 +-
 .../modules/ROOT/pages/drill-component.adoc        |   6 +-
 .../modules/ROOT/pages/dropbox-component.adoc      |   6 +-
 .../modules/ROOT/pages/ehcache-component.adoc      |   6 +-
 .../ROOT/pages/elasticsearch-rest-component.adoc   |   6 +-
 .../modules/ROOT/pages/elsql-component.adoc        |   6 +-
 .../modules/ROOT/pages/etcd-component.adoc         |   6 +-
 .../modules/ROOT/pages/eventadmin-component.adoc   |   3 +-
 .../modules/ROOT/pages/exec-component.adoc         |   6 +-
 .../modules/ROOT/pages/facebook-component.adoc     |   6 +-
 .../modules/ROOT/pages/fhir-component.adoc         |   6 +-
 .../modules/ROOT/pages/file-component.adoc         |   6 +-
 .../modules/ROOT/pages/file-watch-component.adoc   |   6 +-
 .../modules/ROOT/pages/flatpack-component.adoc     |   6 +-
 .../modules/ROOT/pages/flatpack-dataformat.adoc    |   3 +-
 .../modules/ROOT/pages/flink-component.adoc        |   6 +-
 .../modules/ROOT/pages/fop-component.adoc          |   6 +-
 .../modules/ROOT/pages/freemarker-component.adoc   |   6 +-
 .../modules/ROOT/pages/ftp-component.adoc          |   6 +-
 .../modules/ROOT/pages/ftps-component.adoc         |   6 +-
 .../modules/ROOT/pages/ganglia-component.adoc      |   6 +-
 .../modules/ROOT/pages/geocoder-component.adoc     |   6 +-
 .../modules/ROOT/pages/git-component.adoc          |   6 +-
 .../modules/ROOT/pages/github-component.adoc       |   6 +-
 .../ROOT/pages/google-bigquery-component.adoc      |   6 +-
 .../ROOT/pages/google-bigquery-sql-component.adoc  |   6 +-
 .../ROOT/pages/google-calendar-component.adoc      |   6 +-
 .../pages/google-calendar-stream-component.adoc    |   6 +-
 .../modules/ROOT/pages/google-drive-component.adoc |   6 +-
 .../modules/ROOT/pages/google-mail-component.adoc  |   6 +-
 .../ROOT/pages/google-mail-stream-component.adoc   |   6 +-
 .../ROOT/pages/google-pubsub-component.adoc        |   6 +-
 .../ROOT/pages/google-sheets-component.adoc        |   6 +-
 .../ROOT/pages/google-sheets-stream-component.adoc |   6 +-
 .../modules/ROOT/pages/gora-component.adoc         |   6 +-
 .../modules/ROOT/pages/grape-component.adoc        |   3 +-
 .../modules/ROOT/pages/grpc-component.adoc         |   6 +-
 .../ROOT/pages/guava-eventbus-component.adoc       |   6 +-
 .../pages/hazelcast-atomicvalue-component.adoc     |   6 +-
 .../ROOT/pages/hazelcast-instance-component.adoc   |   6 +-
 .../ROOT/pages/hazelcast-list-component.adoc       |   6 +-
 .../ROOT/pages/hazelcast-map-component.adoc        |   6 +-
 .../ROOT/pages/hazelcast-multimap-component.adoc   |   6 +-
 .../ROOT/pages/hazelcast-queue-component.adoc      |   6 +-
 .../pages/hazelcast-replicatedmap-component.adoc   |   6 +-
 .../ROOT/pages/hazelcast-ringbuffer-component.adoc |   6 +-
 .../ROOT/pages/hazelcast-seda-component.adoc       |   6 +-
 .../ROOT/pages/hazelcast-set-component.adoc        |   6 +-
 .../ROOT/pages/hazelcast-topic-component.adoc      |   6 +-
 .../modules/ROOT/pages/hbase-component.adoc        |   6 +-
 .../modules/ROOT/pages/hdfs-component.adoc         |   6 +-
 .../modules/ROOT/pages/hipchat-component.adoc      |   6 +-
 .../modules/ROOT/pages/http-component.adoc         |   6 +-
 .../ROOT/pages/iec60870-client-component.adoc      |   6 +-
 .../ROOT/pages/iec60870-server-component.adoc      |   6 +-
 .../modules/ROOT/pages/ignite-cache-component.adoc |   6 +-
 .../ROOT/pages/ignite-compute-component.adoc       |   6 +-
 .../ROOT/pages/ignite-events-component.adoc        |   6 +-
 .../modules/ROOT/pages/ignite-idgen-component.adoc |   6 +-
 .../ROOT/pages/ignite-messaging-component.adoc     |   6 +-
 .../modules/ROOT/pages/ignite-queue-component.adoc |   6 +-
 .../modules/ROOT/pages/ignite-set-component.adoc   |   6 +-
 .../modules/ROOT/pages/infinispan-component.adoc   |   6 +-
 .../modules/ROOT/pages/influxdb-component.adoc     |   6 +-
 .../modules/ROOT/pages/iota-component.adoc         |   6 +-
 .../modules/ROOT/pages/ipfs-component.adoc         |   6 +-
 .../modules/ROOT/pages/irc-component.adoc          |   6 +-
 .../modules/ROOT/pages/ironmq-component.adoc       |   6 +-
 .../modules/ROOT/pages/jbpm-component.adoc         |   6 +-
 .../modules/ROOT/pages/jcache-component.adoc       |   6 +-
 .../modules/ROOT/pages/jclouds-component.adoc      |   6 +-
 .../modules/ROOT/pages/jcr-component.adoc          |   6 +-
 .../modules/ROOT/pages/jdbc-component.adoc         |   6 +-
 .../modules/ROOT/pages/jetty-component.adoc        |   6 +-
 .../modules/ROOT/pages/jgroups-component.adoc      |   6 +-
 .../modules/ROOT/pages/jgroups-raft-component.adoc |   6 +-
 .../modules/ROOT/pages/jing-component.adoc         |   6 +-
 .../modules/ROOT/pages/jira-component.adoc         |   6 +-
 .../modules/ROOT/pages/jms-component.adoc          |   6 +-
 .../modules/ROOT/pages/jmx-component.adoc          |   6 +-
 .../modules/ROOT/pages/jolt-component.adoc         |   6 +-
 .../modules/ROOT/pages/jooq-component.adoc         |   6 +-
 .../modules/ROOT/pages/jpa-component.adoc          |   6 +-
 .../ROOT/pages/json-validator-component.adoc       |   6 +-
 .../modules/ROOT/pages/jt400-component.adoc        |   6 +-
 .../modules/ROOT/pages/kafka-component.adoc        |   6 +-
 .../pages/kubernetes-config-maps-component.adoc    |   6 +-
 .../pages/kubernetes-deployments-component.adoc    |   6 +-
 .../ROOT/pages/kubernetes-hpa-component.adoc       |   6 +-
 .../ROOT/pages/kubernetes-job-component.adoc       |   6 +-
 .../pages/kubernetes-namespaces-component.adoc     |   6 +-
 .../ROOT/pages/kubernetes-nodes-component.adoc     |   6 +-
 ...rnetes-persistent-volumes-claims-component.adoc |   6 +-
 .../kubernetes-persistent-volumes-component.adoc   |   6 +-
 .../ROOT/pages/kubernetes-pods-component.adoc      |   6 +-
 ...bernetes-replication-controllers-component.adoc |   6 +-
 .../kubernetes-resources-quota-component.adoc      |   6 +-
 .../ROOT/pages/kubernetes-secrets-component.adoc   |   6 +-
 .../kubernetes-service-accounts-component.adoc     |   6 +-
 .../ROOT/pages/kubernetes-services-component.adoc  |   6 +-
 .../modules/ROOT/pages/language-component.adoc     |   6 +-
 .../modules/ROOT/pages/ldap-component.adoc         |   6 +-
 .../modules/ROOT/pages/ldif-component.adoc         |   6 +-
 .../modules/ROOT/pages/linkedin-component.adoc     |   6 +-
 .../modules/ROOT/pages/log-component.adoc          |   6 +-
 .../modules/ROOT/pages/lpr-component.adoc          |   6 +-
 .../modules/ROOT/pages/lucene-component.adoc       |   6 +-
 .../modules/ROOT/pages/lumberjack-component.adoc   |   6 +-
 .../modules/ROOT/pages/mail-component.adoc         |   6 +-
 .../modules/ROOT/pages/master-component.adoc       |   6 +-
 .../modules/ROOT/pages/metrics-component.adoc      |   6 +-
 .../modules/ROOT/pages/micrometer-component.adoc   |   6 +-
 .../modules/ROOT/pages/milo-client-component.adoc  |   6 +-
 .../modules/ROOT/pages/milo-server-component.adoc  |   6 +-
 .../modules/ROOT/pages/mina-component.adoc         |   6 +-
 .../modules/ROOT/pages/mllp-component.adoc         |   6 +-
 .../modules/ROOT/pages/mock-component.adoc         |   3 +-
 .../modules/ROOT/pages/mongodb-component.adoc      |   6 +-
 .../ROOT/pages/mongodb-gridfs-component.adoc       |   6 +-
 .../modules/ROOT/pages/mqtt-component.adoc         |   6 +-
 .../modules/ROOT/pages/msv-component.adoc          |   6 +-
 .../modules/ROOT/pages/mustache-component.adoc     |   6 +-
 .../modules/ROOT/pages/mvel-component.adoc         |   6 +-
 .../modules/ROOT/pages/mvel-language.adoc          |   3 +-
 .../modules/ROOT/pages/mybatis-bean-component.adoc |   6 +-
 .../modules/ROOT/pages/mybatis-component.adoc      |   6 +-
 .../modules/ROOT/pages/nagios-component.adoc       |   6 +-
 .../modules/ROOT/pages/nats-component.adoc         |   6 +-
 .../modules/ROOT/pages/netty-component.adoc        |   6 +-
 .../modules/ROOT/pages/netty-http-component.adoc   |   6 +-
 .../modules/ROOT/pages/nsq-component.adoc          |   6 +-
 .../modules/ROOT/pages/olingo2-component.adoc      |   6 +-
 .../modules/ROOT/pages/olingo4-component.adoc      |   6 +-
 .../pages/openshift-build-configs-component.adoc   |   3 +-
 .../ROOT/pages/openshift-builds-component.adoc     |   3 +-
 .../ROOT/pages/openstack-cinder-component.adoc     |   6 +-
 .../ROOT/pages/openstack-glance-component.adoc     |   6 +-
 .../ROOT/pages/openstack-keystone-component.adoc   |   6 +-
 .../ROOT/pages/openstack-neutron-component.adoc    |   6 +-
 .../ROOT/pages/openstack-nova-component.adoc       |   6 +-
 .../ROOT/pages/openstack-swift-component.adoc      |   6 +-
 .../modules/ROOT/pages/optaplanner-component.adoc  |   6 +-
 .../modules/ROOT/pages/paho-component.adoc         |   6 +-
 .../modules/ROOT/pages/paxlogging-component.adoc   |   3 +-
 .../modules/ROOT/pages/pdf-component.adoc          |   6 +-
 .../ROOT/pages/pg-replication-slot-component.adoc  |   6 +-
 .../modules/ROOT/pages/pgevent-component.adoc      |   6 +-
 .../modules/ROOT/pages/properties-component.adoc   |   6 +-
 .../modules/ROOT/pages/pubnub-component.adoc       |   6 +-
 .../modules/ROOT/pages/pulsar-component.adoc       |   8 +-
 .../modules/ROOT/pages/quartz-component.adoc       |   6 +-
 .../modules/ROOT/pages/quickfix-component.adoc     |   6 +-
 .../modules/ROOT/pages/rabbitmq-component.adoc     |   6 +-
 .../ROOT/pages/reactive-streams-component.adoc     |   6 +-
 .../modules/ROOT/pages/ref-component.adoc          |   6 +-
 .../modules/ROOT/pages/rest-api-component.adoc     |   6 +-
 .../modules/ROOT/pages/rest-component.adoc         |   6 +-
 .../modules/ROOT/pages/rest-swagger-component.adoc |   6 +-
 .../modules/ROOT/pages/restlet-component.adoc      |   6 +-
 .../modules/ROOT/pages/rss-component.adoc          |   6 +-
 .../modules/ROOT/pages/rss-dataformat.adoc         |   3 +-
 .../modules/ROOT/pages/saga-component.adoc         |   6 +-
 .../modules/ROOT/pages/salesforce-component.adoc   |   6 +-
 .../ROOT/pages/sap-netweaver-component.adoc        |   6 +-
 .../modules/ROOT/pages/scheduler-component.adoc    |   6 +-
 .../modules/ROOT/pages/schematron-component.adoc   |   6 +-
 .../modules/ROOT/pages/scp-component.adoc          |   6 +-
 .../modules/ROOT/pages/seda-component.adoc         |   6 +-
 .../modules/ROOT/pages/service-component.adoc      |   6 +-
 .../modules/ROOT/pages/servicenow-component.adoc   |   6 +-
 .../modules/ROOT/pages/servlet-component.adoc      |   6 +-
 .../modules/ROOT/pages/sftp-component.adoc         |   3 +-
 .../modules/ROOT/pages/sip-component.adoc          |   6 +-
 .../modules/ROOT/pages/sjms-batch-component.adoc   |   6 +-
 .../modules/ROOT/pages/sjms-component.adoc         |   6 +-
 .../modules/ROOT/pages/sjms2-component.adoc        |   6 +-
 .../modules/ROOT/pages/slack-component.adoc        |   6 +-
 .../modules/ROOT/pages/smpp-component.adoc         |   6 +-
 .../modules/ROOT/pages/snmp-component.adoc         |   6 +-
 .../modules/ROOT/pages/solr-component.adoc         |   6 +-
 .../modules/ROOT/pages/soroush-component.adoc      |   6 +-
 .../modules/ROOT/pages/spark-component.adoc        |   6 +-
 .../modules/ROOT/pages/spark-rest-component.adoc   |   3 +-
 .../modules/ROOT/pages/splunk-component.adoc       |   6 +-
 .../modules/ROOT/pages/spring-batch-component.adoc |   6 +-
 .../modules/ROOT/pages/spring-event-component.adoc |   6 +-
 .../ROOT/pages/spring-integration-component.adoc   |   6 +-
 .../modules/ROOT/pages/spring-ldap-component.adoc  |   6 +-
 .../modules/ROOT/pages/spring-redis-component.adoc |   6 +-
 .../modules/ROOT/pages/spring-ws-component.adoc    |   6 +-
 .../modules/ROOT/pages/sql-component.adoc          |   6 +-
 .../modules/ROOT/pages/sql-stored-component.adoc   |   6 +-
 .../modules/ROOT/pages/ssh-component.adoc          |   6 +-
 .../modules/ROOT/pages/stax-component.adoc         |   6 +-
 .../modules/ROOT/pages/stomp-component.adoc        |   6 +-
 .../modules/ROOT/pages/stream-component.adoc       |   6 +-
 .../ROOT/pages/string-template-component.adoc      |   6 +-
 .../modules/ROOT/pages/stub-component.adoc         |   6 +-
 .../modules/ROOT/pages/telegram-component.adoc     |   6 +-
 .../modules/ROOT/pages/thrift-component.adoc       |   6 +-
 .../modules/ROOT/pages/thrift-dataformat.adoc      |   3 +-
 .../modules/ROOT/pages/tika-component.adoc         |   6 +-
 .../modules/ROOT/pages/timer-component.adoc        |   6 +-
 .../modules/ROOT/pages/twilio-component.adoc       |   6 +-
 .../pages/twitter-directmessage-component.adoc     |   6 +-
 .../ROOT/pages/twitter-search-component.adoc       |   6 +-
 .../ROOT/pages/twitter-timeline-component.adoc     |   6 +-
 .../modules/ROOT/pages/undertow-component.adoc     |   6 +-
 .../modules/ROOT/pages/validator-component.adoc    |   6 +-
 .../modules/ROOT/pages/velocity-component.adoc     |   6 +-
 .../modules/ROOT/pages/vertx-component.adoc        |   6 +-
 .../modules/ROOT/pages/vm-component.adoc           |   6 +-
 .../modules/ROOT/pages/weather-component.adoc      |   6 +-
 .../modules/ROOT/pages/web3j-component.adoc        |   6 +-
 .../modules/ROOT/pages/webhook-component.adoc      |   6 +-
 .../modules/ROOT/pages/websocket-component.adoc    |   6 +-
 .../ROOT/pages/websocket-jsr356-component.adoc     |   6 +-
 .../modules/ROOT/pages/wordpress-component.adoc    |   6 +-
 .../modules/ROOT/pages/xchange-component.adoc      |   6 +-
 .../modules/ROOT/pages/xmlsecurity-component.adoc  |   6 +-
 .../modules/ROOT/pages/xmpp-component.adoc         |   6 +-
 .../modules/ROOT/pages/xquery-component.adoc       |   6 +-
 .../modules/ROOT/pages/xquery-language.adoc        |   3 +-
 .../modules/ROOT/pages/xslt-component.adoc         |   6 +-
 .../modules/ROOT/pages/yammer-component.adoc       |   6 +-
 .../modules/ROOT/pages/zendesk-component.adoc      |   6 +-
 .../modules/ROOT/pages/zookeeper-component.adoc    |   6 +-
 .../ROOT/pages/zookeeper-master-component.adoc     |   6 +-
 parent/pom.xml                                     |   6 +-
 .../springboot/ActiveMQComponentConfiguration.java |  15 --
 .../ahc/springboot/AhcComponentConfiguration.java  |  15 --
 .../ws/springboot/WsComponentConfiguration.java    |  15 --
 .../springboot/AMQPComponentConfiguration.java     |  15 --
 .../springboot/ApnsComponentConfiguration.java     |  15 --
 .../as2/springboot/AS2ComponentConfiguration.java  |  15 --
 .../springboot/AsteriskComponentConfiguration.java |  15 --
 .../springboot/AtmosComponentConfiguration.java    |  15 --
 .../WebsocketComponentConfiguration.java           |  15 --
 .../springboot/AtomComponentConfiguration.java     |  15 --
 .../AtomixMapComponentConfiguration.java           |  15 --
 .../AtomixMessagingComponentConfiguration.java     |  15 --
 .../AtomixMultiMapComponentConfiguration.java      |  15 --
 .../AtomixQueueComponentConfiguration.java         |  15 --
 .../AtomixSetComponentConfiguration.java           |  15 --
 .../AtomixValueComponentConfiguration.java         |  15 --
 .../springboot/AvroComponentConfiguration.java     |  15 --
 .../cw/springboot/CwComponentConfiguration.java    |  15 --
 .../ddb/springboot/DdbComponentConfiguration.java  |  15 --
 .../DdbStreamComponentConfiguration.java           |  15 --
 .../ec2/springboot/EC2ComponentConfiguration.java  |  15 --
 .../ecs/springboot/ECSComponentConfiguration.java  |  15 --
 .../eks/springboot/EKSComponentConfiguration.java  |  15 --
 .../iam/springboot/IAMComponentConfiguration.java  |  15 --
 .../KinesisFirehoseComponentConfiguration.java     |  15 --
 .../springboot/KinesisComponentConfiguration.java  |  15 --
 .../kms/springboot/KMSComponentConfiguration.java  |  15 --
 .../springboot/LambdaComponentConfiguration.java   |  15 --
 .../mq/springboot/MQComponentConfiguration.java    |  15 --
 .../msk/springboot/MSKComponentConfiguration.java  |  15 --
 .../s3/springboot/S3ComponentConfiguration.java    |  15 --
 .../sdb/springboot/SdbComponentConfiguration.java  |  15 --
 .../ses/springboot/SesComponentConfiguration.java  |  15 --
 .../sns/springboot/SnsComponentConfiguration.java  |  15 --
 .../sqs/springboot/SqsComponentConfiguration.java  |  15 --
 .../swf/springboot/SWFComponentConfiguration.java  |  15 --
 .../BlobServiceComponentConfiguration.java         |  15 --
 .../QueueServiceComponentConfiguration.java        |  15 --
 .../springboot/BeanComponentConfiguration.java     |  15 --
 .../springboot/ClassComponentConfiguration.java    |  15 --
 .../BeanValidatorComponentConfiguration.java       |  15 --
 .../BeanstalkComponentConfiguration.java           |  15 --
 .../springboot/BonitaComponentConfiguration.java   |  15 --
 .../box/springboot/BoxComponentConfiguration.java  |  15 --
 .../BraintreeComponentConfiguration.java           |  15 --
 .../springboot/BrowseComponentConfiguration.java   |  15 --
 .../CaffeineCacheComponentConfiguration.java       |  15 --
 .../CaffeineLoadCacheComponentConfiguration.java   |  15 --
 .../CassandraComponentConfiguration.java           |  15 --
 .../ChatScriptComponentConfiguration.java          |  15 --
 .../springboot/ChunkComponentConfiguration.java    |  15 --
 .../cm/springboot/CMComponentConfiguration.java    |  15 --
 .../springboot/CMISComponentConfiguration.java     |  15 --
 .../springboot/CoAPComponentConfiguration.java     |  15 --
 .../springboot/CometdComponentConfiguration.java   |  15 --
 .../springboot/ConsulComponentConfiguration.java   |  15 --
 .../ControlBusComponentConfiguration.java          |  15 --
 .../springboot/CordaComponentConfiguration.java    |  15 --
 .../CouchbaseComponentConfiguration.java           |  15 --
 .../springboot/CouchDbComponentConfiguration.java  |  15 --
 .../CryptoCmsComponentConfiguration.java           |  15 --
 .../DigitalSignatureComponentConfiguration.java    |  15 --
 .../springboot/CxfRsComponentConfiguration.java    |  15 --
 .../cxf/springboot/CxfComponentConfiguration.java  |  15 --
 .../DataFormatComponentConfiguration.java          |  15 --
 .../springboot/DataSetComponentConfiguration.java  |  15 --
 .../DataSetTestComponentConfiguration.java         |  15 --
 .../DigitalOceanComponentConfiguration.java        |  15 --
 .../springboot/DirectComponentConfiguration.java   |  15 --
 .../springboot/DirectVmComponentConfiguration.java |  15 --
 .../DisruptorComponentConfiguration.java           |  15 --
 .../DisruptorVmComponentConfiguration.java         |  15 --
 .../dns/springboot/DnsComponentConfiguration.java  |  15 --
 .../springboot/DockerComponentConfiguration.java   |  15 --
 .../springboot/DozerComponentConfiguration.java    |  15 --
 .../springboot/DrillComponentConfiguration.java    |  15 --
 .../springboot/DropboxComponentConfiguration.java  |  15 --
 .../springboot/EhcacheComponentConfiguration.java  |  15 --
 .../ElasticsearchComponentConfiguration.java       |  15 --
 .../springboot/ElsqlComponentConfiguration.java    |  15 --
 .../springboot/EtcdComponentConfiguration.java     |  15 --
 .../springboot/ExecComponentConfiguration.java     |  15 --
 .../springboot/FacebookComponentConfiguration.java |  15 --
 .../springboot/FhirComponentConfiguration.java     |  15 --
 .../springboot/FileComponentConfiguration.java     |  15 --
 .../FileWatchComponentConfiguration.java           |  15 --
 .../springboot/FlatpackComponentConfiguration.java |  15 --
 .../springboot/FlinkComponentConfiguration.java    |  15 --
 .../fop/springboot/FopComponentConfiguration.java  |  15 --
 .../FreemarkerComponentConfiguration.java          |  15 --
 .../springboot/FtpComponentConfiguration.java      |  15 --
 .../springboot/FtpsComponentConfiguration.java     |  15 --
 .../springboot/SftpComponentConfiguration.java     |  15 --
 .../springboot/GangliaComponentConfiguration.java  |  15 --
 .../springboot/GeoCoderComponentConfiguration.java |  15 --
 .../git/springboot/GitComponentConfiguration.java  |  15 --
 .../springboot/GitHubComponentConfiguration.java   |  15 --
 .../GoogleBigQueryComponentConfiguration.java      |  15 --
 .../GoogleBigQuerySQLComponentConfiguration.java   |  15 --
 .../GoogleCalendarComponentConfiguration.java      |  15 --
 ...GoogleCalendarStreamComponentConfiguration.java |  15 --
 .../GoogleDriveComponentConfiguration.java         |  15 --
 .../GoogleMailComponentConfiguration.java          |  15 --
 .../GoogleMailStreamComponentConfiguration.java    |  15 --
 .../GooglePubsubComponentConfiguration.java        |  15 --
 .../GoogleSheetsComponentConfiguration.java        |  15 --
 .../GoogleSheetsStreamComponentConfiguration.java  |  15 --
 .../springboot/GoraComponentConfiguration.java     |  15 --
 .../springboot/GrpcComponentConfiguration.java     |  15 --
 .../GuavaEventBusComponentConfiguration.java       |  15 --
 ...azelcastAtomicnumberComponentConfiguration.java |  15 --
 .../HazelcastInstanceComponentConfiguration.java   |  15 --
 .../HazelcastListComponentConfiguration.java       |  15 --
 .../HazelcastMapComponentConfiguration.java        |  15 --
 .../HazelcastMultimapComponentConfiguration.java   |  15 --
 .../HazelcastQueueComponentConfiguration.java      |  15 --
 ...zelcastReplicatedmapComponentConfiguration.java |  15 --
 .../HazelcastRingbufferComponentConfiguration.java |  15 --
 .../HazelcastSedaComponentConfiguration.java       |  15 --
 .../HazelcastSetComponentConfiguration.java        |  15 --
 .../HazelcastTopicComponentConfiguration.java      |  15 --
 .../springboot/HBaseComponentConfiguration.java    |  15 --
 .../springboot/HdfsComponentConfiguration.java     |  15 --
 .../springboot/HipchatComponentConfiguration.java  |  15 --
 .../springboot/HttpComponentConfiguration.java     |  15 --
 .../springboot/ClientComponentConfiguration.java   |  15 --
 .../springboot/ServerComponentConfiguration.java   |  15 --
 .../IgniteCacheComponentConfiguration.java         |  15 --
 .../IgniteComputeComponentConfiguration.java       |  15 --
 .../IgniteEventsComponentConfiguration.java        |  15 --
 .../IgniteIdGenComponentConfiguration.java         |  15 --
 .../IgniteMessagingComponentConfiguration.java     |  15 --
 .../IgniteQueueComponentConfiguration.java         |  15 --
 .../IgniteSetComponentConfiguration.java           |  15 --
 .../InfinispanComponentConfiguration.java          |  15 --
 .../springboot/InfluxDbComponentConfiguration.java |  15 --
 .../springboot/IOTAComponentConfiguration.java     |  15 --
 .../springboot/IPFSComponentConfiguration.java     |  15 --
 .../irc/springboot/IrcComponentConfiguration.java  |  15 --
 .../springboot/IronMQComponentConfiguration.java   |  15 --
 .../springboot/JBPMComponentConfiguration.java     |  15 --
 .../springboot/JCacheComponentConfiguration.java   |  15 --
 .../springboot/JcloudsComponentConfiguration.java  |  15 --
 .../jcr/springboot/JcrComponentConfiguration.java  |  15 --
 .../springboot/JdbcComponentConfiguration.java     |  15 --
 .../JettyHttpComponentConfiguration9.java          |  15 --
 .../JGroupsRaftComponentConfiguration.java         |  15 --
 .../springboot/JGroupsComponentConfiguration.java  |  15 --
 .../springboot/JingComponentConfiguration.java     |  15 --
 .../springboot/JiraComponentConfiguration.java     |  15 --
 .../jms/springboot/JmsComponentConfiguration.java  |  15 --
 .../jmx/springboot/JMXComponentConfiguration.java  |  15 --
 .../springboot/JoltComponentConfiguration.java     |  15 --
 .../springboot/JooqComponentConfiguration.java     |  15 --
 .../jpa/springboot/JpaComponentConfiguration.java  |  15 --
 .../scp/springboot/ScpComponentConfiguration.java  |  15 --
 .../JsonValidatorComponentConfiguration.java       |  15 --
 .../springboot/Jt400ComponentConfiguration.java    |  15 --
 .../springboot/KafkaComponentConfiguration.java    |  15 --
 ...KubernetesConfigMapsComponentConfiguration.java |  15 --
 ...ubernetesDeploymentsComponentConfiguration.java |  15 --
 .../KubernetesHPAComponentConfiguration.java       |  15 --
 .../KubernetesJobComponentConfiguration.java       |  15 --
 ...KubernetesNamespacesComponentConfiguration.java |  15 --
 .../KubernetesNodesComponentConfiguration.java     |  15 --
 ...tesPersistentVolumesComponentConfiguration.java |  15 --
 ...sistentVolumesClaimsComponentConfiguration.java |  15 --
 .../KubernetesPodsComponentConfiguration.java      |  15 --
 ...plicationControllersComponentConfiguration.java |  15 --
 ...rnetesResourcesQuotaComponentConfiguration.java |  15 --
 .../KubernetesSecretsComponentConfiguration.java   |  15 --
 ...netesServiceAccountsComponentConfiguration.java |  15 --
 .../KubernetesServicesComponentConfiguration.java  |  15 --
 ...penshiftBuildConfigsComponentConfiguration.java |  15 --
 .../OpenshiftBuildsComponentConfiguration.java     |  15 --
 .../springboot/LanguageComponentConfiguration.java |  15 --
 .../springboot/LdapComponentConfiguration.java     |  15 --
 .../springboot/LdifComponentConfiguration.java     |  15 --
 .../springboot/LinkedInComponentConfiguration.java |  15 --
 .../log/springboot/LogComponentConfiguration.java  |  15 --
 .../springboot/LuceneComponentConfiguration.java   |  15 --
 .../LumberjackComponentConfiguration.java          |  15 --
 .../springboot/MailComponentConfiguration.java     |  15 --
 .../springboot/MasterComponentConfiguration.java   |  15 --
 .../springboot/MetricsComponentConfiguration.java  |  15 --
 .../MicrometerComponentConfiguration.java          |  15 --
 .../MiloClientComponentConfiguration.java          |  15 --
 .../MiloServerComponentConfiguration.java          |  15 --
 .../springboot/Mina2ComponentConfiguration.java    |  15 --
 .../springboot/MllpComponentConfiguration.java     |  15 --
 .../springboot/MockComponentConfiguration.java     |  15 --
 .../springboot/GridFsComponentConfiguration.java   |  15 --
 .../springboot/MongoDbComponentConfiguration.java  |  15 --
 .../springboot/MQTTComponentConfiguration.java     |  15 --
 .../msv/springboot/MsvComponentConfiguration.java  |  15 --
 .../springboot/MustacheComponentConfiguration.java |  15 --
 .../springboot/MvelComponentConfiguration.java     |  15 --
 .../MyBatisBeanComponentConfiguration.java         |  15 --
 .../springboot/MyBatisComponentConfiguration.java  |  15 --
 .../springboot/NagiosComponentConfiguration.java   |  15 --
 .../springboot/NatsComponentConfiguration.java     |  15 --
 .../NettyHttpComponentConfiguration.java           |  15 --
 .../springboot/NettyComponentConfiguration.java    |  15 --
 .../nsq/springboot/NsqComponentConfiguration.java  |  15 --
 .../springboot/Olingo2ComponentConfiguration.java  |  15 --
 .../springboot/Olingo4ComponentConfiguration.java  |  15 --
 .../springboot/CinderComponentConfiguration.java   |  15 --
 .../springboot/GlanceComponentConfiguration.java   |  15 --
 .../springboot/KeystoneComponentConfiguration.java |  15 --
 .../springboot/NeutronComponentConfiguration.java  |  15 --
 .../springboot/NovaComponentConfiguration.java     |  15 --
 .../springboot/SwiftComponentConfiguration.java    |  15 --
 .../OptaPlannerComponentConfiguration.java         |  15 --
 .../springboot/PahoComponentConfiguration.java     |  15 --
 .../pdf/springboot/PdfComponentConfiguration.java  |  15 --
 .../PgReplicationSlotComponentConfiguration.java   |  15 --
 .../springboot/PgEventComponentConfiguration.java  |  15 --
 .../springboot/PrinterComponentConfiguration.java  |  15 --
 .../PropertiesComponentConfiguration.java          |  15 --
 .../springboot/PubNubComponentConfiguration.java   |  15 --
 .../springboot/PulsarComponentConfiguration.java   |  15 --
 .../springboot/QuartzComponentConfiguration.java   |  15 --
 .../QuickfixjComponentConfiguration.java           |  15 --
 .../springboot/RabbitMQComponentConfiguration.java |  15 --
 .../ReactiveStreamsComponentConfiguration.java     |  15 --
 .../ref/springboot/RefComponentConfiguration.java  |  15 --
 .../springboot/RestApiComponentConfiguration.java  |  15 --
 .../springboot/RestComponentConfiguration.java     |  15 --
 .../RestSwaggerComponentConfiguration.java         |  15 --
 .../springboot/RestletComponentConfiguration.java  |  15 --
 .../rss/springboot/RssComponentConfiguration.java  |  15 --
 .../springboot/SagaComponentConfiguration.java     |  15 --
 .../SalesforceComponentConfiguration.java          |  15 --
 .../NetWeaverComponentConfiguration.java           |  15 --
 .../springboot/XQueryComponentConfiguration.java   |  15 --
 .../SchedulerComponentConfiguration.java           |  15 --
 .../SchematronComponentConfiguration.java          |  15 --
 .../springboot/SedaComponentConfiguration.java     |  15 --
 .../springboot/ServiceComponentConfiguration.java  |  15 --
 .../ServiceNowComponentConfiguration.java          |  15 --
 .../springboot/ServletComponentConfiguration.java  |  15 --
 .../sip/springboot/SipComponentConfiguration.java  |  15 --
 .../SjmsBatchComponentConfiguration.java           |  15 --
 .../springboot/SjmsComponentConfiguration.java     |  15 --
 .../springboot/Sjms2ComponentConfiguration.java    |  15 --
 .../springboot/SlackComponentConfiguration.java    |  15 --
 .../springboot/SmppComponentConfiguration.java     |  15 --
 .../springboot/SnmpComponentConfiguration.java     |  15 --
 .../springboot/SolrComponentConfiguration.java     |  15 --
 .../SoroushBotComponentConfiguration.java          |  15 --
 .../springboot/SparkComponentConfiguration.java    |  15 --
 .../springboot/SplunkComponentConfiguration.java   |  15 --
 .../SpringBatchComponentConfiguration.java         |  15 --
 .../SpringIntegrationComponentConfiguration.java   |  15 --
 .../SpringLdapComponentConfiguration.java          |  15 --
 .../springboot/RedisComponentConfiguration.java    |  15 --
 .../springboot/EventComponentConfiguration.java    |  15 --
 .../SpringWebserviceComponentConfiguration.java    |  15 --
 .../sql/springboot/SqlComponentConfiguration.java  |  15 --
 .../SqlStoredComponentConfiguration.java           |  15 --
 .../ssh/springboot/SshComponentConfiguration.java  |  15 --
 .../springboot/StAXComponentConfiguration.java     |  15 --
 .../springboot/StompComponentConfiguration.java    |  15 --
 .../springboot/StreamComponentConfiguration.java   |  15 --
 .../StringTemplateComponentConfiguration.java      |  15 --
 .../springboot/StubComponentConfiguration.java     |  15 --
 .../springboot/TelegramComponentConfiguration.java |  15 --
 .../springboot/ThriftComponentConfiguration.java   |  15 --
 .../springboot/TikaComponentConfiguration.java     |  15 --
 .../springboot/TimerComponentConfiguration.java    |  15 --
 .../springboot/TwilioComponentConfiguration.java   |  15 --
 ...TwitterDirectMessageComponentConfiguration.java |  15 --
 .../TwitterSearchComponentConfiguration.java       |  15 --
 .../TwitterTimelineComponentConfiguration.java     |  15 --
 .../springboot/UndertowComponentConfiguration.java |  15 --
 .../ValidatorComponentConfiguration.java           |  15 --
 .../springboot/VelocityComponentConfiguration.java |  15 --
 .../springboot/VertxComponentConfiguration.java    |  15 --
 .../vm/springboot/VmComponentConfiguration.java    |  15 --
 .../springboot/WeatherComponentConfiguration.java  |  15 --
 .../springboot/Web3jComponentConfiguration.java    |  15 --
 .../springboot/WebhookComponentConfiguration.java  |  15 --
 .../JSR356WebSocketComponentConfiguration.java     |  15 --
 .../WebsocketComponentConfiguration.java           |  15 --
 .../WordpressComponentConfiguration.java           |  15 --
 .../springboot/XChangeComponentConfiguration.java  |  15 --
 .../XmlSignatureComponentConfiguration.java        |  15 --
 .../springboot/XmppComponentConfiguration.java     |  15 --
 .../springboot/XsltComponentConfiguration.java     |  15 --
 .../springboot/YammerComponentConfiguration.java   |  15 --
 .../springboot/ZendeskComponentConfiguration.java  |  15 --
 .../springboot/MasterComponentConfiguration.java   |  15 --
 .../ZooKeeperComponentConfiguration.java           |  15 --
 .../camel-spring-boot-dependencies/pom.xml         |  56 +++---
 pom.xml                                            |   2 +-
 .../tools/apt/AbstractTypeConverterGenerator.java  |   7 +-
 .../camel/tools/apt/ConstantProviderProcessor.java | 130 +++++++++++++
 .../apt/CoreEipAnnotationProcessorHelper.java      |  80 ++++++--
 .../camel/tools/apt/ModelAnnotationProcessor.java  |  62 ++++--
 .../tools/apt/PropertyPlaceholderGenerator.java    | 209 +++++++++++++++++++++
 .../tools/apt/SpringAnnotationProcessorHelper.java |   3 +-
 .../services/javax.annotation.processing.Processor |   1 +
 ...ubServiceFactory.java => ConstantProvider.java} |   2 +-
 931 files changed, 1901 insertions(+), 7075 deletions(-)
 copy core/camel-api/src/main/java/org/apache/camel/spi/{NamespaceAware.java => PropertyPlaceholderConfigurer.java} (53%)
 create mode 100644 core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurer.java
 copy components/camel-reactive-executor-vertx/src/test/java/org/apache/camel/reactive/SimpleMockTest.java => core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockPlaceholderTest.java (76%)
 delete mode 100644 core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java
 create mode 100644 tooling/apt/src/main/java/org/apache/camel/tools/apt/ConstantProviderProcessor.java
 create mode 100644 tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java
 copy tooling/spi-annotations/src/main/java/org/apache/camel/spi/annotations/{SubServiceFactory.java => ConstantProvider.java} (96%)

Reply | Threaded
Open this post in threaded view
|

[camel] 01/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
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.git

commit a1594cb7947ac957303b55a340c477652b56e645
Author: Claus Ibsen <[hidden email]>
AuthorDate: Mon Aug 12 07:18:47 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../org/apache/camel/model/FromDefinition.java     |  26 ++++-
 .../java/org/apache/camel/model/LogDefinition.java |  31 +++++-
 .../camel/model/ProcessorDefinitionHelper.java     | 111 ++++++++++-----------
 .../camel/model/PropertyPlaceholderAware.java      |  38 +++++++
 .../java/org/apache/camel/model/ToDefinition.java  |  56 ++++++++++-
 ...ockTest.java => SimpleMockPlaceholderTest.java} |  23 ++++-
 .../org/apache/camel/processor/SimpleMockTest.java |   2 -
 .../camel/support/PropertyPlaceholdersHelper.java  |   2 +
 8 files changed, 221 insertions(+), 68 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
index e1faba2..6d61c6d 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
@@ -16,12 +16,17 @@
  */
 package org.apache.camel.model;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.builder.EndpointConsumerBuilder;
 import org.apache.camel.spi.Metadata;
@@ -32,7 +37,7 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "eip,endpoint,routing")
 @XmlRootElement(name = "from")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition> implements EndpointRequiredDefinition {
+public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition> implements PropertyPlaceholderAware, EndpointRequiredDefinition {
     @XmlAttribute @Metadata(required = true)
     private String uri;
     @XmlTransient
@@ -40,18 +45,28 @@ public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition>
     @XmlTransient
     private EndpointConsumerBuilder endpointConsumerBuilder;
 
+    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
+    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
+
     public FromDefinition() {
+        readPlaceholders.put("id", this::getId);
+        readPlaceholders.put("uri", this::getUri);
+        writePlaceholders.put("id", this::setId);
+        writePlaceholders.put("uri", this::setUri);
     }
 
     public FromDefinition(String uri) {
+        this();
         setUri(uri);
     }
 
     public FromDefinition(Endpoint endpoint) {
+        this();
         setEndpoint(endpoint);
     }
 
     public FromDefinition(EndpointConsumerBuilder endpointConsumerBuilder) {
+        this();
         setEndpointConsumerBuilder(endpointConsumerBuilder);
     }
 
@@ -135,4 +150,13 @@ public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition>
         this.uri = null;
     }
 
+    @Override
+    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
+        return readPlaceholders;
+    }
+
+    @Override
+    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        return writePlaceholders;
+    }
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
index c8e1b0a..62281e5 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
@@ -16,12 +16,17 @@
  */
 package org.apache.camel.model;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.spi.Metadata;
 import org.slf4j.Logger;
@@ -32,7 +37,7 @@ import org.slf4j.Logger;
 @Metadata(label = "eip,configuration")
 @XmlRootElement(name = "log")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class LogDefinition extends NoOutputDefinition<LogDefinition> {
+public class LogDefinition extends NoOutputDefinition<LogDefinition> implements PropertyPlaceholderAware {
 
     @XmlAttribute(required = true)
     private String message;
@@ -47,10 +52,24 @@ public class LogDefinition extends NoOutputDefinition<LogDefinition> {
     @XmlTransient
     private Logger logger;
 
+    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
+    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
+
     public LogDefinition() {
+        readPlaceholders.put("id", this::getId);
+        readPlaceholders.put("message", this::getMessage);
+        readPlaceholders.put("logName", this::getLogName);
+        readPlaceholders.put("marker", this::getMarker);
+        readPlaceholders.put("loggerRef", this::getLoggerRef);
+        writePlaceholders.put("id", this::setId);
+        writePlaceholders.put("message", this::setMessage);
+        writePlaceholders.put("logName", this::setLogName);
+        writePlaceholders.put("marker", this::setMarker);
+        writePlaceholders.put("loggerRef", this::setLoggerRef);
     }
 
     public LogDefinition(String message) {
+        this();
         this.message = message;
     }
 
@@ -136,4 +155,14 @@ public class LogDefinition extends NoOutputDefinition<LogDefinition> {
     public void setLogger(Logger logger) {
         this.logger = logger;
     }
+
+    @Override
+    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
+        return readPlaceholders;
+    }
+
+    @Override
+    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        return writePlaceholders;
+    }
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 420a7af..280965b 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -22,9 +22,12 @@ import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
 import javax.xml.namespace.QName;
 
 import org.apache.camel.CamelContext;
@@ -628,10 +631,31 @@ public final class ProcessorDefinitionHelper {
         return rc;
     }
 
-    private static void addRestoreAction(final Object target, final Map<String, Object> properties) {
-        addRestoreAction(null, target, properties);
+    private static void addRestoreAction(Map<String, Consumer<String>> writeProperties, final Map<String, String> properties) {
+        if (properties.isEmpty()) {
+            return;
+        }
+
+        RestoreAction restoreAction = CURRENT_RESTORE_ACTION.get();
+        if (restoreAction == null) {
+            return;
+        }
+
+        restoreAction.actions.add(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    properties.forEach((k, v) -> {
+                        writeProperties.get(k).accept(v);
+                    });
+                } catch (Exception e) {
+                    LOG.warn("Cannot restore definition properties. This exception is ignored.", e);
+                }
+            }
+        });
     }
-    
+
+    @Deprecated
     private static void addRestoreAction(final CamelContext context, final Object target, final Map<String, Object> properties) {
         if (properties.isEmpty()) {
             return;
@@ -681,70 +705,37 @@ public final class ProcessorDefinitionHelper {
     public static void resolvePropertyPlaceholders(CamelContext camelContext, Object definition) throws Exception {
         LOG.trace("Resolving property placeholders for: {}", definition);
 
+        // only do this for models that supports property placeholders
+        if (!(definition instanceof PropertyPlaceholderAware)) {
+            return;
+        }
+
+        PropertyPlaceholderAware ppa = (PropertyPlaceholderAware) definition;
+
         // find all getter/setter which we can use for property placeholders
-        Map<String, Object> properties = new HashMap<>();
-        IntrospectionSupport.getProperties(definition, properties, null);
+        Map<String, String> changedProperties = new HashMap<>();
+        Map<String, Supplier<String>> readProperties = ppa.getReadPropertyPlaceholderOptions(camelContext);
+        Map<String, Consumer<String>> writeProperties = ppa.getWritePropertyPlaceholderOptions(camelContext);
 
-        OtherAttributesAware other = null;
-        if (definition instanceof OtherAttributesAware) {
-            other = (OtherAttributesAware) definition;
-        }
-        // include additional properties which have the Camel placeholder QName
-        // and when the definition parameter is this (otherAttributes belong to this)
-        if (other != null && other.getOtherAttributes() != null) {
-            for (QName key : other.getOtherAttributes().keySet()) {
-                if (Constants.PLACEHOLDER_QNAME.equals(key.getNamespaceURI())) {
-                    String local = key.getLocalPart();
-                    Object value = other.getOtherAttributes().get(key);
-                    if (value instanceof String) {
-                        // enforce a properties component to be created if none existed
-                        camelContext.getPropertiesComponent(true);
-
-                        // value must be enclosed with placeholder tokens
-                        String s = (String) value;
-                        String prefixToken = PropertiesComponent.PREFIX_TOKEN;
-                        String suffixToken = PropertiesComponent.SUFFIX_TOKEN;
-
-                        if (!s.startsWith(prefixToken)) {
-                            s = prefixToken + s;
-                        }
-                        if (!s.endsWith(suffixToken)) {
-                            s = s + suffixToken;
-                        }
-                        value = s;
-                    }
-                    properties.put(local, value);
-                }
+        if (!readProperties.isEmpty()) {
+            if (LOG.isTraceEnabled()) {
+                LOG.trace("There are {} properties on: {}", readProperties.size(), definition);
             }
-        }
-
-        Map<String, Object> changedProperties = new HashMap<>();
-        if (!properties.isEmpty()) {
-            LOG.trace("There are {} properties on: {}", properties.size(), definition);
             // lookup and resolve properties for String based properties
-            for (Map.Entry<String, Object> entry : properties.entrySet()) {
-                // the name is always a String
+            for (Map.Entry<String, Supplier<String>> entry : readProperties.entrySet()) {
                 String name = entry.getKey();
-                Object value = entry.getValue();
-                if (value instanceof String) {
-                    // value must be a String, as a String is the key for a property placeholder
-                    String text = (String) value;
-                    text = camelContext.resolvePropertyPlaceholders(text);
-                    if (text != value) {
-                        // invoke setter as the text has changed
-                        boolean changed = IntrospectionSupport.setProperty(camelContext.getTypeConverter(), definition, name, text);
-                        if (!changed) {
-                            throw new IllegalArgumentException("No setter to set property: " + name + " to: " + text + " on: " + definition);
-                        }
-                        changedProperties.put(name, value);
-                        if (LOG.isDebugEnabled()) {
-                            LOG.debug("Changed property [{}] from: {} to: {}", name, value, text);
-                        }
+                String value = entry.getValue().get();
+                String text = camelContext.resolvePropertyPlaceholders(value);
+                if (!Objects.equals(text, value)) {
+                    writeProperties.get(name).accept(text);
+                    changedProperties.put(name, value);
+                    if (LOG.isDebugEnabled()) {
+                        LOG.debug("Changed property [{}] from: {} to: {}", name, value, text);
                     }
                 }
             }
         }
-        addRestoreAction(camelContext, definition, changedProperties);
+        addRestoreAction(writeProperties, changedProperties);
     }
 
     /**
@@ -758,7 +749,7 @@ public final class ProcessorDefinitionHelper {
      */
     public static void resolveKnownConstantFields(CamelContext camelContext, Object definition) throws Exception {
         LOG.trace("Resolving known fields for: {}", definition);
-
+/*
         // find all String getter/setter
         Map<String, Object> properties = new HashMap<>();
         IntrospectionSupport.getProperties(definition, properties, null);
@@ -793,7 +784,7 @@ public final class ProcessorDefinitionHelper {
                 }
             }
         }
-        addRestoreAction(definition, changedProperties);
+        addRestoreAction(camelContext, definition, changedProperties);*/
     }
 
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java b/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
new file mode 100644
index 0000000..9bc6b4a
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
@@ -0,0 +1,38 @@
+/**
+ * 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
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.model;
+
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+import org.apache.camel.CamelContext;
+
+public interface PropertyPlaceholderAware {
+
+    /**
+     * Gets the options on the model definition which supports property placeholders and can be resolved.
+     *
+     * @return key/values of options
+     */
+    Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext);
+
+    /**
+     * To update an existing property using the function with the ket/value and returning the changed value
+     */
+    Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext);
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
index 78828ad..3a0ba35 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
@@ -16,15 +16,22 @@
  */
 package org.apache.camel.model;
 
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.BiFunction;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.EndpointProducerBuilder;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.PropertiesComponent;
 
 /**
  * Sends the message to a static endpoint
@@ -32,22 +39,32 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "eip,endpoint,routing")
 @XmlRootElement(name = "to")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ToDefinition extends SendDefinition<ToDefinition> {
+public class ToDefinition extends SendDefinition<ToDefinition> implements PropertyPlaceholderAware {
     @XmlAttribute
     private ExchangePattern pattern;
 
+    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
+    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
+
     public ToDefinition() {
+        readPlaceholders.put("id", this::getId);
+        readPlaceholders.put("uri", this::getUri);
+        writePlaceholders.put("id", this::setId);
+        writePlaceholders.put("uri", this::setUri);
     }
 
     public ToDefinition(String uri) {
+        this();
         setUri(uri);
     }
 
     public ToDefinition(Endpoint endpoint) {
+        this();
         setEndpoint(endpoint);
     }
 
     public ToDefinition(EndpointProducerBuilder endpointDefinition) {
+        this();
         setEndpointProducerBuilder(endpointDefinition);
     }
 
@@ -88,4 +105,41 @@ public class ToDefinition extends SendDefinition<ToDefinition> {
         this.pattern = pattern;
     }
 
+    @Override
+    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(final CamelContext camelContext) {
+        if (getOtherAttributes() != null && !getOtherAttributes().isEmpty()) {
+            final Map<String, Supplier<String>> answer = new HashMap<>(readPlaceholders);
+            getOtherAttributes().forEach((k, v) -> {
+                if (Constants.PLACEHOLDER_QNAME.equals(k.getNamespaceURI())) {
+                    if (v instanceof String) {
+                        // enforce a properties component to be created if none existed
+                        camelContext.getPropertiesComponent(true);
+
+                        // value must be enclosed with placeholder tokens
+                        String s = (String) v;
+                        String prefixToken = PropertiesComponent.PREFIX_TOKEN;
+                        String suffixToken = PropertiesComponent.SUFFIX_TOKEN;
+
+                        if (!s.startsWith(prefixToken)) {
+                            s = prefixToken + s;
+                        }
+                        if (!s.endsWith(suffixToken)) {
+                            s = s + suffixToken;
+                        }
+                        final String value = s;
+                        answer.put(k.getLocalPart(), () -> value);
+                    }
+                }
+            });
+            return answer;
+        } else {
+            return readPlaceholders;
+        }
+    }
+
+    @Override
+    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        return writePlaceholders;
+    }
 }
+
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockPlaceholderTest.java
similarity index 71%
copy from core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java
copy to core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockPlaceholderTest.java
index b8bd72d..dd8b986 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockPlaceholderTest.java
@@ -16,14 +16,31 @@
  */
 package org.apache.camel.processor;
 
-import java.util.stream.Stream;
+import java.util.Properties;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.component.properties.PropertiesComponent;
 import org.junit.Test;
 
-public class SimpleMockTest extends ContextTestSupport {
+public class SimpleMockPlaceholderTest extends ContextTestSupport {
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+
+        Properties myProp = new Properties();
+        myProp.put("foo", "log:foo");
+        myProp.put("end", "result");
+
+        PropertiesComponent pc = new PropertiesComponent();
+        pc.setInitialProperties(myProp);
+        context.addComponent("properties", pc);
+
+        return context;
+    }
 
     @Test
     public void testSimple() throws Exception {
@@ -51,7 +68,7 @@ public class SimpleMockTest extends ContextTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").to("log:foo").to("log:bar").to("mock:result");
+                from("direct:start").to("{{foo}}").to("log:bar").to("mock:{{end}}");
             }
         };
     }
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java
index b8bd72d..015a692 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/SimpleMockTest.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.processor;
 
-import java.util.stream.Stream;
-
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java
index c895914..84e44e9 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java
@@ -45,6 +45,8 @@ public final class PropertyPlaceholdersHelper {
     public static void resolvePropertyPlaceholders(CamelContext camelContext, Object object) throws Exception {
         LOG.trace("Resolving property placeholders for: {}", object);
 
+        // TODO: Like ProcessorDefinitionHelper we want to avoid reflection
+
         // find all getter/setter which we can use for property placeholders
         Map<String, Object> properties = new HashMap<>();
         IntrospectionSupport.getProperties(object, properties, null);

Reply | Threaded
Open this post in threaded view
|

[camel] 02/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 1c2875720f826535ae2b7f111b657126fa00b6fa
Author: Claus Ibsen <[hidden email]>
AuthorDate: Mon Aug 12 15:02:46 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../model/DefinitionPropertiesProviderHelper.java  | 43 +++++++++++++++++
 .../org/apache/camel/model/FromDefinition.java     | 18 +------
 .../model/FromDefinitionPropertiesProvider.java    | 50 +++++++++++++++++++
 .../java/org/apache/camel/model/LogDefinition.java | 29 +----------
 .../model/LogDefinitionPropertiesProvider.java     | 56 ++++++++++++++++++++++
 .../camel/model/OptionalIdentifiedDefinition.java  |  2 +-
 .../camel/model/ProcessorDefinitionHelper.java     |  1 +
 .../camel/model/PropertyPlaceholderAware.java      | 12 ++++-
 ...re.java => ToDefinitionPropertiesProvider.java} | 34 ++++++++-----
 9 files changed, 186 insertions(+), 59 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
new file mode 100644
index 0000000..7da3ffd
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
@@ -0,0 +1,43 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Optional;
+import java.util.function.Function;
+
+public class DefinitionPropertiesProviderHelper {
+
+    private static final Map<Class, Function<Object, PropertyPlaceholderAware>> MAP;
+    static {
+        Map<Class, Function<Object, PropertyPlaceholderAware>> map = new HashMap<>();
+        map.put(FromDefinition.class, FromDefinitionPropertiesProvider::new);
+        map.put(LogDefinition.class, LogDefinitionPropertiesProvider::new);
+        map.put(ToDefinition.class, ToDefinitionPropertiesProvider::new);
+        MAP = map;
+    }
+
+    public static Optional<PropertyPlaceholderAware> provider(Object definition) {
+        Function<Object, PropertyPlaceholderAware> func = MAP.get(definition.getClass());
+        if (func != null) {
+            return Optional.of(func.apply(definition));
+        }
+        return Optional.empty();
+    }
+
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
index 6d61c6d..fb4d762 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
@@ -37,7 +37,7 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "eip,endpoint,routing")
 @XmlRootElement(name = "from")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition> implements PropertyPlaceholderAware, EndpointRequiredDefinition {
+public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition> implements EndpointRequiredDefinition {
     @XmlAttribute @Metadata(required = true)
     private String uri;
     @XmlTransient
@@ -45,14 +45,7 @@ public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition>
     @XmlTransient
     private EndpointConsumerBuilder endpointConsumerBuilder;
 
-    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
-    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
-
     public FromDefinition() {
-        readPlaceholders.put("id", this::getId);
-        readPlaceholders.put("uri", this::getUri);
-        writePlaceholders.put("id", this::setId);
-        writePlaceholders.put("uri", this::setUri);
     }
 
     public FromDefinition(String uri) {
@@ -150,13 +143,4 @@ public class FromDefinition extends OptionalIdentifiedDefinition<FromDefinition>
         this.uri = null;
     }
 
-    @Override
-    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        return readPlaceholders;
-    }
-
-    @Override
-    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        return writePlaceholders;
-    }
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinitionPropertiesProvider.java b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinitionPropertiesProvider.java
new file mode 100644
index 0000000..5953f84
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinitionPropertiesProvider.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+import org.apache.camel.CamelContext;
+
+public class FromDefinitionPropertiesProvider implements PropertyPlaceholderAware {
+
+    private final FromDefinition definition;
+    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
+    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
+
+    public FromDefinitionPropertiesProvider(Object obj) {
+        this.definition = (FromDefinition) obj;
+
+        readPlaceholders.put("id", definition::getId);
+        readPlaceholders.put("uri", definition::getUri);
+        writePlaceholders.put("id", definition::setId);
+        writePlaceholders.put("uri", definition::setUri);
+    }
+
+    @Override
+    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
+        return readPlaceholders;
+    }
+
+    @Override
+    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        return writePlaceholders;
+    }
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
index 62281e5..fb84545 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.model;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.spi.Metadata;
 import org.slf4j.Logger;
@@ -37,7 +32,7 @@ import org.slf4j.Logger;
 @Metadata(label = "eip,configuration")
 @XmlRootElement(name = "log")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class LogDefinition extends NoOutputDefinition<LogDefinition> implements PropertyPlaceholderAware {
+public class LogDefinition extends NoOutputDefinition<LogDefinition> {
 
     @XmlAttribute(required = true)
     private String message;
@@ -52,20 +47,7 @@ public class LogDefinition extends NoOutputDefinition<LogDefinition> implements
     @XmlTransient
     private Logger logger;
 
-    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
-    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
-
     public LogDefinition() {
-        readPlaceholders.put("id", this::getId);
-        readPlaceholders.put("message", this::getMessage);
-        readPlaceholders.put("logName", this::getLogName);
-        readPlaceholders.put("marker", this::getMarker);
-        readPlaceholders.put("loggerRef", this::getLoggerRef);
-        writePlaceholders.put("id", this::setId);
-        writePlaceholders.put("message", this::setMessage);
-        writePlaceholders.put("logName", this::setLogName);
-        writePlaceholders.put("marker", this::setMarker);
-        writePlaceholders.put("loggerRef", this::setLoggerRef);
     }
 
     public LogDefinition(String message) {
@@ -156,13 +138,4 @@ public class LogDefinition extends NoOutputDefinition<LogDefinition> implements
         this.logger = logger;
     }
 
-    @Override
-    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        return readPlaceholders;
-    }
-
-    @Override
-    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        return writePlaceholders;
-    }
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinitionPropertiesProvider.java b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinitionPropertiesProvider.java
new file mode 100644
index 0000000..a60ffa8
--- /dev/null
+++ b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinitionPropertiesProvider.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * 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.model;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
+
+import org.apache.camel.CamelContext;
+
+public class LogDefinitionPropertiesProvider implements PropertyPlaceholderAware {
+
+    private final LogDefinition definition;
+    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
+    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
+
+    public LogDefinitionPropertiesProvider(Object obj) {
+        this.definition = (LogDefinition) obj;
+
+        readPlaceholders.put("id", definition::getId);
+        readPlaceholders.put("message", definition::getMessage);
+        readPlaceholders.put("logName", definition::getLogName);
+        readPlaceholders.put("marker", definition::getMarker);
+        readPlaceholders.put("loggerRef", definition::getLoggerRef);
+        writePlaceholders.put("id", definition::setId);
+        writePlaceholders.put("message", definition::setMessage);
+        writePlaceholders.put("logName", definition::setLogName);
+        writePlaceholders.put("marker", definition::setMarker);
+        writePlaceholders.put("loggerRef", definition::setLoggerRef);
+    }
+
+    @Override
+    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
+        return readPlaceholders;
+    }
+
+    @Override
+    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        return writePlaceholders;
+    }
+}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
index dd0c216..5f520f5 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
@@ -31,7 +31,7 @@ import org.apache.camel.spi.NodeIdFactory;
 @XmlType(name = "optionalIdentifiedDefinition")
 @XmlAccessorType(XmlAccessType.PROPERTY)
 // must use XmlAccessType.PROPERTY which is required by camel-spring / camel-blueprint for their namespace parsers
-public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode {
+public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode, PropertyPlaceholderAware {
 
     private String id;
     private Boolean customId;
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 280965b..ff809f6 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -721,6 +721,7 @@ public final class ProcessorDefinitionHelper {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("There are {} properties on: {}", readProperties.size(), definition);
             }
+
             // lookup and resolve properties for String based properties
             for (Map.Entry<String, Supplier<String>> entry : readProperties.entrySet()) {
                 String name = entry.getKey();
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java b/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
index 9bc6b4a..c4fb8b7 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
@@ -22,6 +22,7 @@ import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 
+// TODO: Rename interface
 public interface PropertyPlaceholderAware {
 
     /**
@@ -29,10 +30,17 @@ public interface PropertyPlaceholderAware {
      *
      * @return key/values of options
      */
-    Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext);
+    default Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
+        PropertyPlaceholderAware aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
+        return aware != null ? aware.getReadPropertyPlaceholderOptions(camelContext) : null;
+    }
 
     /**
      * To update an existing property using the function with the ket/value and returning the changed value
      */
-    Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext);
+    default Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        PropertyPlaceholderAware aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
+        return aware != null ? aware.getWritePropertyPlaceholderOptions(camelContext) : null;
+    }
+
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinitionPropertiesProvider.java
similarity index 50%
copy from core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
copy to core/camel-core/src/main/java/org/apache/camel/model/ToDefinitionPropertiesProvider.java
index 9bc6b4a..e0e64a5 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinitionPropertiesProvider.java
@@ -16,23 +16,35 @@
  */
 package org.apache.camel.model;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 
-public interface PropertyPlaceholderAware {
+public class ToDefinitionPropertiesProvider implements PropertyPlaceholderAware {
 
-    /**
-     * Gets the options on the model definition which supports property placeholders and can be resolved.
-     *
-     * @return key/values of options
-     */
-    Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext);
+    private final ToDefinition definition;
+    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
+    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
 
-    /**
-     * To update an existing property using the function with the ket/value and returning the changed value
-     */
-    Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext);
+    public ToDefinitionPropertiesProvider(Object obj) {
+        this.definition = (ToDefinition) obj;
+
+        readPlaceholders.put("id", definition::getId);
+        readPlaceholders.put("uri", definition::getUri);
+        writePlaceholders.put("id", definition::setId);
+        writePlaceholders.put("uri", definition::setUri);
+    }
+
+    @Override
+    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
+        return readPlaceholders;
+    }
+
+    @Override
+    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
+        return writePlaceholders;
+    }
 }

Reply | Threaded
Open this post in threaded view
|

[camel] 03/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit a8397b97f36b80979ba2aacce6556d4aa8e7caab
Author: Claus Ibsen <[hidden email]>
AuthorDate: Mon Aug 12 18:00:21 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../model/DefinitionPropertiesProviderHelper.java  |  18 ++-
 ...DefinitionPropertyPlaceholderConfigurable.java} |  14 +-
 .../model/FromDefinitionPropertiesProvider.java    |  50 -------
 .../model/LogDefinitionPropertiesProvider.java     |  56 --------
 .../camel/model/OptionalIdentifiedDefinition.java  |   2 +-
 .../camel/model/ProcessorDefinitionHelper.java     |  36 +----
 .../java/org/apache/camel/model/ToDefinition.java  |   3 +-
 .../model/ToDefinitionPropertiesProvider.java      |  50 -------
 .../apt/CoreEipAnnotationProcessorHelper.java      | 158 +++++++++++++++++++++
 9 files changed, 182 insertions(+), 205 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
index 7da3ffd..86cb92e 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
@@ -21,19 +21,23 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.function.Function;
 
+import org.apache.camel.model.placeholder.FromDefinitionPropertyPlaceholderProvider;
+import org.apache.camel.model.placeholder.LogDefinitionPropertyPlaceholderProvider;
+import org.apache.camel.model.placeholder.ToDefinitionPropertyPlaceholderProvider;
+
 public class DefinitionPropertiesProviderHelper {
 
-    private static final Map<Class, Function<Object, PropertyPlaceholderAware>> MAP;
+    private static final Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> MAP;
     static {
-        Map<Class, Function<Object, PropertyPlaceholderAware>> map = new HashMap<>();
-        map.put(FromDefinition.class, FromDefinitionPropertiesProvider::new);
-        map.put(LogDefinition.class, LogDefinitionPropertiesProvider::new);
-        map.put(ToDefinition.class, ToDefinitionPropertiesProvider::new);
+        Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> map = new HashMap<>();
+        map.put(FromDefinition.class, FromDefinitionPropertyPlaceholderProvider::new);
+        map.put(LogDefinition.class, LogDefinitionPropertyPlaceholderProvider::new);
+        map.put(ToDefinition.class, ToDefinitionPropertyPlaceholderProvider::new);
         MAP = map;
     }
 
-    public static Optional<PropertyPlaceholderAware> provider(Object definition) {
-        Function<Object, PropertyPlaceholderAware> func = MAP.get(definition.getClass());
+    public static Optional<DefinitionPropertyPlaceholderConfigurable> provider(Object definition) {
+        Function<Object, DefinitionPropertyPlaceholderConfigurable> func = MAP.get(definition.getClass());
         if (func != null) {
             return Optional.of(func.apply(definition));
         }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
similarity index 75%
rename from core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
rename to core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
index c4fb8b7..9c82f6b 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/PropertyPlaceholderAware.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
@@ -22,24 +22,28 @@ import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 
-// TODO: Rename interface
-public interface PropertyPlaceholderAware {
+/**
+ * To be used for configuring property placeholder options on the EIP models.
+ */
+public interface DefinitionPropertyPlaceholderConfigurable {
 
     /**
      * Gets the options on the model definition which supports property placeholders and can be resolved.
+     * This will be all the string based options.
      *
      * @return key/values of options
      */
     default Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        PropertyPlaceholderAware aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
+        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
         return aware != null ? aware.getReadPropertyPlaceholderOptions(camelContext) : null;
     }
 
     /**
-     * To update an existing property using the function with the ket/value and returning the changed value
+     * To update an existing property using the function with the key/value and returning the changed value
+     * This will be all the string based options.
      */
     default Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        PropertyPlaceholderAware aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
+        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
         return aware != null ? aware.getWritePropertyPlaceholderOptions(camelContext) : null;
     }
 
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinitionPropertiesProvider.java b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinitionPropertiesProvider.java
deleted file mode 100644
index 5953f84..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinitionPropertiesProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.model;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-import org.apache.camel.CamelContext;
-
-public class FromDefinitionPropertiesProvider implements PropertyPlaceholderAware {
-
-    private final FromDefinition definition;
-    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
-    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
-
-    public FromDefinitionPropertiesProvider(Object obj) {
-        this.definition = (FromDefinition) obj;
-
-        readPlaceholders.put("id", definition::getId);
-        readPlaceholders.put("uri", definition::getUri);
-        writePlaceholders.put("id", definition::setId);
-        writePlaceholders.put("uri", definition::setUri);
-    }
-
-    @Override
-    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        return readPlaceholders;
-    }
-
-    @Override
-    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        return writePlaceholders;
-    }
-}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinitionPropertiesProvider.java b/core/camel-core/src/main/java/org/apache/camel/model/LogDefinitionPropertiesProvider.java
deleted file mode 100644
index a60ffa8..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/LogDefinitionPropertiesProvider.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.model;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-import org.apache.camel.CamelContext;
-
-public class LogDefinitionPropertiesProvider implements PropertyPlaceholderAware {
-
-    private final LogDefinition definition;
-    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
-    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
-
-    public LogDefinitionPropertiesProvider(Object obj) {
-        this.definition = (LogDefinition) obj;
-
-        readPlaceholders.put("id", definition::getId);
-        readPlaceholders.put("message", definition::getMessage);
-        readPlaceholders.put("logName", definition::getLogName);
-        readPlaceholders.put("marker", definition::getMarker);
-        readPlaceholders.put("loggerRef", definition::getLoggerRef);
-        writePlaceholders.put("id", definition::setId);
-        writePlaceholders.put("message", definition::setMessage);
-        writePlaceholders.put("logName", definition::setLogName);
-        writePlaceholders.put("marker", definition::setMarker);
-        writePlaceholders.put("loggerRef", definition::setLoggerRef);
-    }
-
-    @Override
-    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        return readPlaceholders;
-    }
-
-    @Override
-    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        return writePlaceholders;
-    }
-}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
index 5f520f5..9ca6bff 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
@@ -31,7 +31,7 @@ import org.apache.camel.spi.NodeIdFactory;
 @XmlType(name = "optionalIdentifiedDefinition")
 @XmlAccessorType(XmlAccessType.PROPERTY)
 // must use XmlAccessType.PROPERTY which is required by camel-spring / camel-blueprint for their namespace parsers
-public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode, PropertyPlaceholderAware {
+public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode, DefinitionPropertyPlaceholderConfigurable {
 
     private String id;
     private Boolean customId;
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index ff809f6..b57f51a 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -28,18 +28,12 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
-import javax.xml.namespace.QName;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.Exchange;
 import org.apache.camel.NamedNode;
 import org.apache.camel.spi.ExecutorServiceManager;
-import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spi.RouteContext;
-import org.apache.camel.support.IntrospectionSupport;
-import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.ObjectHelper;
-import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -655,32 +649,6 @@ public final class ProcessorDefinitionHelper {
         });
     }
 
-    @Deprecated
-    private static void addRestoreAction(final CamelContext context, final Object target, final Map<String, Object> properties) {
-        if (properties.isEmpty()) {
-            return;
-        }
-
-        RestoreAction restoreAction = CURRENT_RESTORE_ACTION.get();
-        if (restoreAction == null) {
-            return;
-        }
-
-        restoreAction.actions.add(new Runnable() {
-            @Override
-            public void run() {
-                try {
-                    // do not use property placeholders as we want to preserve the text as-is when we restore
-                    PropertyBindingSupport.build()
-                            .withPlaceholder(false).withNesting(false).withReference(false)
-                            .bind(context, target, properties);
-                } catch (Exception e) {
-                    LOG.warn("Cannot restore definition properties. This exception is ignored.", e);
-                }
-            }
-        });
-    }
-
     public static void addPropertyPlaceholdersChangeRevertAction(Runnable action) {
         RestoreAction restoreAction = CURRENT_RESTORE_ACTION.get();
         if (restoreAction == null) {
@@ -706,11 +674,11 @@ public final class ProcessorDefinitionHelper {
         LOG.trace("Resolving property placeholders for: {}", definition);
 
         // only do this for models that supports property placeholders
-        if (!(definition instanceof PropertyPlaceholderAware)) {
+        if (!(definition instanceof DefinitionPropertyPlaceholderConfigurable)) {
             return;
         }
 
-        PropertyPlaceholderAware ppa = (PropertyPlaceholderAware) definition;
+        DefinitionPropertyPlaceholderConfigurable ppa = (DefinitionPropertyPlaceholderConfigurable) definition;
 
         // find all getter/setter which we can use for property placeholders
         Map<String, String> changedProperties = new HashMap<>();
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
index 3a0ba35..10b61d8 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
@@ -18,7 +18,6 @@ package org.apache.camel.model;
 
 import java.util.HashMap;
 import java.util.Map;
-import java.util.function.BiFunction;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
@@ -39,7 +38,7 @@ import org.apache.camel.spi.PropertiesComponent;
 @Metadata(label = "eip,endpoint,routing")
 @XmlRootElement(name = "to")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ToDefinition extends SendDefinition<ToDefinition> implements PropertyPlaceholderAware {
+public class ToDefinition extends SendDefinition<ToDefinition> implements DefinitionPropertyPlaceholderConfigurable {
     @XmlAttribute
     private ExchangePattern pattern;
 
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinitionPropertiesProvider.java b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinitionPropertiesProvider.java
deleted file mode 100644
index e0e64a5..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinitionPropertiesProvider.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.model;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
-
-import org.apache.camel.CamelContext;
-
-public class ToDefinitionPropertiesProvider implements PropertyPlaceholderAware {
-
-    private final ToDefinition definition;
-    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
-    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
-
-    public ToDefinitionPropertiesProvider(Object obj) {
-        this.definition = (ToDefinition) obj;
-
-        readPlaceholders.put("id", definition::getId);
-        readPlaceholders.put("uri", definition::getUri);
-        writePlaceholders.put("id", definition::setId);
-        writePlaceholders.put("uri", definition::setUri);
-    }
-
-    @Override
-    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        return readPlaceholders;
-    }
-
-    @Override
-    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        return writePlaceholders;
-    }
-}
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index df08f15..edb48d7 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -17,12 +17,14 @@
 package org.apache.camel.tools.apt;
 
 import java.io.PrintWriter;
+import java.io.Writer;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
+import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import javax.annotation.processing.ProcessingEnvironment;
@@ -34,6 +36,8 @@ import javax.lang.model.element.VariableElement;
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.util.ElementFilter;
 import javax.lang.model.util.Elements;
+import javax.tools.Diagnostic;
+import javax.tools.JavaFileObject;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementRef;
@@ -42,11 +46,15 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlValue;
 
+import jdk.nashorn.internal.ir.debug.ClassHistogramElement;
 import org.apache.camel.spi.AsPredicate;
 import org.apache.camel.spi.Metadata;
+import org.apache.camel.tools.apt.helper.IOHelper;
 import org.apache.camel.tools.apt.helper.JsonSchemaHelper;
 import org.apache.camel.tools.apt.helper.Strings;
 
+import static org.apache.camel.tools.apt.AnnotationProcessorHelper.dumpExceptionToErrorFile;
+import static org.apache.camel.tools.apt.AnnotationProcessorHelper.error;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findJavaDoc;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElement;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElementChildren;
@@ -124,6 +132,7 @@ public class CoreEipAnnotationProcessorHelper {
         processFile(processingEnv, packageName, fileName, writer -> writeJSonSchemeDocumentation(processingEnv, writer, roundEnv, classElement, rootElement, javaTypeName, name));
     }
 
+
     protected void writeJSonSchemeDocumentation(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
                                                 XmlRootElement rootElement, String javaTypeName, String modelName) {
         // gather eip information
@@ -141,6 +150,155 @@ public class CoreEipAnnotationProcessorHelper {
 
         String json = createParameterJsonSchema(eipModel, eipOptions);
         writer.println(json);
+
+        // write property placeholder source code
+        writePropertyPlaceholderProviderSource(processingEnv, writer, roundEnv, classElement, eipModel, eipOptions);
+    }
+
+    protected void writePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
+                                                          EipModel eipModel, Set<EipOption> options) {
+
+        // the following are valid class elements which we want to generate
+        boolean rest = classElement.getQualifiedName().toString().startsWith("org.apache.camel.model.rest");
+        boolean processor = hasSuperClass(processingEnv, roundEnv, classElement, "org.apache.camel.model.ProcessorDefinition");
+        boolean language = hasSuperClass(processingEnv, roundEnv, classElement, "org.apache.camel.model.language.ExpressionDefinition");
+        boolean dataformat = hasSuperClass(processingEnv, roundEnv, classElement, "org.apache.camel.model.DataFormatDefinition");
+
+        if (!rest && !processor && !language && !dataformat) {
+            return;
+        }
+
+        TypeElement parent = findTypeElement(processingEnv, roundEnv, "org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable");
+        String def = classElement.getSimpleName().toString();
+        String fqnDef = classElement.getQualifiedName().toString();
+        String cn = def + "PropertyPlaceholderProvider";
+        String fqn = "org.apache.camel.model.placeholder." + cn;
+
+        doWritePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
+
+        // we also need to generate from when we generate route as from can also configure property placeholders
+        if ("RouteDefinition".equals(def)) {
+            def = "FromDefinition";
+            fqnDef = "org.apache.camel.model.FromDefinition";
+            cn = "FromDefinitionPropertyPlaceholderProvider";
+            fqn = "org.apache.camel.model.placeholder.FromDefinitionPropertyPlaceholderProvider";
+
+            options.clear();
+            options.add(new EipOption("id", null, null, "java.lang.String", false, null, null, false, null, false, null, false, null, false));
+            options.add(new EipOption("uri", null, null, "java.lang.String", false, null, null, false, null, false, null, false, null, false));
+
+            doWritePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
+        }
+    }
+
+    private void doWritePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, TypeElement parent,
+                                                          String def, String fqnDef, String cn, String fqn,
+                                                          Set<EipOption> options) {
+
+        Writer w = null;
+        try {
+            JavaFileObject src = processingEnv.getFiler().createSourceFile(fqn, parent);
+            w = src.openWriter();
+
+            w.write("/* Generated by camel-apt */\n");
+            w.write("package org.apache.camel.model.placeholder;\n");
+            w.write("\n");
+            w.write("import java.util.HashMap;\n");
+            w.write("import java.util.Map;\n");
+            w.write("import java.util.function.Consumer;\n");
+            w.write("import java.util.function.Supplier;\n");
+            w.write("\n");
+            w.write("import org.apache.camel.CamelContext;\n");
+            w.write("import " + fqnDef + ";\n");
+            w.write("import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable;\n");
+            w.write("\n");
+            w.write("public class " + cn + " implements DefinitionPropertyPlaceholderConfigurable {\n");
+            w.write("\n");
+            w.write("    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();\n");
+            w.write("    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();\n");
+            w.write("\n");
+
+            // add constructor
+            w.write("    public " + cn + "(Object obj) {\n");
+            w.write("        " + def + " definition = (" + def + ") obj;\n");
+            w.write("\n");
+
+            // only include string types as they are the only ones we can use for property placeholders
+            boolean found = false;
+            for (EipOption option : options) {
+                if ("java.lang.String".equals(option.getType())) {
+                    found = true;
+                    String getOrSet = sanitizeOptionName(def, option);
+                    getOrSet = Character.toUpperCase(getOrSet.charAt(0)) + getOrSet.substring(1);
+                    w.write("        readPlaceholders.put(\"" + option.getName() + "\", definition::get" + getOrSet + ");\n");
+                    w.write("        writePlaceholders.put(\"" + option.getName() + "\", definition::set" + getOrSet + ");\n");
+                }
+            }
+            if (!found) {
+                w.write("\n");
+            }
+
+            w.write("    }\n");
+            w.write("\n");
+            w.write("    @Override\n");
+            w.write("    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {\n");
+            w.write("        return readPlaceholders;\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("    @Override\n");
+            w.write("    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {\n");
+            w.write("        return writePlaceholders;\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("}\n");
+            w.write("\n");
+        } catch (Exception e) {
+            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unable to process annotated elements in " + getClass().getSimpleName() + ": " + e.getMessage());
+            dumpExceptionToErrorFile("camel-apt-error.log", "Error processing annotation in " + getClass().getSimpleName(), e);
+        } finally {
+            IOHelper.close(w);
+        }
+    }
+
+    public String sanitizeOptionName(String def, EipOption option) {
+        // some elements have different setter/getter names vs the xml dsl
+        if ("SimpleExpression".equals(def) || "JsonPathExpression".equals(def)) {
+            if ("resultType".equals(option.getName())) {
+                return "resultTypeName";
+            }
+        } else if ("EnrichDefinition".equals(def) || "PollEnrichDefinition".equals(def) || "ClaimCheckDefinition".equals(def)) {
+            if ("strategyRef".equals(option.getName())) {
+                return "aggregationStrategyRef";
+            } else if ("strategyMethodName".equals(option.getName())) {
+                return "aggregationStrategyMethodName";
+            } else if ("strategyMethodAllowNull".equals(option.getName())) {
+                return "aggregationStrategyMethodAllowNull";
+            }
+        } else if ("MethodCallExpression".equals(def)) {
+            if ("beanType".equals(option.getName())) {
+                return "beanTypeName";
+            }
+        } else if ("XPathExpression".equals(def)) {
+            if ("documentType".equals(option.getName())) {
+                return "documentTypeName";
+            } else if ("resultType".equals(option.getName())) {
+                return "resultTypeName";
+            }
+        } else if ("WireTapDefinition".equals(def)) {
+            if ("processorRef".equals(option.getName())) {
+                return "newExchangeProcessorRef";
+            }
+        } else if ("TidyMarkupDataFormat".equals(def)) {
+            if ("dataObjectType".equals(option.getName())) {
+                return "dataObjectTypeName";
+            }
+        } else if ("BindyDataFormat".equals(def)) {
+            if ("classType".equals(option.getName())) {
+                return "classTypeAsString";
+            }
+        }
+
+        return option.getName();
     }
 
     public String createParameterJsonSchema(EipModel eipModel, Set<EipOption> options) {

Reply | Threaded
Open this post in threaded view
|

[camel] 04/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit ec24d17061351141d99be99dcb4417a77b1a3fd8
Author: Claus Ibsen <[hidden email]>
AuthorDate: Mon Aug 12 22:08:43 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../model/DefinitionPropertiesProviderHelper.java  | 47 -------------
 .../DefinitionPropertyPlaceholderConfigurable.java |  5 +-
 .../apt/CoreEipAnnotationProcessorHelper.java      | 77 +++++++++++++++++++---
 .../camel/tools/apt/ModelAnnotationProcessor.java  | 62 +++++++++++++----
 .../tools/apt/SpringAnnotationProcessorHelper.java |  3 +-
 5 files changed, 122 insertions(+), 72 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
deleted file mode 100644
index 86cb92e..0000000
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertiesProviderHelper.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * 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.model;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import java.util.function.Function;
-
-import org.apache.camel.model.placeholder.FromDefinitionPropertyPlaceholderProvider;
-import org.apache.camel.model.placeholder.LogDefinitionPropertyPlaceholderProvider;
-import org.apache.camel.model.placeholder.ToDefinitionPropertyPlaceholderProvider;
-
-public class DefinitionPropertiesProviderHelper {
-
-    private static final Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> MAP;
-    static {
-        Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> map = new HashMap<>();
-        map.put(FromDefinition.class, FromDefinitionPropertyPlaceholderProvider::new);
-        map.put(LogDefinition.class, LogDefinitionPropertyPlaceholderProvider::new);
-        map.put(ToDefinition.class, ToDefinitionPropertyPlaceholderProvider::new);
-        MAP = map;
-    }
-
-    public static Optional<DefinitionPropertyPlaceholderConfigurable> provider(Object definition) {
-        Function<Object, DefinitionPropertyPlaceholderConfigurable> func = MAP.get(definition.getClass());
-        if (func != null) {
-            return Optional.of(func.apply(definition));
-        }
-        return Optional.empty();
-    }
-
-}
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
index 9c82f6b..8d5758c 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
@@ -21,6 +21,7 @@ import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper;
 
 /**
  * To be used for configuring property placeholder options on the EIP models.
@@ -34,7 +35,7 @@ public interface DefinitionPropertyPlaceholderConfigurable {
      * @return key/values of options
      */
     default Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
+        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
         return aware != null ? aware.getReadPropertyPlaceholderOptions(camelContext) : null;
     }
 
@@ -43,7 +44,7 @@ public interface DefinitionPropertyPlaceholderConfigurable {
      * This will be all the string based options.
      */
     default Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesProviderHelper.provider(this).orElse(null);
+        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
         return aware != null ? aware.getWritePropertyPlaceholderOptions(camelContext) : null;
     }
 
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index edb48d7..fc00956 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -18,13 +18,13 @@ package org.apache.camel.tools.apt;
 
 import java.io.PrintWriter;
 import java.io.Writer;
+import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
-import java.util.function.Consumer;
 import java.util.stream.Collectors;
 
 import javax.annotation.processing.ProcessingEnvironment;
@@ -92,7 +92,8 @@ public class CoreEipAnnotationProcessorHelper {
 
     private boolean skipUnwanted = true;
 
-    protected void processModelClass(final ProcessingEnvironment processingEnv, final RoundEnvironment roundEnv, final TypeElement classElement) {
+    protected void processModelClass(final ProcessingEnvironment processingEnv, final RoundEnvironment roundEnv,
+                                     final TypeElement classElement, Set<String> propertyPlaceholderDefinitions, final boolean last) {
         final String javaTypeName = canonicalClassName(classElement.getQualifiedName().toString());
         String packageName = javaTypeName.substring(0, javaTypeName.lastIndexOf("."));
 
@@ -128,13 +129,20 @@ public class CoreEipAnnotationProcessorHelper {
             fileName = name + ".json";
         }
 
-        // write json schema
-        processFile(processingEnv, packageName, fileName, writer -> writeJSonSchemeDocumentation(processingEnv, writer, roundEnv, classElement, rootElement, javaTypeName, name));
-    }
+        // write json schema and property placeholder provider
+        processFile(processingEnv, packageName, fileName, writer -> writeJSonSchemeDocumentation(processingEnv, writer,
+                roundEnv, classElement, rootElement, javaTypeName, name, propertyPlaceholderDefinitions));
 
+        // if last then generate
+        if (last) {
+            // lets sort themfirst
+            writePropertyPlaceholderDefinitionsHelper(processingEnv, roundEnv, propertyPlaceholderDefinitions);
+        }
+    }
 
+    // TODO: rename this
     protected void writeJSonSchemeDocumentation(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
-                                                XmlRootElement rootElement, String javaTypeName, String modelName) {
+                                                XmlRootElement rootElement, String javaTypeName, String modelName, Set<String> propertyPlaceholderDefinitions) {
         // gather eip information
         EipModel eipModel = findEipModelProperties(processingEnv, roundEnv, classElement, javaTypeName, modelName);
 
@@ -152,11 +160,11 @@ public class CoreEipAnnotationProcessorHelper {
         writer.println(json);
 
         // write property placeholder source code
-        writePropertyPlaceholderProviderSource(processingEnv, writer, roundEnv, classElement, eipModel, eipOptions);
+        writePropertyPlaceholderProviderSource(processingEnv, writer, roundEnv, classElement, eipModel, eipOptions, propertyPlaceholderDefinitions);
     }
 
     protected void writePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
-                                                          EipModel eipModel, Set<EipOption> options) {
+                                                          EipModel eipModel, Set<EipOption> options, Set<String> propertyPlaceholderDefinitions) {
 
         // the following are valid class elements which we want to generate
         boolean rest = classElement.getQualifiedName().toString().startsWith("org.apache.camel.model.rest");
@@ -175,6 +183,7 @@ public class CoreEipAnnotationProcessorHelper {
         String fqn = "org.apache.camel.model.placeholder." + cn;
 
         doWritePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
+        propertyPlaceholderDefinitions.add(fqnDef);
 
         // we also need to generate from when we generate route as from can also configure property placeholders
         if ("RouteDefinition".equals(def)) {
@@ -188,6 +197,7 @@ public class CoreEipAnnotationProcessorHelper {
             options.add(new EipOption("uri", null, null, "java.lang.String", false, null, null, false, null, false, null, false, null, false));
 
             doWritePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
+            propertyPlaceholderDefinitions.add(fqnDef);
         }
     }
 
@@ -301,6 +311,57 @@ public class CoreEipAnnotationProcessorHelper {
         return option.getName();
     }
 
+    private void writePropertyPlaceholderDefinitionsHelper(ProcessingEnvironment processingEnv, RoundEnvironment roundEnv,
+                                                           Set<String> propertyPlaceholderDefinitions) {
+        Writer w = null;
+        try {
+            JavaFileObject src = processingEnv.getFiler().createSourceFile("org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper");
+            w = src.openWriter();
+
+            w.write("/* Generated by camel-apt */\n");
+            w.write("package org.apache.camel.model.placeholder;\n");
+            w.write("\n");
+            w.write("import java.util.HashMap;\n");
+            w.write("import java.util.Map;\n");
+            w.write("import java.util.Optional;\n");
+            w.write("import java.util.function.Function;\n");
+            w.write("import java.util.function.Supplier;\n");
+            w.write("\n");
+            w.write("import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable;\n");
+            for (String def : propertyPlaceholderDefinitions) {
+                w.write("import " + def + ";\n");
+            }
+            w.write("\n");
+            w.write("public class DefinitionPropertiesPlaceholderProviderHelper {\n");
+            w.write("\n");
+            w.write("    private static final Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> MAP;\n");
+            w.write("    static {\n");
+            w.write("        Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> map = new HashMap<>();\n");
+            for (String def : propertyPlaceholderDefinitions) {
+                String cn = def.substring(def.lastIndexOf('.') + 1);
+                w.write("        map.put(" + cn + ".class, " + cn + "PropertyPlaceholderProvider::new);\n");
+            }
+            w.write("        MAP = map;\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("    public static Optional<DefinitionPropertyPlaceholderConfigurable> provider(Object definition) {\n");
+            w.write("        Function<Object, DefinitionPropertyPlaceholderConfigurable> func = MAP.get(definition.getClass());\n");
+            w.write("        if (func != null) {\n");
+            w.write("            return Optional.of(func.apply(definition));\n");
+            w.write("        }\n");
+            w.write("        return Optional.empty();\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("}\n");
+            w.write("\n");
+        } catch (Exception e) {
+            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unable to process annotated elements in " + getClass().getSimpleName() + ": " + e.getMessage());
+            dumpExceptionToErrorFile("camel-apt-error.log", "Error processing annotation in " + getClass().getSimpleName(), e);
+        } finally {
+            IOHelper.close(w);
+        }
+    }
+
     public String createParameterJsonSchema(EipModel eipModel, Set<EipOption> options) {
         StringBuilder buffer = new StringBuilder("{");
         // eip model
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
index 211f42b..5d1e380 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
@@ -16,8 +16,13 @@
  */
 package org.apache.camel.tools.apt;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Set;
-
+import java.util.TreeSet;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
 import javax.annotation.processing.RoundEnvironment;
 import javax.annotation.processing.SupportedAnnotationTypes;
 import javax.lang.model.element.Element;
@@ -38,19 +43,48 @@ public class ModelAnnotationProcessor extends AbstractCamelAnnotationProcessor {
     @Override
     protected void doProcess(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) throws Exception {
         Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(XmlRootElement.class);
-        for (Element element : elements) {
-            if (element instanceof TypeElement) {
-                TypeElement classElement = (TypeElement) element;
-
-                final String javaTypeName = canonicalClassName(classElement.getQualifiedName().toString());
-                boolean core = javaTypeName.startsWith("org.apache.camel.model");
-                boolean spring = javaTypeName.startsWith("org.apache.camel.spring") || javaTypeName.startsWith("org.apache.camel.core.xml");
-                if (core) {
-                    coreProcessor.processModelClass(processingEnv, roundEnv, classElement);
-                } else if (spring) {
-                    springProcessor.processModelClass(processingEnv, roundEnv, classElement);
-                }
-            }
+
+        Set<? extends Element> coreElements = elements.stream()
+                .filter(new Predicate<Element>() {
+                    @Override
+                    public boolean test(Element element) {
+                        if (element instanceof TypeElement) {
+                            TypeElement classElement = (TypeElement) element;
+
+                            final String javaTypeName = canonicalClassName(classElement.getQualifiedName().toString());
+                            return javaTypeName.startsWith("org.apache.camel.model");
+                        }
+                        return false;
+                    }
+                }).collect(Collectors.toSet());
+
+        Set<? extends Element> springElements = elements.stream()
+                .filter(new Predicate<Element>() {
+                    @Override
+                    public boolean test(Element element) {
+                        if (element instanceof TypeElement) {
+                            TypeElement classElement = (TypeElement) element;
+
+                            final String javaTypeName = canonicalClassName(classElement.getQualifiedName().toString());
+                            return javaTypeName.startsWith("org.apache.camel.spring") || javaTypeName.startsWith("org.apache.camel.core.xml");
+                        }
+                        return false;
+                    }
+                }).collect(Collectors.toSet());
+
+        // we want them to be sorted
+        Set<String> propertyPlaceholderDefinitions = new TreeSet<>(String::compareToIgnoreCase);
+
+        Iterator it = coreElements.iterator();
+        while (it.hasNext()) {
+            TypeElement classElement = (TypeElement) it.next();
+            coreProcessor.processModelClass(processingEnv, roundEnv, classElement, propertyPlaceholderDefinitions, !it.hasNext());
+        }
+
+        it = springElements.iterator();
+        while (it.hasNext()) {
+            TypeElement classElement = (TypeElement) it.next();
+            springProcessor.processModelClass(processingEnv, roundEnv, classElement, !it.hasNext());
         }
     }
 
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
index 2300352..75f3110 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
@@ -56,7 +56,8 @@ import static org.apache.camel.tools.apt.helper.Strings.safeNull;
  */
 public class SpringAnnotationProcessorHelper {
 
-    protected void processModelClass(final ProcessingEnvironment processingEnv, final RoundEnvironment roundEnv, final TypeElement classElement) {
+    protected void processModelClass(final ProcessingEnvironment processingEnv, final RoundEnvironment roundEnv,
+                                     final TypeElement classElement, final boolean last) {
         final String javaTypeName = canonicalClassName(classElement.getQualifiedName().toString());
         String packageName = javaTypeName.substring(0, javaTypeName.lastIndexOf("."));
 

Reply | Threaded
Open this post in threaded view
|

[camel] 05/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 0fb04132baa4b8866e75d62d9c2f8727f2072757
Author: Claus Ibsen <[hidden email]>
AuthorDate: Mon Aug 12 22:31:52 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../apache/camel/model/DataFormatDefinition.java   |  2 +-
 .../camel/model/ProcessorDefinitionHelper.java     |  6 ++-
 .../java/org/apache/camel/model/ToDefinition.java  | 51 +---------------------
 .../camel/model/language/ExpressionDefinition.java |  3 +-
 4 files changed, 8 insertions(+), 54 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
index c7f3452..f36fb68 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
@@ -35,7 +35,7 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "dataformat,transformation")
 @XmlType(name = "dataFormat")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class DataFormatDefinition extends IdentifiedType implements OtherAttributesAware {
+public class DataFormatDefinition extends IdentifiedType implements OtherAttributesAware, DefinitionPropertyPlaceholderConfigurable {
     @XmlTransient
     private DataFormat dataFormat;
     @XmlTransient
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index b57f51a..169dc3d 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -626,7 +626,7 @@ public final class ProcessorDefinitionHelper {
     }
 
     private static void addRestoreAction(Map<String, Consumer<String>> writeProperties, final Map<String, String> properties) {
-        if (properties.isEmpty()) {
+        if (properties == null || properties.isEmpty()) {
             return;
         }
 
@@ -685,7 +685,7 @@ public final class ProcessorDefinitionHelper {
         Map<String, Supplier<String>> readProperties = ppa.getReadPropertyPlaceholderOptions(camelContext);
         Map<String, Consumer<String>> writeProperties = ppa.getWritePropertyPlaceholderOptions(camelContext);
 
-        if (!readProperties.isEmpty()) {
+        if (readProperties != null && !readProperties.isEmpty()) {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("There are {} properties on: {}", readProperties.size(), definition);
             }
@@ -718,6 +718,8 @@ public final class ProcessorDefinitionHelper {
      */
     public static void resolveKnownConstantFields(CamelContext camelContext, Object definition) throws Exception {
         LOG.trace("Resolving known fields for: {}", definition);
+
+        // TODO: implement this
 /*
         // find all String getter/setter
         Map<String, Object> properties = new HashMap<>();
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
index 10b61d8..4204727 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ToDefinition.java
@@ -16,21 +16,15 @@
  */
 package org.apache.camel.model;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.builder.EndpointProducerBuilder;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.PropertiesComponent;
 
 /**
  * Sends the message to a static endpoint
@@ -38,18 +32,11 @@ import org.apache.camel.spi.PropertiesComponent;
 @Metadata(label = "eip,endpoint,routing")
 @XmlRootElement(name = "to")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ToDefinition extends SendDefinition<ToDefinition> implements DefinitionPropertyPlaceholderConfigurable {
+public class ToDefinition extends SendDefinition<ToDefinition> {
     @XmlAttribute
     private ExchangePattern pattern;
 
-    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();
-    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();
-
     public ToDefinition() {
-        readPlaceholders.put("id", this::getId);
-        readPlaceholders.put("uri", this::getUri);
-        writePlaceholders.put("id", this::setId);
-        writePlaceholders.put("uri", this::setUri);
     }
 
     public ToDefinition(String uri) {
@@ -104,41 +91,5 @@ public class ToDefinition extends SendDefinition<ToDefinition> implements Defini
         this.pattern = pattern;
     }
 
-    @Override
-    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(final CamelContext camelContext) {
-        if (getOtherAttributes() != null && !getOtherAttributes().isEmpty()) {
-            final Map<String, Supplier<String>> answer = new HashMap<>(readPlaceholders);
-            getOtherAttributes().forEach((k, v) -> {
-                if (Constants.PLACEHOLDER_QNAME.equals(k.getNamespaceURI())) {
-                    if (v instanceof String) {
-                        // enforce a properties component to be created if none existed
-                        camelContext.getPropertiesComponent(true);
-
-                        // value must be enclosed with placeholder tokens
-                        String s = (String) v;
-                        String prefixToken = PropertiesComponent.PREFIX_TOKEN;
-                        String suffixToken = PropertiesComponent.SUFFIX_TOKEN;
-
-                        if (!s.startsWith(prefixToken)) {
-                            s = prefixToken + s;
-                        }
-                        if (!s.endsWith(suffixToken)) {
-                            s = s + suffixToken;
-                        }
-                        final String value = s;
-                        answer.put(k.getLocalPart(), () -> value);
-                    }
-                }
-            });
-            return answer;
-        } else {
-            return readPlaceholders;
-        }
-    }
-
-    @Override
-    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        return writePlaceholders;
-    }
 }
 
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
index 66fda0a..4e8fb41 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
@@ -38,6 +38,7 @@ import org.apache.camel.Expression;
 import org.apache.camel.ExpressionFactory;
 import org.apache.camel.NoSuchLanguageException;
 import org.apache.camel.Predicate;
+import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable;
 import org.apache.camel.model.OtherAttributesAware;
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.Metadata;
@@ -55,7 +56,7 @@ import org.apache.camel.util.ObjectHelper;
 @XmlRootElement
 @XmlType(name = "expression") // must be named expression
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ExpressionDefinition implements Expression, Predicate, OtherAttributesAware, ExpressionFactory {
+public class ExpressionDefinition implements Expression, Predicate, OtherAttributesAware, ExpressionFactory, DefinitionPropertyPlaceholderConfigurable {
     @XmlAttribute
     @XmlID
     private String id;

Reply | Threaded
Open this post in threaded view
|

[camel] 06/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit c947278c884a64119de17c0e4885766c9d7f12db
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 06:03:50 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../DefinitionPropertyPlaceholderConfigurable.java |  2 +
 .../camel/model/ProcessorDefinitionHelper.java     | 62 ++++++++++++++++++++++
 .../OptionalPropertiesDslInvalidSyntaxTest.java    |  7 ++-
 3 files changed, 69 insertions(+), 2 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
index 8d5758c..16520e3 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
@@ -16,12 +16,14 @@
  */
 package org.apache.camel.model;
 
+import java.util.HashMap;
 import java.util.Map;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper;
+import org.apache.camel.spi.PropertiesComponent;
 
 /**
  * To be used for configuring property placeholder options on the EIP models.
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 169dc3d..439ffbe 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -29,10 +29,16 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
+import javax.xml.namespace.QName;
+
 import org.apache.camel.CamelContext;
 import org.apache.camel.NamedNode;
+import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.ExecutorServiceManager;
+import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.spi.RouteContext;
+import org.apache.camel.support.IntrospectionSupport;
+import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -670,6 +676,7 @@ public final class ProcessorDefinitionHelper {
      * @see org.apache.camel.CamelContext#resolvePropertyPlaceholders(String)
      * @see org.apache.camel.component.properties.PropertiesComponent
      */
+    @SuppressWarnings("unchecked")
     public static void resolvePropertyPlaceholders(CamelContext camelContext, Object definition) throws Exception {
         LOG.trace("Resolving property placeholders for: {}", definition);
 
@@ -685,6 +692,61 @@ public final class ProcessorDefinitionHelper {
         Map<String, Supplier<String>> readProperties = ppa.getReadPropertyPlaceholderOptions(camelContext);
         Map<String, Consumer<String>> writeProperties = ppa.getWritePropertyPlaceholderOptions(camelContext);
 
+        // processor's may have additional placeholder properties (can typically be used by the XML DSL to
+        // allow to configure using placeholders for properties that are not xs:string types)
+        if (definition instanceof ProcessorDefinition) {
+            ProcessorDefinition pd = (ProcessorDefinition) definition;
+
+            if (pd.getOtherAttributes() != null && !pd.getOtherAttributes().isEmpty()) {
+                Map<String, Supplier<String>> extraRead = new HashMap<>();
+                if (readProperties != null && !readProperties.isEmpty()) {
+                    extraRead.putAll(readProperties);
+                }
+                Map<String, Consumer<String>> extraWrite = new HashMap<>();
+                if (writeProperties != null && !writeProperties.isEmpty()) {
+                    extraWrite.putAll(writeProperties);
+                }
+
+                Map<QName, Object> other = pd.getOtherAttributes();
+                other.forEach((k, v) -> {
+                    if (Constants.PLACEHOLDER_QNAME.equals(k.getNamespaceURI())) {
+                        if (v instanceof String) {
+                            // enforce a properties component to be created if none existed
+                            camelContext.getPropertiesComponent(true);
+
+                            // value must be enclosed with placeholder tokens
+                            String s = (String) v;
+                            String prefixToken = PropertiesComponent.PREFIX_TOKEN;
+                            String suffixToken = PropertiesComponent.SUFFIX_TOKEN;
+
+                            if (!s.startsWith(prefixToken)) {
+                                s = prefixToken + s;
+                            }
+                            if (!s.endsWith(suffixToken)) {
+                                s = s + suffixToken;
+                            }
+                            final String value = s;
+                            extraRead.put(k.getLocalPart(), () -> value);
+                            extraWrite.put(k.getLocalPart(), text -> {
+                                try {
+                                    PropertyBindingSupport.build()
+                                            .withCamelContext(camelContext)
+                                            .withTarget(definition)
+                                            .withMandatory(true)
+                                            .withProperty(k.getLocalPart(), text)
+                                            .bind();
+                                } catch (Exception e) {
+                                    throw RuntimeCamelException.wrapRuntimeException(e);
+                                }
+                            });
+                        }
+                    }
+                });
+                readProperties = extraRead;
+                writeProperties = extraWrite;
+            }
+        }
+
         if (readProperties != null && !readProperties.isEmpty()) {
             if (LOG.isTraceEnabled()) {
                 LOG.trace("There are {} properties on: {}", readProperties.size(), definition);
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java b/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java
index e22b671..301e668 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/properties/OptionalPropertiesDslInvalidSyntaxTest.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.properties;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.PropertyBindingException;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.Test;
 
@@ -59,8 +60,10 @@ public class OptionalPropertiesDslInvalidSyntaxTest extends ContextTestSupport {
             context.start();
             fail("Should have thrown exception");
         } catch (Exception e) {
-            IllegalArgumentException cause = assertIsInstanceOf(IllegalArgumentException.class, e.getCause());
-            assertEquals("No setter to set property: xxx to: true on: Multicast[[To[mock:a], ThrowException[java.lang.IllegalAccessException], To[mock:b]]]", cause.getMessage());
+            PropertyBindingException cause = assertIsInstanceOf(PropertyBindingException.class, e.getCause());
+            assertEquals("xxx", cause.getPropertyName());
+            assertEquals("true", cause.getValue());
+            assertTrue(cause.getMessage().startsWith("Error binding property (xxx=true) with name: xxx on bean: Multicast"));
         }
     }
 

Reply | Threaded
Open this post in threaded view
|

[camel] 07/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 99836d9f16e1e453490e12a5096cc37108f4e085
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 06:12:37 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../camel/model/ProcessorDefinitionHelper.java     | 81 +++++++---------------
 .../org/apache/camel/reifier/ChoiceReifier.java    |  3 -
 .../org/apache/camel/reifier/ProcessorReifier.java | 12 ----
 ...RouteWithConstantFieldFromExchangeFailTest.java |  1 +
 4 files changed, 25 insertions(+), 72 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 439ffbe..69e06b3 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -32,6 +32,7 @@ import java.util.function.Supplier;
 import javax.xml.namespace.QName;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.Exchange;
 import org.apache.camel.NamedNode;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.ExecutorServiceManager;
@@ -40,6 +41,7 @@ import org.apache.camel.spi.RouteContext;
 import org.apache.camel.support.IntrospectionSupport;
 import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.StringHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -668,7 +670,10 @@ public final class ProcessorDefinitionHelper {
      * Inspects the given definition and resolves any property placeholders from its properties.
      * <p/>
      * This implementation will check all the getter/setter pairs on this instance and for all the values
-     * (which is a String type) will be property placeholder resolved. The definition should implement {@link OtherAttributesAware}
+     * (which is a String type) will be property placeholder resolved.
+     * Additional properties are also resolved if the definition implements {@link OtherAttributesAware}.
+     * Also known constant fields on {@link Exchange} is replaced with their actual constant value, eg
+     * <tt>Exchange.FILE_NAME</tt> is replaced with <tt>CamelFileName</tt>.
      *
      * @param camelContext the Camel context
      * @param definition   the definition which should implement {@link OtherAttributesAware}
@@ -692,12 +697,12 @@ public final class ProcessorDefinitionHelper {
         Map<String, Supplier<String>> readProperties = ppa.getReadPropertyPlaceholderOptions(camelContext);
         Map<String, Consumer<String>> writeProperties = ppa.getWritePropertyPlaceholderOptions(camelContext);
 
-        // processor's may have additional placeholder properties (can typically be used by the XML DSL to
+        // definitions may have additional placeholder properties (can typically be used by the XML DSL to
         // allow to configure using placeholders for properties that are not xs:string types)
-        if (definition instanceof ProcessorDefinition) {
-            ProcessorDefinition pd = (ProcessorDefinition) definition;
+        if (definition instanceof OtherAttributesAware) {
+            OtherAttributesAware ooa = (OtherAttributesAware) definition;
 
-            if (pd.getOtherAttributes() != null && !pd.getOtherAttributes().isEmpty()) {
+            if (ooa.getOtherAttributes() != null && !ooa.getOtherAttributes().isEmpty()) {
                 Map<String, Supplier<String>> extraRead = new HashMap<>();
                 if (readProperties != null && !readProperties.isEmpty()) {
                     extraRead.putAll(readProperties);
@@ -707,7 +712,7 @@ public final class ProcessorDefinitionHelper {
                     extraWrite.putAll(writeProperties);
                 }
 
-                Map<QName, Object> other = pd.getOtherAttributes();
+                Map<QName, Object> other = ooa.getOtherAttributes();
                 other.forEach((k, v) -> {
                     if (Constants.PLACEHOLDER_QNAME.equals(k.getNamespaceURI())) {
                         if (v instanceof String) {
@@ -757,6 +762,19 @@ public final class ProcessorDefinitionHelper {
                 String name = entry.getKey();
                 String value = entry.getValue().get();
                 String text = camelContext.resolvePropertyPlaceholders(value);
+
+                // is the value a known field (currently we only support constants from Exchange.class)
+                if (text != null && text.startsWith("Exchange.")) {
+                    String field = StringHelper.after(text, "Exchange.");
+                    // TODO: Avoid reflection via fields
+                    String constant = ObjectHelper.lookupConstantFieldValue(Exchange.class, field);
+                    if (constant != null) {
+                        text = constant;
+                    } else {
+                        throw new IllegalArgumentException("Constant field with name: " + field + " not found on Exchange.class");
+                    }
+                }
+
                 if (!Objects.equals(text, value)) {
                     writeProperties.get(name).accept(text);
                     changedProperties.put(name, value);
@@ -769,55 +787,4 @@ public final class ProcessorDefinitionHelper {
         addRestoreAction(writeProperties, changedProperties);
     }
 
-    /**
-     * Inspects the given definition and resolves known fields
-     * <p/>
-     * This implementation will check all the getter/setter pairs on this instance and for all the values
-     * (which is a String type) will check if it refers to a known field (such as on Exchange).
-     *
-     * @param camelContext the camel context
-     * @param definition   the definition
-     */
-    public static void resolveKnownConstantFields(CamelContext camelContext, Object definition) throws Exception {
-        LOG.trace("Resolving known fields for: {}", definition);
-
-        // TODO: implement this
-/*
-        // find all String getter/setter
-        Map<String, Object> properties = new HashMap<>();
-        IntrospectionSupport.getProperties(definition, properties, null);
-
-        Map<String, Object> changedProperties = new HashMap<>();
-        if (!properties.isEmpty()) {
-            LOG.trace("There are {} properties on: {}", properties.size(), definition);
-
-            // lookup and resolve known constant fields for String based properties
-            for (Map.Entry<String, Object> entry : properties.entrySet()) {
-                String name = entry.getKey();
-                Object value = entry.getValue();
-                if (value instanceof String) {
-                    // we can only resolve String typed values
-                    String text = (String) value;
-
-                    // is the value a known field (currently we only support constants from Exchange.class)
-                    if (text.startsWith("Exchange.")) {
-                        String field = StringHelper.after(text, "Exchange.");
-                        String constant = ObjectHelper.lookupConstantFieldValue(Exchange.class, field);
-                        if (constant != null) {
-                            // invoke setter as the text has changed
-                            IntrospectionSupport.setProperty(camelContext, definition, name, constant);
-                            changedProperties.put(name, value);
-                            if (LOG.isDebugEnabled()) {
-                                LOG.debug("Changed property [{}] from: {} to: {}", name, value, constant);
-                            }
-                        } else {
-                            throw new IllegalArgumentException("Constant field with name: " + field + " not found on Exchange.class");
-                        }
-                    }
-                }
-            }
-        }
-        addRestoreAction(camelContext, definition, changedProperties);*/
-    }
-
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/ChoiceReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/ChoiceReifier.java
index e8b8461..8524fa9 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/ChoiceReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/ChoiceReifier.java
@@ -66,9 +66,6 @@ public class ChoiceReifier extends ProcessorReifier<ChoiceDefinition> {
             if (exp != null) {
                 // resolve properties before we create the processor
                 ProcessorDefinitionHelper.resolvePropertyPlaceholders(routeContext.getCamelContext(), exp);
-
-                // resolve constant fields (eg Exchange.FILE_NAME)
-                ProcessorDefinitionHelper.resolveKnownConstantFields(routeContext.getCamelContext(), exp);
             }
 
             FilterProcessor filter = (FilterProcessor) createProcessor(routeContext, whenClause);
diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 8f4a253..460443e 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -446,9 +446,6 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> {
             // resolve properties before we create the processor
             ProcessorDefinitionHelper.resolvePropertyPlaceholders(routeContext.getCamelContext(), output);
 
-            // resolve constant fields (eg Exchange.FILE_NAME)
-            ProcessorDefinitionHelper.resolveKnownConstantFields(routeContext.getCamelContext(), output);
-
             // also resolve properties and constant fields on embedded expressions
             ProcessorDefinition<?> me = (ProcessorDefinition<?>) output;
             if (me instanceof ExpressionNode) {
@@ -457,9 +454,6 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> {
                 if (expressionDefinition != null) {
                     // resolve properties before we create the processor
                     ProcessorDefinitionHelper.resolvePropertyPlaceholders(routeContext.getCamelContext(), expressionDefinition);
-
-                    // resolve constant fields (eg Exchange.FILE_NAME)
-                    ProcessorDefinitionHelper.resolveKnownConstantFields(routeContext.getCamelContext(), expressionDefinition);
                 }
             }
 
@@ -529,9 +523,6 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> {
         // resolve properties before we create the processor
         ProcessorDefinitionHelper.resolvePropertyPlaceholders(routeContext.getCamelContext(), definition);
 
-        // resolve constant fields (eg Exchange.FILE_NAME)
-        ProcessorDefinitionHelper.resolveKnownConstantFields(routeContext.getCamelContext(), definition);
-
         // also resolve properties and constant fields on embedded expressions
         ProcessorDefinition<?> me = definition;
         if (me instanceof ExpressionNode) {
@@ -540,9 +531,6 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> {
             if (expressionDefinition != null) {
                 // resolve properties before we create the processor
                 ProcessorDefinitionHelper.resolvePropertyPlaceholders(routeContext.getCamelContext(), expressionDefinition);
-
-                // resolve constant fields (eg Exchange.FILE_NAME)
-                ProcessorDefinitionHelper.resolveKnownConstantFields(routeContext.getCamelContext(), expressionDefinition);
             }
         }
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/RouteWithConstantFieldFromExchangeFailTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/RouteWithConstantFieldFromExchangeFailTest.java
index 669aeef..fed484d 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/RouteWithConstantFieldFromExchangeFailTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/RouteWithConstantFieldFromExchangeFailTest.java
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 package org.apache.camel.processor;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.junit.Before;

Reply | Threaded
Open this post in threaded view
|

[camel] 08/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit c2fb87f3315a2ae353f82b93b89454076daddccc
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 08:24:33 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../org/apache/camel/reifier/ProcessorReifier.java |  4 +-
 .../apt/CoreEipAnnotationProcessorHelper.java      | 51 ++++++++++++----------
 2 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
index 460443e..5298219 100644
--- a/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
+++ b/core/camel-core/src/main/java/org/apache/camel/reifier/ProcessorReifier.java
@@ -113,7 +113,9 @@ public abstract class ProcessorReifier<T extends ProcessorDefinition<?>> {
 
     private static final Map<Class<?>, Function<ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>>> PROCESSORS;
     static {
-        Map<Class<?>, Function<ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>>> map = new HashMap<>();
+        // NOTE: if adding a new class then update the initial capacity of the HashMap
+        Map<Class<?>, Function<ProcessorDefinition<?>, ProcessorReifier<? extends ProcessorDefinition<?>>>> map
+                = new HashMap<>(65);
         map.put(AggregateDefinition.class, AggregateReifier::new);
         map.put(BeanDefinition.class, BeanReifier::new);
         map.put(CatchDefinition.class, CatchReifier::new);
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index fc00956..6b49614 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -18,7 +18,6 @@ package org.apache.camel.tools.apt;
 
 import java.io.PrintWriter;
 import java.io.Writer;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -46,7 +45,6 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.XmlValue;
 
-import jdk.nashorn.internal.ir.debug.ClassHistogramElement;
 import org.apache.camel.spi.AsPredicate;
 import org.apache.camel.spi.Metadata;
 import org.apache.camel.tools.apt.helper.IOHelper;
@@ -54,7 +52,6 @@ import org.apache.camel.tools.apt.helper.JsonSchemaHelper;
 import org.apache.camel.tools.apt.helper.Strings;
 
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.dumpExceptionToErrorFile;
-import static org.apache.camel.tools.apt.AnnotationProcessorHelper.error;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findJavaDoc;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElement;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElementChildren;
@@ -68,7 +65,9 @@ import static org.apache.camel.tools.apt.helper.Strings.safeNull;
 
 /**
  * Process all camel-core's model classes (EIPs and DSL) and generate json
- * schema documentation
+ * schema documentation and for some models java source code is generated
+ * which allows for faster property placeholder resolution at runtime; without the
+ * overhead of using reflections.
  */
 public class CoreEipAnnotationProcessorHelper {
 
@@ -130,19 +129,18 @@ public class CoreEipAnnotationProcessorHelper {
         }
 
         // write json schema and property placeholder provider
-        processFile(processingEnv, packageName, fileName, writer -> writeJSonSchemeDocumentation(processingEnv, writer,
+        processFile(processingEnv, packageName, fileName, writer -> writeJSonSchemeAndPropertyPlaceholderProvider(processingEnv, writer,
                 roundEnv, classElement, rootElement, javaTypeName, name, propertyPlaceholderDefinitions));
 
-        // if last then generate
+        // if last then generate source code for helper that contains all the generated property placeholder providers
+        // (this allows fast property placeholders at runtime without reflection overhead)
         if (last) {
-            // lets sort themfirst
             writePropertyPlaceholderDefinitionsHelper(processingEnv, roundEnv, propertyPlaceholderDefinitions);
         }
     }
 
-    // TODO: rename this
-    protected void writeJSonSchemeDocumentation(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
-                                                XmlRootElement rootElement, String javaTypeName, String modelName, Set<String> propertyPlaceholderDefinitions) {
+    protected void writeJSonSchemeAndPropertyPlaceholderProvider(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
+                                                                 XmlRootElement rootElement, String javaTypeName, String modelName, Set<String> propertyPlaceholderDefinitions) {
         // gather eip information
         EipModel eipModel = findEipModelProperties(processingEnv, roundEnv, classElement, javaTypeName, modelName);
 
@@ -156,17 +154,19 @@ public class CoreEipAnnotationProcessorHelper {
         eipModel.setInput(hasInput(processingEnv, roundEnv, classElement));
         eipModel.setOutput(hasOutput(eipModel, eipOptions));
 
+        // write json schema file
         String json = createParameterJsonSchema(eipModel, eipOptions);
         writer.println(json);
 
-        // write property placeholder source code
-        writePropertyPlaceholderProviderSource(processingEnv, writer, roundEnv, classElement, eipModel, eipOptions, propertyPlaceholderDefinitions);
+        // generate property placeholder provider java source code
+        generatePropertyPlaceholderProviderSource(processingEnv, writer, roundEnv, classElement, eipModel, eipOptions, propertyPlaceholderDefinitions);
     }
 
-    protected void writePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
-                                                          EipModel eipModel, Set<EipOption> options, Set<String> propertyPlaceholderDefinitions) {
+    protected void generatePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, PrintWriter writer, RoundEnvironment roundEnv, TypeElement classElement,
+                                                             EipModel eipModel, Set<EipOption> options, Set<String> propertyPlaceholderDefinitions) {
 
-        // the following are valid class elements which we want to generate
+        // not ever model classes support property placeholders as this has been limited to mainly Camel routes
+        // so filter out unwanted models
         boolean rest = classElement.getQualifiedName().toString().startsWith("org.apache.camel.model.rest");
         boolean processor = hasSuperClass(processingEnv, roundEnv, classElement, "org.apache.camel.model.ProcessorDefinition");
         boolean language = hasSuperClass(processingEnv, roundEnv, classElement, "org.apache.camel.model.language.ExpressionDefinition");
@@ -238,7 +238,7 @@ public class CoreEipAnnotationProcessorHelper {
             for (EipOption option : options) {
                 if ("java.lang.String".equals(option.getType())) {
                     found = true;
-                    String getOrSet = sanitizeOptionName(def, option);
+                    String getOrSet = sanitizePropertyPlaceholderOptionName(def, option);
                     getOrSet = Character.toUpperCase(getOrSet.charAt(0)) + getOrSet.substring(1);
                     w.write("        readPlaceholders.put(\"" + option.getName() + "\", definition::get" + getOrSet + ");\n");
                     w.write("        writePlaceholders.put(\"" + option.getName() + "\", definition::set" + getOrSet + ");\n");
@@ -270,8 +270,11 @@ public class CoreEipAnnotationProcessorHelper {
         }
     }
 
-    public String sanitizeOptionName(String def, EipOption option) {
-        // some elements have different setter/getter names vs the xml dsl
+    /**
+     * Some models have different setter/getter names vs the xml name (eg as defined in @XmlAttribute).
+     * So we need to correct this using this method.
+     */
+    public String sanitizePropertyPlaceholderOptionName(String def, EipOption option) {
         if ("SimpleExpression".equals(def) || "JsonPathExpression".equals(def)) {
             if ("resultType".equals(option.getName())) {
                 return "resultTypeName";
@@ -336,7 +339,7 @@ public class CoreEipAnnotationProcessorHelper {
             w.write("\n");
             w.write("    private static final Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> MAP;\n");
             w.write("    static {\n");
-            w.write("        Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> map = new HashMap<>();\n");
+            w.write("        Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> map = new HashMap<>(" + propertyPlaceholderDefinitions.size() + ");\n");
             for (String def : propertyPlaceholderDefinitions) {
                 String cn = def.substring(def.lastIndexOf('.') + 1);
                 w.write("        map.put(" + cn + ".class, " + cn + "PropertyPlaceholderProvider::new);\n");
@@ -1501,19 +1504,19 @@ public class CoreEipAnnotationProcessorHelper {
 
         @Override
         public int compare(EipOption o1, EipOption o2) {
-            int weigth = weigth(o1);
-            int weigth2 = weigth(o2);
+            int weight = weight(o1);
+            int weight2 = weight(o2);
 
-            if (weigth == weigth2) {
+            if (weight == weight2) {
                 // keep the current order
                 return 1;
             } else {
                 // sort according to weight
-                return weigth2 - weigth;
+                return weight2 - weight;
             }
         }
 
-        private int weigth(EipOption o) {
+        private int weight(EipOption o) {
             String name = o.getName();
 
             // these should be first

Reply | Threaded
Open this post in threaded view
|

[camel] 09/21: CAMEL-13850: Fixed CS

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit bc066492abd82eaa8d8c9e4ec47e9d2fc5ba16e6
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 08:35:59 2019 +0200

    CAMEL-13850: Fixed CS
---
 .../camel/model/DefinitionPropertyPlaceholderConfigurable.java | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
index 16520e3..1209972 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
@@ -1,13 +1,13 @@
-/**
+/*
  * 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
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
+ *
+ *      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.
@@ -16,14 +16,12 @@
  */
 package org.apache.camel.model;
 
-import java.util.HashMap;
 import java.util.Map;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper;
-import org.apache.camel.spi.PropertiesComponent;
 
 /**
  * To be used for configuring property placeholder options on the EIP models.

Reply | Threaded
Open this post in threaded view
|

[camel] 10/21: CAMEL-13850: Polished

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 386687cfd6d66d44e9f6529f9c3fa2fc1d1b82b8
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 08:37:57 2019 +0200

    CAMEL-13850: Polished
---
 .../src/main/java/org/apache/camel/model/FromDefinition.java         | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
index fb4d762..78df141 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/FromDefinition.java
@@ -16,17 +16,12 @@
  */
 package org.apache.camel.model;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Consumer;
-import java.util.function.Supplier;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
 
-import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.builder.EndpointConsumerBuilder;
 import org.apache.camel.spi.Metadata;

Reply | Threaded
Open this post in threaded view
|

[camel] 11/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit e59cf7a415deccc2031343c9fca04fae34a226c9
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 08:54:11 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../camel/spi/PropertyPlaceholderConfigurer.java}  | 28 +++++++---------------
 .../apache/camel/model/DataFormatDefinition.java   |  2 +-
 ...> DefinitionPropertyPlaceholderConfigurer.java} |  9 +++----
 .../camel/model/OptionalIdentifiedDefinition.java  |  2 +-
 .../camel/model/ProcessorDefinitionHelper.java     |  7 +++---
 .../camel/model/language/ExpressionDefinition.java |  4 ++--
 .../apt/CoreEipAnnotationProcessorHelper.java      | 16 ++++++-------
 7 files changed, 29 insertions(+), 39 deletions(-)

diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java b/core/camel-api/src/main/java/org/apache/camel/spi/PropertyPlaceholderConfigurer.java
similarity index 51%
copy from core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
copy to core/camel-api/src/main/java/org/apache/camel/spi/PropertyPlaceholderConfigurer.java
index 1209972..34b7693 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
+++ b/core/camel-api/src/main/java/org/apache/camel/spi/PropertyPlaceholderConfigurer.java
@@ -1,51 +1,41 @@
-/*
+/**
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * 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.model;
+package org.apache.camel.spi;
 
 import java.util.Map;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper;
 
-/**
- * To be used for configuring property placeholder options on the EIP models.
- */
-public interface DefinitionPropertyPlaceholderConfigurable {
+public interface PropertyPlaceholderConfigurer {
 
     /**
-     * Gets the options on the model definition which supports property placeholders and can be resolved.
+     * Gets the options which supports property placeholders and can be resolved.
      * This will be all the string based options.
      *
      * @return key/values of options
      */
-    default Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
-        return aware != null ? aware.getReadPropertyPlaceholderOptions(camelContext) : null;
-    }
+    Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext);
 
     /**
      * To update an existing property using the function with the key/value and returning the changed value
      * This will be all the string based options.
      */
-    default Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
-        return aware != null ? aware.getWritePropertyPlaceholderOptions(camelContext) : null;
-    }
+    Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext);
 
 }
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
index f36fb68..6e14717 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DataFormatDefinition.java
@@ -35,7 +35,7 @@ import org.apache.camel.spi.Metadata;
 @Metadata(label = "dataformat,transformation")
 @XmlType(name = "dataFormat")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class DataFormatDefinition extends IdentifiedType implements OtherAttributesAware, DefinitionPropertyPlaceholderConfigurable {
+public class DataFormatDefinition extends IdentifiedType implements OtherAttributesAware, DefinitionPropertyPlaceholderConfigurer {
     @XmlTransient
     private DataFormat dataFormat;
     @XmlTransient
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurer.java
similarity index 78%
rename from core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
rename to core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurer.java
index 1209972..65ec401 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurable.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/DefinitionPropertyPlaceholderConfigurer.java
@@ -22,11 +22,12 @@ import java.util.function.Supplier;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper;
+import org.apache.camel.spi.PropertyPlaceholderConfigurer;
 
 /**
  * To be used for configuring property placeholder options on the EIP models.
  */
-public interface DefinitionPropertyPlaceholderConfigurable {
+public interface DefinitionPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
 
     /**
      * Gets the options on the model definition which supports property placeholders and can be resolved.
@@ -35,8 +36,8 @@ public interface DefinitionPropertyPlaceholderConfigurable {
      * @return key/values of options
      */
     default Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {
-        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
-        return aware != null ? aware.getReadPropertyPlaceholderOptions(camelContext) : null;
+        PropertyPlaceholderConfigurer configurer = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
+        return configurer != null ? configurer.getReadPropertyPlaceholderOptions(camelContext) : null;
     }
 
     /**
@@ -44,7 +45,7 @@ public interface DefinitionPropertyPlaceholderConfigurable {
      * This will be all the string based options.
      */
     default Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {
-        DefinitionPropertyPlaceholderConfigurable aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
+        PropertyPlaceholderConfigurer aware = DefinitionPropertiesPlaceholderProviderHelper.provider(this).orElse(null);
         return aware != null ? aware.getWritePropertyPlaceholderOptions(camelContext) : null;
     }
 
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
index 9ca6bff..1fb350f 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/OptionalIdentifiedDefinition.java
@@ -31,7 +31,7 @@ import org.apache.camel.spi.NodeIdFactory;
 @XmlType(name = "optionalIdentifiedDefinition")
 @XmlAccessorType(XmlAccessType.PROPERTY)
 // must use XmlAccessType.PROPERTY which is required by camel-spring / camel-blueprint for their namespace parsers
-public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode, DefinitionPropertyPlaceholderConfigurable {
+public abstract class OptionalIdentifiedDefinition<T extends OptionalIdentifiedDefinition<T>> implements NamedNode, DefinitionPropertyPlaceholderConfigurer {
 
     private String id;
     private Boolean customId;
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
index 69e06b3..947ee37 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinitionHelper.java
@@ -28,7 +28,6 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
-
 import javax.xml.namespace.QName;
 
 import org.apache.camel.CamelContext;
@@ -37,8 +36,8 @@ import org.apache.camel.NamedNode;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.spi.ExecutorServiceManager;
 import org.apache.camel.spi.PropertiesComponent;
+import org.apache.camel.spi.PropertyPlaceholderConfigurer;
 import org.apache.camel.spi.RouteContext;
-import org.apache.camel.support.IntrospectionSupport;
 import org.apache.camel.support.PropertyBindingSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.StringHelper;
@@ -686,11 +685,11 @@ public final class ProcessorDefinitionHelper {
         LOG.trace("Resolving property placeholders for: {}", definition);
 
         // only do this for models that supports property placeholders
-        if (!(definition instanceof DefinitionPropertyPlaceholderConfigurable)) {
+        if (!(definition instanceof PropertyPlaceholderConfigurer)) {
             return;
         }
 
-        DefinitionPropertyPlaceholderConfigurable ppa = (DefinitionPropertyPlaceholderConfigurable) definition;
+        PropertyPlaceholderConfigurer ppa = (PropertyPlaceholderConfigurer) definition;
 
         // find all getter/setter which we can use for property placeholders
         Map<String, String> changedProperties = new HashMap<>();
diff --git a/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java b/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
index 4e8fb41..4f59766f 100644
--- a/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
+++ b/core/camel-core/src/main/java/org/apache/camel/model/language/ExpressionDefinition.java
@@ -38,7 +38,7 @@ import org.apache.camel.Expression;
 import org.apache.camel.ExpressionFactory;
 import org.apache.camel.NoSuchLanguageException;
 import org.apache.camel.Predicate;
-import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable;
+import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurer;
 import org.apache.camel.model.OtherAttributesAware;
 import org.apache.camel.spi.Language;
 import org.apache.camel.spi.Metadata;
@@ -56,7 +56,7 @@ import org.apache.camel.util.ObjectHelper;
 @XmlRootElement
 @XmlType(name = "expression") // must be named expression
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ExpressionDefinition implements Expression, Predicate, OtherAttributesAware, ExpressionFactory, DefinitionPropertyPlaceholderConfigurable {
+public class ExpressionDefinition implements Expression, Predicate, OtherAttributesAware, ExpressionFactory, DefinitionPropertyPlaceholderConfigurer {
     @XmlAttribute
     @XmlID
     private String id;
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index 6b49614..93f57a0 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -176,7 +176,7 @@ public class CoreEipAnnotationProcessorHelper {
             return;
         }
 
-        TypeElement parent = findTypeElement(processingEnv, roundEnv, "org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable");
+        TypeElement parent = findTypeElement(processingEnv, roundEnv, "org.apache.camel.spi.PropertyPlaceholderConfigurer");
         String def = classElement.getSimpleName().toString();
         String fqnDef = classElement.getQualifiedName().toString();
         String cn = def + "PropertyPlaceholderProvider";
@@ -220,9 +220,9 @@ public class CoreEipAnnotationProcessorHelper {
             w.write("\n");
             w.write("import org.apache.camel.CamelContext;\n");
             w.write("import " + fqnDef + ";\n");
-            w.write("import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable;\n");
+            w.write("import org.apache.camel.spi.PropertyPlaceholderConfigurer;\n");
             w.write("\n");
-            w.write("public class " + cn + " implements DefinitionPropertyPlaceholderConfigurable {\n");
+            w.write("public class " + cn + " implements PropertyPlaceholderConfigurer {\n");
             w.write("\n");
             w.write("    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();\n");
             w.write("    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();\n");
@@ -330,16 +330,16 @@ public class CoreEipAnnotationProcessorHelper {
             w.write("import java.util.function.Function;\n");
             w.write("import java.util.function.Supplier;\n");
             w.write("\n");
-            w.write("import org.apache.camel.model.DefinitionPropertyPlaceholderConfigurable;\n");
+            w.write("import org.apache.camel.spi.PropertyPlaceholderConfigurer;\n");
             for (String def : propertyPlaceholderDefinitions) {
                 w.write("import " + def + ";\n");
             }
             w.write("\n");
             w.write("public class DefinitionPropertiesPlaceholderProviderHelper {\n");
             w.write("\n");
-            w.write("    private static final Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> MAP;\n");
+            w.write("    private static final Map<Class, Function<Object, PropertyPlaceholderConfigurer>> MAP;\n");
             w.write("    static {\n");
-            w.write("        Map<Class, Function<Object, DefinitionPropertyPlaceholderConfigurable>> map = new HashMap<>(" + propertyPlaceholderDefinitions.size() + ");\n");
+            w.write("        Map<Class, Function<Object, PropertyPlaceholderConfigurer>> map = new HashMap<>(" + propertyPlaceholderDefinitions.size() + ");\n");
             for (String def : propertyPlaceholderDefinitions) {
                 String cn = def.substring(def.lastIndexOf('.') + 1);
                 w.write("        map.put(" + cn + ".class, " + cn + "PropertyPlaceholderProvider::new);\n");
@@ -347,8 +347,8 @@ public class CoreEipAnnotationProcessorHelper {
             w.write("        MAP = map;\n");
             w.write("    }\n");
             w.write("\n");
-            w.write("    public static Optional<DefinitionPropertyPlaceholderConfigurable> provider(Object definition) {\n");
-            w.write("        Function<Object, DefinitionPropertyPlaceholderConfigurable> func = MAP.get(definition.getClass());\n");
+            w.write("    public static Optional<PropertyPlaceholderConfigurer> provider(Object definition) {\n");
+            w.write("        Function<Object, PropertyPlaceholderConfigurer> func = MAP.get(definition.getClass());\n");
             w.write("        if (func != null) {\n");
             w.write("            return Optional.of(func.apply(definition));\n");
             w.write("        }\n");

Reply | Threaded
Open this post in threaded view
|

[camel] 12/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 59309b7c1d1116ad658f0b436abefd3e4b786f19
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 09:03:36 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../apt/CoreEipAnnotationProcessorHelper.java      | 180 +-----------------
 .../tools/apt/PropertyPlaceholderGenerator.java    | 206 +++++++++++++++++++++
 2 files changed, 212 insertions(+), 174 deletions(-)

diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index 93f57a0..f003530 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -17,7 +17,6 @@
 package org.apache.camel.tools.apt;
 
 import java.io.PrintWriter;
-import java.io.Writer;
 import java.util.Comparator;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
@@ -35,8 +34,6 @@ import javax.lang.model.element.VariableElement;
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.util.ElementFilter;
 import javax.lang.model.util.Elements;
-import javax.tools.Diagnostic;
-import javax.tools.JavaFileObject;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElementRef;
@@ -47,17 +44,16 @@ import javax.xml.bind.annotation.XmlValue;
 
 import org.apache.camel.spi.AsPredicate;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.tools.apt.helper.IOHelper;
 import org.apache.camel.tools.apt.helper.JsonSchemaHelper;
 import org.apache.camel.tools.apt.helper.Strings;
 
-import static org.apache.camel.tools.apt.AnnotationProcessorHelper.dumpExceptionToErrorFile;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findJavaDoc;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElement;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElementChildren;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.hasSuperClass;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.implementsInterface;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.processFile;
+import static org.apache.camel.tools.apt.PropertyPlaceholderGenerator.generatePropertyPlaceholderDefinitionsHelper;
 import static org.apache.camel.tools.apt.helper.JsonSchemaHelper.sanitizeDescription;
 import static org.apache.camel.tools.apt.helper.Strings.canonicalClassName;
 import static org.apache.camel.tools.apt.helper.Strings.isNullOrEmpty;
@@ -135,7 +131,7 @@ public class CoreEipAnnotationProcessorHelper {
         // if last then generate source code for helper that contains all the generated property placeholder providers
         // (this allows fast property placeholders at runtime without reflection overhead)
         if (last) {
-            writePropertyPlaceholderDefinitionsHelper(processingEnv, roundEnv, propertyPlaceholderDefinitions);
+            generatePropertyPlaceholderDefinitionsHelper(processingEnv, roundEnv, propertyPlaceholderDefinitions);
         }
     }
 
@@ -182,7 +178,7 @@ public class CoreEipAnnotationProcessorHelper {
         String cn = def + "PropertyPlaceholderProvider";
         String fqn = "org.apache.camel.model.placeholder." + cn;
 
-        doWritePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
+        PropertyPlaceholderGenerator.generatePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
         propertyPlaceholderDefinitions.add(fqnDef);
 
         // we also need to generate from when we generate route as from can also configure property placeholders
@@ -196,175 +192,11 @@ public class CoreEipAnnotationProcessorHelper {
             options.add(new EipOption("id", null, null, "java.lang.String", false, null, null, false, null, false, null, false, null, false));
             options.add(new EipOption("uri", null, null, "java.lang.String", false, null, null, false, null, false, null, false, null, false));
 
-            doWritePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
+            PropertyPlaceholderGenerator.generatePropertyPlaceholderProviderSource(processingEnv, parent, def, fqnDef, cn, fqn, options);
             propertyPlaceholderDefinitions.add(fqnDef);
         }
     }
 
-    private void doWritePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, TypeElement parent,
-                                                          String def, String fqnDef, String cn, String fqn,
-                                                          Set<EipOption> options) {
-
-        Writer w = null;
-        try {
-            JavaFileObject src = processingEnv.getFiler().createSourceFile(fqn, parent);
-            w = src.openWriter();
-
-            w.write("/* Generated by camel-apt */\n");
-            w.write("package org.apache.camel.model.placeholder;\n");
-            w.write("\n");
-            w.write("import java.util.HashMap;\n");
-            w.write("import java.util.Map;\n");
-            w.write("import java.util.function.Consumer;\n");
-            w.write("import java.util.function.Supplier;\n");
-            w.write("\n");
-            w.write("import org.apache.camel.CamelContext;\n");
-            w.write("import " + fqnDef + ";\n");
-            w.write("import org.apache.camel.spi.PropertyPlaceholderConfigurer;\n");
-            w.write("\n");
-            w.write("public class " + cn + " implements PropertyPlaceholderConfigurer {\n");
-            w.write("\n");
-            w.write("    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();\n");
-            w.write("    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();\n");
-            w.write("\n");
-
-            // add constructor
-            w.write("    public " + cn + "(Object obj) {\n");
-            w.write("        " + def + " definition = (" + def + ") obj;\n");
-            w.write("\n");
-
-            // only include string types as they are the only ones we can use for property placeholders
-            boolean found = false;
-            for (EipOption option : options) {
-                if ("java.lang.String".equals(option.getType())) {
-                    found = true;
-                    String getOrSet = sanitizePropertyPlaceholderOptionName(def, option);
-                    getOrSet = Character.toUpperCase(getOrSet.charAt(0)) + getOrSet.substring(1);
-                    w.write("        readPlaceholders.put(\"" + option.getName() + "\", definition::get" + getOrSet + ");\n");
-                    w.write("        writePlaceholders.put(\"" + option.getName() + "\", definition::set" + getOrSet + ");\n");
-                }
-            }
-            if (!found) {
-                w.write("\n");
-            }
-
-            w.write("    }\n");
-            w.write("\n");
-            w.write("    @Override\n");
-            w.write("    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {\n");
-            w.write("        return readPlaceholders;\n");
-            w.write("    }\n");
-            w.write("\n");
-            w.write("    @Override\n");
-            w.write("    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {\n");
-            w.write("        return writePlaceholders;\n");
-            w.write("    }\n");
-            w.write("\n");
-            w.write("}\n");
-            w.write("\n");
-        } catch (Exception e) {
-            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unable to process annotated elements in " + getClass().getSimpleName() + ": " + e.getMessage());
-            dumpExceptionToErrorFile("camel-apt-error.log", "Error processing annotation in " + getClass().getSimpleName(), e);
-        } finally {
-            IOHelper.close(w);
-        }
-    }
-
-    /**
-     * Some models have different setter/getter names vs the xml name (eg as defined in @XmlAttribute).
-     * So we need to correct this using this method.
-     */
-    public String sanitizePropertyPlaceholderOptionName(String def, EipOption option) {
-        if ("SimpleExpression".equals(def) || "JsonPathExpression".equals(def)) {
-            if ("resultType".equals(option.getName())) {
-                return "resultTypeName";
-            }
-        } else if ("EnrichDefinition".equals(def) || "PollEnrichDefinition".equals(def) || "ClaimCheckDefinition".equals(def)) {
-            if ("strategyRef".equals(option.getName())) {
-                return "aggregationStrategyRef";
-            } else if ("strategyMethodName".equals(option.getName())) {
-                return "aggregationStrategyMethodName";
-            } else if ("strategyMethodAllowNull".equals(option.getName())) {
-                return "aggregationStrategyMethodAllowNull";
-            }
-        } else if ("MethodCallExpression".equals(def)) {
-            if ("beanType".equals(option.getName())) {
-                return "beanTypeName";
-            }
-        } else if ("XPathExpression".equals(def)) {
-            if ("documentType".equals(option.getName())) {
-                return "documentTypeName";
-            } else if ("resultType".equals(option.getName())) {
-                return "resultTypeName";
-            }
-        } else if ("WireTapDefinition".equals(def)) {
-            if ("processorRef".equals(option.getName())) {
-                return "newExchangeProcessorRef";
-            }
-        } else if ("TidyMarkupDataFormat".equals(def)) {
-            if ("dataObjectType".equals(option.getName())) {
-                return "dataObjectTypeName";
-            }
-        } else if ("BindyDataFormat".equals(def)) {
-            if ("classType".equals(option.getName())) {
-                return "classTypeAsString";
-            }
-        }
-
-        return option.getName();
-    }
-
-    private void writePropertyPlaceholderDefinitionsHelper(ProcessingEnvironment processingEnv, RoundEnvironment roundEnv,
-                                                           Set<String> propertyPlaceholderDefinitions) {
-        Writer w = null;
-        try {
-            JavaFileObject src = processingEnv.getFiler().createSourceFile("org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper");
-            w = src.openWriter();
-
-            w.write("/* Generated by camel-apt */\n");
-            w.write("package org.apache.camel.model.placeholder;\n");
-            w.write("\n");
-            w.write("import java.util.HashMap;\n");
-            w.write("import java.util.Map;\n");
-            w.write("import java.util.Optional;\n");
-            w.write("import java.util.function.Function;\n");
-            w.write("import java.util.function.Supplier;\n");
-            w.write("\n");
-            w.write("import org.apache.camel.spi.PropertyPlaceholderConfigurer;\n");
-            for (String def : propertyPlaceholderDefinitions) {
-                w.write("import " + def + ";\n");
-            }
-            w.write("\n");
-            w.write("public class DefinitionPropertiesPlaceholderProviderHelper {\n");
-            w.write("\n");
-            w.write("    private static final Map<Class, Function<Object, PropertyPlaceholderConfigurer>> MAP;\n");
-            w.write("    static {\n");
-            w.write("        Map<Class, Function<Object, PropertyPlaceholderConfigurer>> map = new HashMap<>(" + propertyPlaceholderDefinitions.size() + ");\n");
-            for (String def : propertyPlaceholderDefinitions) {
-                String cn = def.substring(def.lastIndexOf('.') + 1);
-                w.write("        map.put(" + cn + ".class, " + cn + "PropertyPlaceholderProvider::new);\n");
-            }
-            w.write("        MAP = map;\n");
-            w.write("    }\n");
-            w.write("\n");
-            w.write("    public static Optional<PropertyPlaceholderConfigurer> provider(Object definition) {\n");
-            w.write("        Function<Object, PropertyPlaceholderConfigurer> func = MAP.get(definition.getClass());\n");
-            w.write("        if (func != null) {\n");
-            w.write("            return Optional.of(func.apply(definition));\n");
-            w.write("        }\n");
-            w.write("        return Optional.empty();\n");
-            w.write("    }\n");
-            w.write("\n");
-            w.write("}\n");
-            w.write("\n");
-        } catch (Exception e) {
-            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unable to process annotated elements in " + getClass().getSimpleName() + ": " + e.getMessage());
-            dumpExceptionToErrorFile("camel-apt-error.log", "Error processing annotation in " + getClass().getSimpleName(), e);
-        } finally {
-            IOHelper.close(w);
-        }
-    }
-
     public String createParameterJsonSchema(EipModel eipModel, Set<EipOption> options) {
         StringBuilder buffer = new StringBuilder("{");
         // eip model
@@ -1277,7 +1109,7 @@ public class CoreEipAnnotationProcessorHelper {
         return false;
     }
 
-    private static final class EipModel {
+    public static final class EipModel {
 
         private String name;
         private String title;
@@ -1379,7 +1211,7 @@ public class CoreEipAnnotationProcessorHelper {
         }
     }
 
-    private static final class EipOption {
+    public static final class EipOption {
 
         private String name;
         private String displayName;
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java
new file mode 100644
index 0000000..263f86e
--- /dev/null
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java
@@ -0,0 +1,206 @@
+/*
+ * 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.tools.apt;
+
+import java.io.Writer;
+import java.util.Set;
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.annotation.processing.RoundEnvironment;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic;
+import javax.tools.JavaFileObject;
+
+import org.apache.camel.tools.apt.helper.IOHelper;
+
+import static org.apache.camel.tools.apt.AnnotationProcessorHelper.dumpExceptionToErrorFile;
+
+public class PropertyPlaceholderGenerator {
+
+    public static void generatePropertyPlaceholderProviderSource(ProcessingEnvironment processingEnv, TypeElement parent,
+                                                                 String def, String fqnDef, String cn, String fqn,
+                                                                 Set<CoreEipAnnotationProcessorHelper.EipOption> options) {
+
+        Writer w = null;
+        try {
+            JavaFileObject src = processingEnv.getFiler().createSourceFile(fqn, parent);
+            w = src.openWriter();
+
+            w.write("/* Generated by camel-apt */\n");
+            w.write("package org.apache.camel.model.placeholder;\n");
+            w.write("\n");
+            w.write("import java.util.HashMap;\n");
+            w.write("import java.util.Map;\n");
+            w.write("import java.util.function.Consumer;\n");
+            w.write("import java.util.function.Supplier;\n");
+            w.write("\n");
+            w.write("import org.apache.camel.CamelContext;\n");
+            w.write("import " + fqnDef + ";\n");
+            w.write("import org.apache.camel.spi.PropertyPlaceholderConfigurer;\n");
+            w.write("\n");
+            w.write("/**\n");
+            w.write(" * Source code generated by org.apache.camel:apt\n");
+            w.write(" */\n");
+            w.write("public class " + cn + " implements PropertyPlaceholderConfigurer {\n");
+            w.write("\n");
+            w.write("    private final Map<String, Supplier<String>> readPlaceholders = new HashMap<>();\n");
+            w.write("    private final Map<String, Consumer<String>> writePlaceholders = new HashMap<>();\n");
+            w.write("\n");
+
+            // add constructor
+            w.write("    public " + cn + "(Object obj) {\n");
+            w.write("        " + def + " definition = (" + def + ") obj;\n");
+            w.write("\n");
+
+            // only include string types as they are the only ones we can use for property placeholders
+            boolean found = false;
+            for (CoreEipAnnotationProcessorHelper.EipOption option : options) {
+                if ("java.lang.String".equals(option.getType())) {
+                    found = true;
+                    String getOrSet = sanitizePropertyPlaceholderOptionName(def, option);
+                    getOrSet = Character.toUpperCase(getOrSet.charAt(0)) + getOrSet.substring(1);
+                    w.write("        readPlaceholders.put(\"" + option.getName() + "\", definition::get" + getOrSet + ");\n");
+                    w.write("        writePlaceholders.put(\"" + option.getName() + "\", definition::set" + getOrSet + ");\n");
+                }
+            }
+            if (!found) {
+                w.write("\n");
+            }
+
+            w.write("    }\n");
+            w.write("\n");
+            w.write("    @Override\n");
+            w.write("    public Map<String, Supplier<String>> getReadPropertyPlaceholderOptions(CamelContext camelContext) {\n");
+            w.write("        return readPlaceholders;\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("    @Override\n");
+            w.write("    public Map<String, Consumer<String>> getWritePropertyPlaceholderOptions(CamelContext camelContext) {\n");
+            w.write("        return writePlaceholders;\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("}\n");
+            w.write("\n");
+        } catch (Exception e) {
+            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unable to generate source code file: " + fqn + ": " + e.getMessage());
+            dumpExceptionToErrorFile("camel-apt-error.log", "Unable to generate source code file: " + fqn, e);
+        } finally {
+            IOHelper.close(w);
+        }
+    }
+
+    public static void generatePropertyPlaceholderDefinitionsHelper(ProcessingEnvironment processingEnv, RoundEnvironment roundEnv,
+                                                                    Set<String> propertyPlaceholderDefinitions) {
+
+        String fqn = "org.apache.camel.model.placeholder.DefinitionPropertiesPlaceholderProviderHelper";
+
+        Writer w = null;
+        try {
+            JavaFileObject src = processingEnv.getFiler().createSourceFile(fqn);
+            w = src.openWriter();
+
+            w.write("/* Generated by camel-apt */\n");
+            w.write("package org.apache.camel.model.placeholder;\n");
+            w.write("\n");
+            w.write("import java.util.HashMap;\n");
+            w.write("import java.util.Map;\n");
+            w.write("import java.util.Optional;\n");
+            w.write("import java.util.function.Function;\n");
+            w.write("import java.util.function.Supplier;\n");
+            w.write("\n");
+            w.write("import org.apache.camel.spi.PropertyPlaceholderConfigurer;\n");
+            for (String def : propertyPlaceholderDefinitions) {
+                w.write("import " + def + ";\n");
+            }
+            w.write("\n");
+            w.write("/**\n");
+            w.write(" * Source code generated by org.apache.camel:apt\n");
+            w.write(" */\n");
+            w.write("public class DefinitionPropertiesPlaceholderProviderHelper {\n");
+            w.write("\n");
+            w.write("    private static final Map<Class, Function<Object, PropertyPlaceholderConfigurer>> MAP;\n");
+            w.write("    static {\n");
+            w.write("        Map<Class, Function<Object, PropertyPlaceholderConfigurer>> map = new HashMap<>(" + propertyPlaceholderDefinitions.size() + ");\n");
+            for (String def : propertyPlaceholderDefinitions) {
+                String cn = def.substring(def.lastIndexOf('.') + 1);
+                w.write("        map.put(" + cn + ".class, " + cn + "PropertyPlaceholderProvider::new);\n");
+            }
+            w.write("        MAP = map;\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("    public static Optional<PropertyPlaceholderConfigurer> provider(Object definition) {\n");
+            w.write("        Function<Object, PropertyPlaceholderConfigurer> func = MAP.get(definition.getClass());\n");
+            w.write("        if (func != null) {\n");
+            w.write("            return Optional.of(func.apply(definition));\n");
+            w.write("        }\n");
+            w.write("        return Optional.empty();\n");
+            w.write("    }\n");
+            w.write("\n");
+            w.write("}\n");
+            w.write("\n");
+        } catch (Exception e) {
+            processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Unable to generate source code file: " + fqn + ": " + e.getMessage());
+            dumpExceptionToErrorFile("camel-apt-error.log", "Unable to generate source code file: " + fqn, e);
+        } finally {
+            IOHelper.close(w);
+        }
+    }
+
+    /**
+     * Some models have different setter/getter names vs the xml name (eg as defined in @XmlAttribute).
+     * So we need to correct this using this method.
+     */
+    private static String sanitizePropertyPlaceholderOptionName(String def, CoreEipAnnotationProcessorHelper.EipOption option) {
+        if ("SimpleExpression".equals(def) || "JsonPathExpression".equals(def)) {
+            if ("resultType".equals(option.getName())) {
+                return "resultTypeName";
+            }
+        } else if ("EnrichDefinition".equals(def) || "PollEnrichDefinition".equals(def) || "ClaimCheckDefinition".equals(def)) {
+            if ("strategyRef".equals(option.getName())) {
+                return "aggregationStrategyRef";
+            } else if ("strategyMethodName".equals(option.getName())) {
+                return "aggregationStrategyMethodName";
+            } else if ("strategyMethodAllowNull".equals(option.getName())) {
+                return "aggregationStrategyMethodAllowNull";
+            }
+        } else if ("MethodCallExpression".equals(def)) {
+            if ("beanType".equals(option.getName())) {
+                return "beanTypeName";
+            }
+        } else if ("XPathExpression".equals(def)) {
+            if ("documentType".equals(option.getName())) {
+                return "documentTypeName";
+            } else if ("resultType".equals(option.getName())) {
+                return "resultTypeName";
+            }
+        } else if ("WireTapDefinition".equals(def)) {
+            if ("processorRef".equals(option.getName())) {
+                return "newExchangeProcessorRef";
+            }
+        } else if ("TidyMarkupDataFormat".equals(def)) {
+            if ("dataObjectType".equals(option.getName())) {
+                return "dataObjectTypeName";
+            }
+        } else if ("BindyDataFormat".equals(def)) {
+            if ("classType".equals(option.getName())) {
+                return "classTypeAsString";
+            }
+        }
+
+        return option.getName();
+    }
+
+}

Reply | Threaded
Open this post in threaded view
|

[camel] 13/21: CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 06fbd61b51f7ea02e75a0f99284238e13689d024
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 12:11:07 2019 +0200

    CAMEL-13850: Optimize model classes to provide changeable properties that support property placeholders to avoid reflection. Work in progress.
---
 .../java/org/apache/camel/tools/apt/AbstractTypeConverterGenerator.java | 1 +
 .../java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java   | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractTypeConverterGenerator.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractTypeConverterGenerator.java
index a9f16ac..577cc6f 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractTypeConverterGenerator.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractTypeConverterGenerator.java
@@ -208,6 +208,7 @@ public abstract class AbstractTypeConverterGenerator extends AbstractCamelAnnota
         Set<String> converterClasses = new LinkedHashSet<>();
         try (Writer writer = jfo.openWriter()) {
 
+            writer.append("/* Generated by org.apache.camel:apt */\n");
             writer.append("package ").append(p).append(";\n");
             writer.append("\n");
             writer.append("import org.apache.camel.Exchange;\n");
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java
index 263f86e..2cfec56 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/PropertyPlaceholderGenerator.java
@@ -39,7 +39,7 @@ public class PropertyPlaceholderGenerator {
             JavaFileObject src = processingEnv.getFiler().createSourceFile(fqn, parent);
             w = src.openWriter();
 
-            w.write("/* Generated by camel-apt */\n");
+            w.write("/* Generated by org.apache.camel:apt */\n");
             w.write("package org.apache.camel.model.placeholder;\n");
             w.write("\n");
             w.write("import java.util.HashMap;\n");

Reply | Threaded
Open this post in threaded view
|

[camel] 14/21: CAMEL-13850: Remove resolvePropertyPlaceholders on DefaultComponent as this is already supported via camel main, spring boot and other means. This avoid reflection overhead on bootstrap.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit cf12f9c23bd82d0f8c6f0558c1e0445bb1da897e
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 13:12:07 2019 +0200

    CAMEL-13850: Remove resolvePropertyPlaceholders on DefaultComponent as this is already supported via camel main, spring boot and other means. This avoid reflection overhead on bootstrap.
---
 MIGRATION.md                                       |  3 +
 .../org/apache/camel/support/DefaultComponent.java | 31 ---------
 .../camel/support/PropertyPlaceholdersHelper.java  | 80 ----------------------
 3 files changed, 3 insertions(+), 111 deletions(-)

diff --git a/MIGRATION.md b/MIGRATION.md
index a182b1e..eb7b949 100644
--- a/MIGRATION.md
+++ b/MIGRATION.md
@@ -382,6 +382,9 @@ The `Component` and `DataFormat` interfaces now extend `Service` as components a
 
 The class `FactoryFinder` has changed its API to use `Optional` as return types instead of throwing checked `FactoryNotFoundException` or `ClassNotFoundException` etc.
 
+The option `resolvePropertyPlaceholders` on all the components has been removed,
+as property placeholders is already supported via Camel Main, Camel Spring Boot and other means.
+
 #### camel-test
 
 If you are using camel-test and override the `createRegistry` method, for example to register beans from the `JndiRegisty` class, then this is no longer necessary, and instead
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
index ce0f8a8..7d4b73d 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultComponent.java
@@ -34,7 +34,6 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.component.extension.ComponentExtension;
 import org.apache.camel.spi.Metadata;
-import org.apache.camel.spi.PropertiesComponent;
 import org.apache.camel.support.service.ServiceSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
@@ -55,9 +54,6 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
 
     private CamelContext camelContext;
 
-    @Metadata(label = "advanced", defaultValue = "true",
-        description = "Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders.")
-    private boolean resolvePropertyPlaceholders = true;
     @Metadata(label = "advanced",
         description = "Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities")
     private boolean basicPropertyBinding;
@@ -230,22 +226,6 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
     }
 
     /**
-     * Whether the component should resolve property placeholders on itself when starting.
-     * Only properties which are of String type can use property placeholders.
-     */
-    public void setResolvePropertyPlaceholders(boolean resolvePropertyPlaceholders) {
-        this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
-    }
-
-    /**
-     * Whether the component should resolve property placeholders on itself when starting.
-     * Only properties which are of String type can use property placeholders.
-     */
-    public boolean isResolvePropertyPlaceholders() {
-        return resolvePropertyPlaceholders;
-    }
-
-    /**
      * Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities.
      */
     public boolean isBasicPropertyBinding() {
@@ -340,17 +320,6 @@ public abstract class DefaultComponent extends ServiceSupport implements Compone
     @Override
     protected void doStart() throws Exception {
         ObjectHelper.notNull(getCamelContext(), "camelContext");
-
-        if (isResolvePropertyPlaceholders()) {
-            // only resolve property placeholders if its in use
-            PropertiesComponent existing = camelContext.getPropertiesComponent(false);
-            if (existing != null) {
-                log.debug("Resolving property placeholders on component: {}", this);
-                PropertyPlaceholdersHelper.resolvePropertyPlaceholders(camelContext, this);
-            } else {
-                log.debug("Cannot resolve property placeholders on component: {} as PropertiesComponent is not in use", this);
-            }
-        }
     }
 
     @Override
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java
deleted file mode 100644
index 84e44e9..0000000
--- a/core/camel-support/src/main/java/org/apache/camel/support/PropertyPlaceholdersHelper.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * 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.support;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.CamelContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class PropertyPlaceholdersHelper {
-
-    private static final Logger LOG = LoggerFactory.getLogger(PropertyPlaceholdersHelper.class);
-
-    private PropertyPlaceholdersHelper() {
-    }
-
-    /**
-     * Inspects the given definition and resolves any property placeholders from its properties.
-     * <p/>
-     * This implementation will check all the getter/setter pairs on this instance and for all the values
-     * (which is a String type) will be property placeholder resolved.
-     *
-     * @param camelContext the Camel context
-     * @param object   the object
-     * @throws Exception is thrown if property placeholders was used and there was an error resolving them
-     * @see CamelContext#resolvePropertyPlaceholders(String)
-     * @see org.apache.camel.spi.PropertiesComponent
-     */
-    public static void resolvePropertyPlaceholders(CamelContext camelContext, Object object) throws Exception {
-        LOG.trace("Resolving property placeholders for: {}", object);
-
-        // TODO: Like ProcessorDefinitionHelper we want to avoid reflection
-
-        // find all getter/setter which we can use for property placeholders
-        Map<String, Object> properties = new HashMap<>();
-        IntrospectionSupport.getProperties(object, properties, null);
-
-        if (!properties.isEmpty()) {
-            LOG.trace("There are {} properties on: {}", properties.size(), object);
-            // lookup and resolve properties for String based properties
-            for (Map.Entry<String, Object> entry : properties.entrySet()) {
-                // the name is always a String
-                String name = entry.getKey();
-                Object value = entry.getValue();
-                if (value instanceof String) {
-                    // value must be a String, as a String is the key for a property placeholder
-                    String text = (String) value;
-                    text = camelContext.resolvePropertyPlaceholders(text);
-                    if (text != value) {
-                        // invoke setter as the text has changed
-                        boolean changed = IntrospectionSupport.setProperty(camelContext.getTypeConverter(), object, name, text);
-                        if (!changed) {
-                            throw new IllegalArgumentException("No setter to set property: " + name + " to: " + text + " on: " + object);
-                        }
-                        if (LOG.isDebugEnabled()) {
-                            LOG.debug("Changed property [{}] from: {} to: {}", name, value, text);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-}

Reply | Threaded
Open this post in threaded view
|

[camel] 15/21: CAMEL-13850: Remove resolvePropertyPlaceholders on DefaultComponent as this is already supported via camel main, spring boot and other means. This avoid reflection overhead on bootstrap.

davsclaus-2
In reply to this post by davsclaus-2
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.git

commit 6701fa4dc5966cb48ec04a578a450a8155faaeb2
Author: Claus Ibsen <[hidden email]>
AuthorDate: Tue Aug 13 15:54:56 2019 +0200

    CAMEL-13850: Remove resolvePropertyPlaceholders on DefaultComponent as this is already supported via camel main, spring boot and other means. This avoid reflection overhead on bootstrap.
---
 .../camel-activemq/src/main/docs/activemq-component.adoc  |  6 ++----
 .../camel-ahc-ws/src/main/docs/ahc-ws-component.adoc      |  6 ++----
 components/camel-ahc/src/main/docs/ahc-component.adoc     |  6 ++----
 components/camel-amqp/src/main/docs/amqp-component.adoc   |  6 ++----
 components/camel-apns/src/main/docs/apns-component.adoc   |  6 ++----
 .../camel-as2-component/src/main/docs/as2-component.adoc  |  6 ++----
 .../camel-asterisk/src/main/docs/asterisk-component.adoc  |  6 ++----
 components/camel-atmos/src/main/docs/atmos-component.adoc |  6 ++----
 .../src/main/docs/atmosphere-websocket-component.adoc     |  6 ++----
 components/camel-atom/src/main/docs/atom-component.adoc   |  6 ++----
 .../camel-atomix/src/main/docs/atomix-map-component.adoc  |  6 ++----
 .../src/main/docs/atomix-messaging-component.adoc         |  6 ++----
 .../src/main/docs/atomix-multimap-component.adoc          |  6 ++----
 .../src/main/docs/atomix-queue-component.adoc             |  6 ++----
 .../camel-atomix/src/main/docs/atomix-set-component.adoc  |  6 ++----
 .../src/main/docs/atomix-value-component.adoc             |  6 ++----
 components/camel-avro/src/main/docs/avro-component.adoc   |  6 ++----
 components/camel-avro/src/main/docs/avro-dataformat.adoc  |  3 +--
 .../camel-aws-cw/src/main/docs/aws-cw-component.adoc      |  6 ++----
 .../camel-aws-ddb/src/main/docs/aws-ddb-component.adoc    |  6 ++----
 .../src/main/docs/aws-ddbstream-component.adoc            |  6 ++----
 .../camel-aws-ec2/src/main/docs/aws-ec2-component.adoc    |  6 ++----
 .../camel-aws-ecs/src/main/docs/aws-ecs-component.adoc    |  6 ++----
 .../camel-aws-eks/src/main/docs/aws-eks-component.adoc    |  6 ++----
 .../camel-aws-iam/src/main/docs/aws-iam-component.adoc    |  6 ++----
 .../src/main/docs/aws-kinesis-component.adoc              |  6 ++----
 .../src/main/docs/aws-kinesis-firehose-component.adoc     |  6 ++----
 .../camel-aws-kms/src/main/docs/aws-kms-component.adoc    |  6 ++----
 .../src/main/docs/aws-lambda-component.adoc               |  6 ++----
 .../camel-aws-mq/src/main/docs/aws-mq-component.adoc      |  6 ++----
 .../camel-aws-msk/src/main/docs/aws-msk-component.adoc    |  6 ++----
 .../camel-aws-s3/src/main/docs/aws-s3-component.adoc      |  6 ++----
 .../camel-aws-sdb/src/main/docs/aws-sdb-component.adoc    |  6 ++----
 .../camel-aws-ses/src/main/docs/aws-ses-component.adoc    |  6 ++----
 .../camel-aws-sns/src/main/docs/aws-sns-component.adoc    |  6 ++----
 .../camel-aws-sqs/src/main/docs/aws-sqs-component.adoc    |  6 ++----
 .../camel-aws-swf/src/main/docs/aws-swf-component.adoc    |  6 ++----
 .../camel-azure/src/main/docs/azure-blob-component.adoc   |  6 ++----
 .../camel-azure/src/main/docs/azure-queue-component.adoc  |  6 ++----
 .../src/main/docs/bean-validator-component.adoc           |  6 ++----
 components/camel-bean/src/main/docs/bean-component.adoc   |  3 +--
 components/camel-bean/src/main/docs/class-component.adoc  |  3 +--
 .../src/main/docs/beanstalk-component.adoc                |  6 ++----
 .../camel-bonita/src/main/docs/bonita-component.adoc      |  6 ++----
 .../camel-box-component/src/main/docs/box-component.adoc  |  6 ++----
 .../src/main/docs/braintree-component.adoc                |  6 ++----
 .../camel-browse/src/main/docs/browse-component.adoc      |  6 ++----
 .../src/main/docs/caffeine-cache-component.adoc           |  6 ++----
 .../src/main/docs/caffeine-loadcache-component.adoc       |  6 ++----
 .../camel-cassandraql/src/main/docs/cql-component.adoc    |  6 ++----
 .../src/main/docs/chatscript-component.adoc               |  6 ++----
 components/camel-chunk/src/main/docs/chunk-component.adoc |  6 ++----
 .../camel-cm-sms/src/main/docs/cm-sms-component.adoc      |  6 ++----
 components/camel-cmis/src/main/docs/cmis-component.adoc   |  6 ++----
 components/camel-coap/src/main/docs/coap-component.adoc   |  6 ++----
 .../camel-cometd/src/main/docs/cometd-component.adoc      |  6 ++----
 .../camel-consul/src/main/docs/consul-component.adoc      |  6 ++----
 .../src/main/docs/controlbus-component.adoc               |  6 ++----
 components/camel-corda/src/main/docs/corda-component.adoc |  6 ++----
 .../src/main/docs/couchbase-component.adoc                |  6 ++----
 .../camel-couchdb/src/main/docs/couchdb-component.adoc    |  6 ++----
 .../src/main/docs/crypto-cms-component.adoc               |  6 ++----
 .../camel-crypto/src/main/docs/crypto-component.adoc      |  6 ++----
 .../camel-crypto/src/main/docs/crypto-dataformat.adoc     |  3 +--
 components/camel-cxf/src/main/docs/cxf-component.adoc     |  6 ++----
 components/camel-cxf/src/main/docs/cxfrs-component.adoc   |  6 ++----
 .../src/main/docs/dataformat-component.adoc               |  6 ++----
 .../camel-dataset/src/main/docs/dataset-component.adoc    |  6 ++----
 .../src/main/docs/dataset-test-component.adoc             |  6 ++----
 .../src/main/docs/digitalocean-component.adoc             |  6 ++----
 .../camel-direct/src/main/docs/direct-component.adoc      |  6 ++----
 .../camel-directvm/src/main/docs/direct-vm-component.adoc |  3 +--
 .../src/main/docs/disruptor-component.adoc                |  7 ++-----
 components/camel-dns/src/main/docs/dns-component.adoc     |  6 ++----
 .../camel-docker/src/main/docs/docker-component.adoc      |  6 ++----
 components/camel-dozer/src/main/docs/dozer-component.adoc |  6 ++----
 components/camel-drill/src/main/docs/drill-component.adoc |  6 ++----
 .../camel-dropbox/src/main/docs/dropbox-component.adoc    |  6 ++----
 .../camel-ehcache/src/main/docs/ehcache-component.adoc    |  6 ++----
 .../src/main/docs/elasticsearch-rest-component.adoc       |  6 ++----
 components/camel-elsql/src/main/docs/elsql-component.adoc |  6 ++----
 components/camel-etcd/src/main/docs/etcd-component.adoc   |  6 ++----
 .../src/main/docs/eventadmin-component.adoc               |  3 +--
 components/camel-exec/src/main/docs/exec-component.adoc   |  6 ++----
 .../camel-facebook/src/main/docs/facebook-component.adoc  |  6 ++----
 .../src/main/docs/fhir-component.adoc                     |  6 ++----
 .../src/main/docs/file-watch-component.adoc               |  6 ++----
 components/camel-file/src/main/docs/file-component.adoc   |  6 ++----
 .../camel-flatpack/src/main/docs/flatpack-component.adoc  |  6 ++----
 .../camel-flatpack/src/main/docs/flatpack-dataformat.adoc |  3 +--
 components/camel-flink/src/main/docs/flink-component.adoc |  6 ++----
 components/camel-fop/src/main/docs/fop-component.adoc     |  6 ++----
 .../src/main/docs/freemarker-component.adoc               |  6 ++----
 components/camel-ftp/src/main/docs/ftp-component.adoc     |  6 ++----
 components/camel-ftp/src/main/docs/ftps-component.adoc    |  6 ++----
 components/camel-ftp/src/main/docs/sftp-component.adoc    |  3 +--
 .../camel-ganglia/src/main/docs/ganglia-component.adoc    |  6 ++----
 .../camel-geocoder/src/main/docs/geocoder-component.adoc  |  6 ++----
 components/camel-git/src/main/docs/git-component.adoc     |  6 ++----
 .../camel-github/src/main/docs/github-component.adoc      |  6 ++----
 .../src/main/docs/google-bigquery-component.adoc          |  6 ++----
 .../src/main/docs/google-bigquery-sql-component.adoc      |  6 ++----
 .../src/main/docs/google-calendar-component.adoc          |  6 ++----
 .../src/main/docs/google-calendar-stream-component.adoc   |  6 ++----
 .../src/main/docs/google-drive-component.adoc             |  6 ++----
 .../src/main/docs/google-mail-component.adoc              |  6 ++----
 .../src/main/docs/google-mail-stream-component.adoc       |  6 ++----
 .../src/main/docs/google-pubsub-component.adoc            |  6 ++----
 .../src/main/docs/google-sheets-component.adoc            |  6 ++----
 .../src/main/docs/google-sheets-stream-component.adoc     |  6 ++----
 components/camel-gora/src/main/docs/gora-component.adoc   |  6 ++----
 components/camel-grape/src/main/docs/grape-component.adoc |  3 +--
 components/camel-grpc/src/main/docs/grpc-component.adoc   |  6 ++----
 .../src/main/docs/guava-eventbus-component.adoc           |  6 ++----
 .../src/main/docs/hazelcast-atomicvalue-component.adoc    |  6 ++----
 .../src/main/docs/hazelcast-instance-component.adoc       |  6 ++----
 .../src/main/docs/hazelcast-list-component.adoc           |  6 ++----
 .../src/main/docs/hazelcast-map-component.adoc            |  6 ++----
 .../src/main/docs/hazelcast-multimap-component.adoc       |  6 ++----
 .../src/main/docs/hazelcast-queue-component.adoc          |  6 ++----
 .../src/main/docs/hazelcast-replicatedmap-component.adoc  |  6 ++----
 .../src/main/docs/hazelcast-ringbuffer-component.adoc     |  6 ++----
 .../src/main/docs/hazelcast-seda-component.adoc           |  6 ++----
 .../src/main/docs/hazelcast-set-component.adoc            |  6 ++----
 .../src/main/docs/hazelcast-topic-component.adoc          |  6 ++----
 components/camel-hbase/src/main/docs/hbase-component.adoc |  6 ++----
 components/camel-hdfs/src/main/docs/hdfs-component.adoc   |  6 ++----
 .../camel-hipchat/src/main/docs/hipchat-component.adoc    |  6 ++----
 components/camel-http/src/main/docs/http-component.adoc   |  6 ++----
 .../src/main/docs/iec60870-client-component.adoc          |  6 ++----
 .../src/main/docs/iec60870-server-component.adoc          |  6 ++----
 .../src/main/docs/ignite-cache-component.adoc             |  6 ++----
 .../src/main/docs/ignite-compute-component.adoc           |  6 ++----
 .../src/main/docs/ignite-events-component.adoc            |  6 ++----
 .../src/main/docs/ignite-idgen-component.adoc             |  6 ++----
 .../src/main/docs/ignite-messaging-component.adoc         |  6 ++----
 .../src/main/docs/ignite-queue-component.adoc             |  6 ++----
 .../camel-ignite/src/main/docs/ignite-set-component.adoc  |  6 ++----
 .../src/main/docs/infinispan-component.adoc               |  6 ++----
 .../camel-influxdb/src/main/docs/influxdb-component.adoc  |  6 ++----
 components/camel-iota/src/main/docs/iota-component.adoc   |  6 ++----
 components/camel-ipfs/src/main/docs/ipfs-component.adoc   |  6 ++----
 components/camel-irc/src/main/docs/irc-component.adoc     |  6 ++----
 .../camel-ironmq/src/main/docs/ironmq-component.adoc      |  6 ++----
 components/camel-jbpm/src/main/docs/jbpm-component.adoc   |  6 ++----
 .../camel-jcache/src/main/docs/jcache-component.adoc      |  6 ++----
 .../camel-jclouds/src/main/docs/jclouds-component.adoc    |  6 ++----
 components/camel-jcr/src/main/docs/jcr-component.adoc     |  6 ++----
 components/camel-jdbc/src/main/docs/jdbc-component.adoc   |  6 ++----
 components/camel-jetty/src/main/docs/jetty-component.adoc |  6 ++----
 .../src/main/docs/jgroups-raft-component.adoc             |  6 ++----
 .../camel-jgroups/src/main/docs/jgroups-component.adoc    |  6 ++----
 components/camel-jing/src/main/docs/jing-component.adoc   |  6 ++----
 components/camel-jira/src/main/docs/jira-component.adoc   |  6 ++----
 components/camel-jmx/src/main/docs/jmx-component.adoc     |  6 ++----
 components/camel-jolt/src/main/docs/jolt-component.adoc   |  6 ++----
 components/camel-jooq/src/main/docs/jooq-component.adoc   |  6 ++----
 components/camel-jpa/src/main/docs/jpa-component.adoc     |  6 ++----
 components/camel-jsch/src/main/docs/scp-component.adoc    |  6 ++----
 .../src/main/docs/json-validator-component.adoc           |  6 ++----
 components/camel-jt400/src/main/docs/jt400-component.adoc |  6 ++----
 components/camel-kafka/src/main/docs/kafka-component.adoc |  6 ++----
 .../src/main/docs/kubernetes-config-maps-component.adoc   |  6 ++----
 .../src/main/docs/kubernetes-deployments-component.adoc   |  6 ++----
 .../src/main/docs/kubernetes-hpa-component.adoc           |  6 ++----
 .../src/main/docs/kubernetes-job-component.adoc           |  6 ++----
 .../src/main/docs/kubernetes-namespaces-component.adoc    |  6 ++----
 .../src/main/docs/kubernetes-nodes-component.adoc         |  6 ++----
 .../kubernetes-persistent-volumes-claims-component.adoc   |  6 ++----
 .../docs/kubernetes-persistent-volumes-component.adoc     |  6 ++----
 .../src/main/docs/kubernetes-pods-component.adoc          |  6 ++----
 .../kubernetes-replication-controllers-component.adoc     |  6 ++----
 .../main/docs/kubernetes-resources-quota-component.adoc   |  6 ++----
 .../src/main/docs/kubernetes-secrets-component.adoc       |  6 ++----
 .../main/docs/kubernetes-service-accounts-component.adoc  |  6 ++----
 .../src/main/docs/kubernetes-services-component.adoc      |  6 ++----
 .../src/main/docs/openshift-build-configs-component.adoc  |  3 +--
 .../src/main/docs/openshift-builds-component.adoc         |  3 +--
 .../camel-language/src/main/docs/language-component.adoc  |  6 ++----
 components/camel-ldap/src/main/docs/ldap-component.adoc   |  6 ++----
 components/camel-ldif/src/main/docs/ldif-component.adoc   |  6 ++----
 .../src/main/docs/linkedin-component.adoc                 |  6 ++----
 components/camel-log/src/main/docs/log-component.adoc     |  6 ++----
 .../camel-lucene/src/main/docs/lucene-component.adoc      |  6 ++----
 .../src/main/docs/lumberjack-component.adoc               |  6 ++----
 components/camel-mail/src/main/docs/mail-component.adoc   |  6 ++----
 .../camel-master/src/main/docs/master-component.adoc      |  6 ++----
 .../camel-metrics/src/main/docs/metrics-component.adoc    |  6 ++----
 .../src/main/docs/micrometer-component.adoc               |  6 ++----
 .../camel-milo/src/main/docs/milo-client-component.adoc   |  6 ++----
 .../camel-milo/src/main/docs/milo-server-component.adoc   |  6 ++----
 components/camel-mina/src/main/docs/mina-component.adoc   |  6 ++----
 components/camel-mllp/src/main/docs/mllp-component.adoc   |  6 ++----
 components/camel-mock/src/main/docs/mock-component.adoc   |  3 +--
 .../src/main/docs/mongodb-gridfs-component.adoc           |  6 ++----
 .../camel-mongodb/src/main/docs/mongodb-component.adoc    |  6 ++----
 components/camel-mqtt/src/main/docs/mqtt-component.adoc   |  6 ++----
 components/camel-msv/src/main/docs/msv-component.adoc     |  6 ++----
 .../camel-mustache/src/main/docs/mustache-component.adoc  |  6 ++----
 components/camel-mvel/src/main/docs/mvel-component.adoc   |  6 ++----
 components/camel-mvel/src/main/docs/mvel-language.adoc    |  3 +--
 .../src/main/docs/mybatis-bean-component.adoc             |  6 ++----
 .../camel-mybatis/src/main/docs/mybatis-component.adoc    |  6 ++----
 .../camel-nagios/src/main/docs/nagios-component.adoc      |  6 ++----
 components/camel-nats/src/main/docs/nats-component.adoc   |  6 ++----
 .../src/main/docs/netty-http-component.adoc               |  6 ++----
 components/camel-netty/src/main/docs/netty-component.adoc |  6 ++----
 components/camel-nsq/src/main/docs/nsq-component.adoc     |  6 ++----
 .../src/main/docs/olingo2-component.adoc                  |  6 ++----
 .../src/main/docs/olingo4-component.adoc                  |  6 ++----
 .../src/main/docs/openstack-cinder-component.adoc         |  6 ++----
 .../src/main/docs/openstack-glance-component.adoc         |  6 ++----
 .../src/main/docs/openstack-keystone-component.adoc       |  6 ++----
 .../src/main/docs/openstack-neutron-component.adoc        |  6 ++----
 .../src/main/docs/openstack-nova-component.adoc           |  6 ++----
 .../src/main/docs/openstack-swift-component.adoc          |  6 ++----
 .../src/main/docs/optaplanner-component.adoc              |  6 ++----
 components/camel-paho/src/main/docs/paho-component.adoc   |  6 ++----
 .../src/main/docs/paxlogging-component.adoc               |  3 +--
 components/camel-pdf/src/main/docs/pdf-component.adoc     |  6 ++----
 .../src/main/docs/pg-replication-slot-component.adoc      |  6 ++----
 .../camel-pgevent/src/main/docs/pgevent-component.adoc    |  6 ++----
 components/camel-printer/src/main/docs/lpr-component.adoc |  6 ++----
 .../camel-pubnub/src/main/docs/pubnub-component.adoc      |  6 ++----
 .../camel-quartz/src/main/docs/quartz-component.adoc      |  6 ++----
 .../camel-quickfix/src/main/docs/quickfix-component.adoc  |  6 ++----
 .../camel-rabbitmq/src/main/docs/rabbitmq-component.adoc  |  6 ++----
 .../src/main/docs/reactive-streams-component.adoc         |  6 ++----
 components/camel-ref/src/main/docs/ref-component.adoc     |  6 ++----
 .../src/main/docs/rest-swagger-component.adoc             |  6 ++----
 .../camel-rest/src/main/docs/rest-api-component.adoc      |  6 ++----
 components/camel-rest/src/main/docs/rest-component.adoc   |  6 ++----
 .../camel-restlet/src/main/docs/restlet-component.adoc    |  6 ++----
 components/camel-rss/src/main/docs/rss-component.adoc     |  6 ++----
 components/camel-rss/src/main/docs/rss-dataformat.adoc    |  3 +--
 components/camel-saga/src/main/docs/saga-component.adoc   |  6 ++----
 .../src/main/docs/salesforce-component.adoc               |  6 ++----
 .../src/main/docs/sap-netweaver-component.adoc            |  6 ++----
 .../camel-saxon/src/main/docs/xquery-component.adoc       |  6 ++----
 components/camel-saxon/src/main/docs/xquery-language.adoc |  3 +--
 .../src/main/docs/scheduler-component.adoc                |  6 ++----
 .../src/main/docs/schematron-component.adoc               |  6 ++----
 components/camel-seda/src/main/docs/seda-component.adoc   |  6 ++----
 .../camel-service/src/main/docs/service-component.adoc    |  6 ++----
 .../src/main/docs/servicenow-component.adoc               |  6 ++----
 .../camel-servlet/src/main/docs/servlet-component.adoc    |  6 ++----
 components/camel-sip/src/main/docs/sip-component.adoc     |  6 ++----
 .../camel-sjms/src/main/docs/sjms-batch-component.adoc    |  6 ++----
 components/camel-sjms/src/main/docs/sjms-component.adoc   |  6 ++----
 components/camel-sjms2/src/main/docs/sjms2-component.adoc |  6 ++----
 components/camel-slack/src/main/docs/slack-component.adoc |  6 ++----
 components/camel-smpp/src/main/docs/smpp-component.adoc   |  6 ++----
 components/camel-snmp/src/main/docs/snmp-component.adoc   |  6 ++----
 components/camel-solr/src/main/docs/solr-component.adoc   |  6 ++----
 .../camel-soroush/src/main/docs/soroush-component.adoc    |  6 ++----
 .../src/main/docs/spark-rest-component.adoc               |  3 +--
 components/camel-spark/src/main/docs/spark-component.adoc |  6 ++----
 .../camel-splunk/src/main/docs/splunk-component.adoc      |  6 ++----
 .../src/main/docs/spring-batch-component.adoc             |  6 ++----
 .../src/main/docs/spring-integration-component.adoc       |  6 ++----
 .../src/main/docs/spring-ldap-component.adoc              |  6 ++----
 .../src/main/docs/spring-redis-component.adoc             |  6 ++----
 .../src/main/docs/spring-ws-component.adoc                |  6 ++----
 .../src/main/docs/spring-event-component.adoc             |  6 ++----
 components/camel-sql/src/main/docs/sql-component.adoc     |  6 ++----
 .../camel-sql/src/main/docs/sql-stored-component.adoc     |  6 ++----
 components/camel-ssh/src/main/docs/ssh-component.adoc     |  6 ++----
 components/camel-stax/src/main/docs/stax-component.adoc   |  6 ++----
 components/camel-stomp/src/main/docs/stomp-component.adoc |  6 ++----
 .../camel-stream/src/main/docs/stream-component.adoc      |  6 ++----
 .../src/main/docs/string-template-component.adoc          |  6 ++----
 components/camel-stub/src/main/docs/stub-component.adoc   |  6 ++----
 .../camel-telegram/src/main/docs/telegram-component.adoc  |  6 ++----
 .../camel-thrift/src/main/docs/thrift-component.adoc      |  6 ++----
 .../camel-thrift/src/main/docs/thrift-dataformat.adoc     |  3 +--
 components/camel-tika/src/main/docs/tika-component.adoc   |  6 ++----
 components/camel-timer/src/main/docs/timer-component.adoc |  6 ++----
 .../camel-twilio/src/main/docs/twilio-component.adoc      |  6 ++----
 .../src/main/docs/twitter-directmessage-component.adoc    |  6 ++----
 .../src/main/docs/twitter-search-component.adoc           |  6 ++----
 .../src/main/docs/twitter-timeline-component.adoc         |  6 ++----
 .../camel-undertow/src/main/docs/undertow-component.adoc  |  6 ++----
 .../src/main/docs/validator-component.adoc                |  6 ++----
 .../camel-velocity/src/main/docs/velocity-component.adoc  |  6 ++----
 components/camel-vertx/src/main/docs/vertx-component.adoc |  6 ++----
 components/camel-vm/src/main/docs/vm-component.adoc       |  6 ++----
 .../camel-weather/src/main/docs/weather-component.adoc    |  6 ++----
 components/camel-web3j/src/main/docs/web3j-component.adoc |  6 ++----
 .../camel-webhook/src/main/docs/webhook-component.adoc    |  6 ++----
 .../src/main/docs/websocket-jsr356-component.adoc         |  6 ++----
 .../src/main/docs/websocket-component.adoc                |  6 ++----
 .../src/main/docs/wordpress-component.adoc                |  6 ++----
 .../camel-xchange/src/main/docs/xchange-component.adoc    |  6 ++----
 .../src/main/docs/xmlsecurity-component.adoc              |  6 ++----
 components/camel-xmpp/src/main/docs/xmpp-component.adoc   |  6 ++----
 components/camel-xslt/src/main/docs/xslt-component.adoc   |  6 ++----
 .../camel-yammer/src/main/docs/yammer-component.adoc      |  6 ++----
 .../camel-zendesk/src/main/docs/zendesk-component.adoc    |  6 ++----
 .../src/main/docs/zookeeper-master-component.adoc         |  6 ++----
 .../src/main/docs/zookeeper-component.adoc                |  6 ++----
 .../components/modules/ROOT/pages/activemq-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/ahc-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/ahc-ws-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/amqp-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/apns-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/as2-component.adoc     |  6 ++----
 .../components/modules/ROOT/pages/asterisk-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/atmos-component.adoc   |  6 ++----
 .../ROOT/pages/atmosphere-websocket-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/atom-component.adoc    |  6 ++----
 .../modules/ROOT/pages/atomix-map-component.adoc          |  6 ++----
 .../modules/ROOT/pages/atomix-messaging-component.adoc    |  6 ++----
 .../modules/ROOT/pages/atomix-multimap-component.adoc     |  6 ++----
 .../modules/ROOT/pages/atomix-queue-component.adoc        |  6 ++----
 .../modules/ROOT/pages/atomix-set-component.adoc          |  6 ++----
 .../modules/ROOT/pages/atomix-value-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/avro-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/avro-dataformat.adoc   |  3 +--
 docs/components/modules/ROOT/pages/aws-cw-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/aws-ddb-component.adoc |  6 ++----
 .../modules/ROOT/pages/aws-ddbstream-component.adoc       |  6 ++----
 docs/components/modules/ROOT/pages/aws-ec2-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-ecs-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-eks-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-iam-component.adoc |  6 ++----
 .../modules/ROOT/pages/aws-kinesis-component.adoc         |  6 ++----
 .../ROOT/pages/aws-kinesis-firehose-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/aws-kms-component.adoc |  6 ++----
 .../modules/ROOT/pages/aws-lambda-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/aws-mq-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/aws-msk-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-s3-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/aws-sdb-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-ses-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-sns-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-sqs-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/aws-swf-component.adoc |  6 ++----
 .../modules/ROOT/pages/azure-blob-component.adoc          |  6 ++----
 .../modules/ROOT/pages/azure-queue-component.adoc         |  6 ++----
 docs/components/modules/ROOT/pages/bean-component.adoc    |  3 +--
 .../modules/ROOT/pages/bean-validator-component.adoc      |  6 ++----
 .../modules/ROOT/pages/beanstalk-component.adoc           |  6 ++----
 docs/components/modules/ROOT/pages/bonita-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/box-component.adoc     |  6 ++----
 .../modules/ROOT/pages/braintree-component.adoc           |  6 ++----
 docs/components/modules/ROOT/pages/browse-component.adoc  |  6 ++----
 .../modules/ROOT/pages/caffeine-cache-component.adoc      |  6 ++----
 .../modules/ROOT/pages/caffeine-loadcache-component.adoc  |  6 ++----
 .../modules/ROOT/pages/chatscript-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/chunk-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/class-component.adoc   |  3 +--
 docs/components/modules/ROOT/pages/cm-sms-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/cmis-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/coap-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/cometd-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/consul-component.adoc  |  6 ++----
 .../modules/ROOT/pages/controlbus-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/corda-component.adoc   |  6 ++----
 .../modules/ROOT/pages/couchbase-component.adoc           |  6 ++----
 docs/components/modules/ROOT/pages/couchdb-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/cql-component.adoc     |  6 ++----
 .../modules/ROOT/pages/crypto-cms-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/crypto-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/crypto-dataformat.adoc |  3 +--
 docs/components/modules/ROOT/pages/cxf-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/cxfrs-component.adoc   |  6 ++----
 .../modules/ROOT/pages/dataformat-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/dataset-component.adoc |  6 ++----
 .../modules/ROOT/pages/dataset-test-component.adoc        |  6 ++----
 .../modules/ROOT/pages/digitalocean-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/direct-component.adoc  |  6 ++----
 .../modules/ROOT/pages/direct-vm-component.adoc           |  3 +--
 .../modules/ROOT/pages/disruptor-component.adoc           |  7 ++-----
 docs/components/modules/ROOT/pages/dns-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/docker-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/dozer-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/drill-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/dropbox-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/ehcache-component.adoc |  6 ++----
 .../modules/ROOT/pages/elasticsearch-rest-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/elsql-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/etcd-component.adoc    |  6 ++----
 .../modules/ROOT/pages/eventadmin-component.adoc          |  3 +--
 docs/components/modules/ROOT/pages/exec-component.adoc    |  6 ++----
 .../components/modules/ROOT/pages/facebook-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/fhir-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/file-component.adoc    |  6 ++----
 .../modules/ROOT/pages/file-watch-component.adoc          |  6 ++----
 .../components/modules/ROOT/pages/flatpack-component.adoc |  6 ++----
 .../modules/ROOT/pages/flatpack-dataformat.adoc           |  3 +--
 docs/components/modules/ROOT/pages/flink-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/fop-component.adoc     |  6 ++----
 .../modules/ROOT/pages/freemarker-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/ftp-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/ftps-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/ganglia-component.adoc |  6 ++----
 .../components/modules/ROOT/pages/geocoder-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/git-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/github-component.adoc  |  6 ++----
 .../modules/ROOT/pages/google-bigquery-component.adoc     |  6 ++----
 .../modules/ROOT/pages/google-bigquery-sql-component.adoc |  6 ++----
 .../modules/ROOT/pages/google-calendar-component.adoc     |  6 ++----
 .../ROOT/pages/google-calendar-stream-component.adoc      |  6 ++----
 .../modules/ROOT/pages/google-drive-component.adoc        |  6 ++----
 .../modules/ROOT/pages/google-mail-component.adoc         |  6 ++----
 .../modules/ROOT/pages/google-mail-stream-component.adoc  |  6 ++----
 .../modules/ROOT/pages/google-pubsub-component.adoc       |  6 ++----
 .../modules/ROOT/pages/google-sheets-component.adoc       |  6 ++----
 .../ROOT/pages/google-sheets-stream-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/gora-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/grape-component.adoc   |  3 +--
 docs/components/modules/ROOT/pages/grpc-component.adoc    |  6 ++----
 .../modules/ROOT/pages/guava-eventbus-component.adoc      |  6 ++----
 .../ROOT/pages/hazelcast-atomicvalue-component.adoc       |  6 ++----
 .../modules/ROOT/pages/hazelcast-instance-component.adoc  |  6 ++----
 .../modules/ROOT/pages/hazelcast-list-component.adoc      |  6 ++----
 .../modules/ROOT/pages/hazelcast-map-component.adoc       |  6 ++----
 .../modules/ROOT/pages/hazelcast-multimap-component.adoc  |  6 ++----
 .../modules/ROOT/pages/hazelcast-queue-component.adoc     |  6 ++----
 .../ROOT/pages/hazelcast-replicatedmap-component.adoc     |  6 ++----
 .../ROOT/pages/hazelcast-ringbuffer-component.adoc        |  6 ++----
 .../modules/ROOT/pages/hazelcast-seda-component.adoc      |  6 ++----
 .../modules/ROOT/pages/hazelcast-set-component.adoc       |  6 ++----
 .../modules/ROOT/pages/hazelcast-topic-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/hbase-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/hdfs-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/hipchat-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/http-component.adoc    |  6 ++----
 .../modules/ROOT/pages/iec60870-client-component.adoc     |  6 ++----
 .../modules/ROOT/pages/iec60870-server-component.adoc     |  6 ++----
 .../modules/ROOT/pages/ignite-cache-component.adoc        |  6 ++----
 .../modules/ROOT/pages/ignite-compute-component.adoc      |  6 ++----
 .../modules/ROOT/pages/ignite-events-component.adoc       |  6 ++----
 .../modules/ROOT/pages/ignite-idgen-component.adoc        |  6 ++----
 .../modules/ROOT/pages/ignite-messaging-component.adoc    |  6 ++----
 .../modules/ROOT/pages/ignite-queue-component.adoc        |  6 ++----
 .../modules/ROOT/pages/ignite-set-component.adoc          |  6 ++----
 .../modules/ROOT/pages/infinispan-component.adoc          |  6 ++----
 .../components/modules/ROOT/pages/influxdb-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/iota-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/ipfs-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/irc-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/ironmq-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/jbpm-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/jcache-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/jclouds-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/jcr-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/jdbc-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/jetty-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/jgroups-component.adoc |  6 ++----
 .../modules/ROOT/pages/jgroups-raft-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/jing-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/jira-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/jmx-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/jolt-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/jooq-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/jpa-component.adoc     |  6 ++----
 .../modules/ROOT/pages/json-validator-component.adoc      |  6 ++----
 docs/components/modules/ROOT/pages/jt400-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/kafka-component.adoc   |  6 ++----
 .../ROOT/pages/kubernetes-config-maps-component.adoc      |  6 ++----
 .../ROOT/pages/kubernetes-deployments-component.adoc      |  6 ++----
 .../modules/ROOT/pages/kubernetes-hpa-component.adoc      |  6 ++----
 .../modules/ROOT/pages/kubernetes-job-component.adoc      |  6 ++----
 .../ROOT/pages/kubernetes-namespaces-component.adoc       |  6 ++----
 .../modules/ROOT/pages/kubernetes-nodes-component.adoc    |  6 ++----
 .../kubernetes-persistent-volumes-claims-component.adoc   |  6 ++----
 .../pages/kubernetes-persistent-volumes-component.adoc    |  6 ++----
 .../modules/ROOT/pages/kubernetes-pods-component.adoc     |  6 ++----
 .../kubernetes-replication-controllers-component.adoc     |  6 ++----
 .../ROOT/pages/kubernetes-resources-quota-component.adoc  |  6 ++----
 .../modules/ROOT/pages/kubernetes-secrets-component.adoc  |  6 ++----
 .../ROOT/pages/kubernetes-service-accounts-component.adoc |  6 ++----
 .../modules/ROOT/pages/kubernetes-services-component.adoc |  6 ++----
 .../components/modules/ROOT/pages/language-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/ldap-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/ldif-component.adoc    |  6 ++----
 .../components/modules/ROOT/pages/linkedin-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/log-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/lpr-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/lucene-component.adoc  |  6 ++----
 .../modules/ROOT/pages/lumberjack-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/mail-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/master-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/metrics-component.adoc |  6 ++----
 .../modules/ROOT/pages/micrometer-component.adoc          |  6 ++----
 .../modules/ROOT/pages/milo-client-component.adoc         |  6 ++----
 .../modules/ROOT/pages/milo-server-component.adoc         |  6 ++----
 docs/components/modules/ROOT/pages/mina-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/mllp-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/mock-component.adoc    |  3 +--
 docs/components/modules/ROOT/pages/mongodb-component.adoc |  6 ++----
 .../modules/ROOT/pages/mongodb-gridfs-component.adoc      |  6 ++----
 docs/components/modules/ROOT/pages/mqtt-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/msv-component.adoc     |  6 ++----
 .../components/modules/ROOT/pages/mustache-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/mvel-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/mvel-language.adoc     |  3 +--
 .../modules/ROOT/pages/mybatis-bean-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/mybatis-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/nagios-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/nats-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/netty-component.adoc   |  6 ++----
 .../modules/ROOT/pages/netty-http-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/nsq-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/olingo2-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/olingo4-component.adoc |  6 ++----
 .../ROOT/pages/openshift-build-configs-component.adoc     |  3 +--
 .../modules/ROOT/pages/openshift-builds-component.adoc    |  3 +--
 .../modules/ROOT/pages/openstack-cinder-component.adoc    |  6 ++----
 .../modules/ROOT/pages/openstack-glance-component.adoc    |  6 ++----
 .../modules/ROOT/pages/openstack-keystone-component.adoc  |  6 ++----
 .../modules/ROOT/pages/openstack-neutron-component.adoc   |  6 ++----
 .../modules/ROOT/pages/openstack-nova-component.adoc      |  6 ++----
 .../modules/ROOT/pages/openstack-swift-component.adoc     |  6 ++----
 .../modules/ROOT/pages/optaplanner-component.adoc         |  6 ++----
 docs/components/modules/ROOT/pages/paho-component.adoc    |  6 ++----
 .../modules/ROOT/pages/paxlogging-component.adoc          |  3 +--
 docs/components/modules/ROOT/pages/pdf-component.adoc     |  6 ++----
 .../modules/ROOT/pages/pg-replication-slot-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/pgevent-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/pubnub-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/quartz-component.adoc  |  6 ++----
 .../components/modules/ROOT/pages/quickfix-component.adoc |  6 ++----
 .../components/modules/ROOT/pages/rabbitmq-component.adoc |  6 ++----
 .../modules/ROOT/pages/reactive-streams-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/ref-component.adoc     |  6 ++----
 .../components/modules/ROOT/pages/rest-api-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/rest-component.adoc    |  6 ++----
 .../modules/ROOT/pages/rest-swagger-component.adoc        |  6 ++----
 docs/components/modules/ROOT/pages/restlet-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/rss-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/rss-dataformat.adoc    |  3 +--
 docs/components/modules/ROOT/pages/saga-component.adoc    |  6 ++----
 .../modules/ROOT/pages/salesforce-component.adoc          |  6 ++----
 .../modules/ROOT/pages/sap-netweaver-component.adoc       |  6 ++----
 .../modules/ROOT/pages/scheduler-component.adoc           |  6 ++----
 .../modules/ROOT/pages/schematron-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/scp-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/seda-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/service-component.adoc |  6 ++----
 .../modules/ROOT/pages/servicenow-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/servlet-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/sftp-component.adoc    |  3 +--
 docs/components/modules/ROOT/pages/sip-component.adoc     |  6 ++----
 .../modules/ROOT/pages/sjms-batch-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/sjms-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/sjms2-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/slack-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/smpp-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/snmp-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/solr-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/soroush-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/spark-component.adoc   |  6 ++----
 .../modules/ROOT/pages/spark-rest-component.adoc          |  3 +--
 docs/components/modules/ROOT/pages/splunk-component.adoc  |  6 ++----
 .../modules/ROOT/pages/spring-batch-component.adoc        |  6 ++----
 .../modules/ROOT/pages/spring-event-component.adoc        |  6 ++----
 .../modules/ROOT/pages/spring-integration-component.adoc  |  6 ++----
 .../modules/ROOT/pages/spring-ldap-component.adoc         |  6 ++----
 .../modules/ROOT/pages/spring-redis-component.adoc        |  6 ++----
 .../modules/ROOT/pages/spring-ws-component.adoc           |  6 ++----
 docs/components/modules/ROOT/pages/sql-component.adoc     |  6 ++----
 .../modules/ROOT/pages/sql-stored-component.adoc          |  6 ++----
 docs/components/modules/ROOT/pages/ssh-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/stax-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/stomp-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/stream-component.adoc  |  6 ++----
 .../modules/ROOT/pages/string-template-component.adoc     |  6 ++----
 docs/components/modules/ROOT/pages/stub-component.adoc    |  6 ++----
 .../components/modules/ROOT/pages/telegram-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/thrift-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/thrift-dataformat.adoc |  3 +--
 docs/components/modules/ROOT/pages/tika-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/timer-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/twilio-component.adoc  |  6 ++----
 .../ROOT/pages/twitter-directmessage-component.adoc       |  6 ++----
 .../modules/ROOT/pages/twitter-search-component.adoc      |  6 ++----
 .../modules/ROOT/pages/twitter-timeline-component.adoc    |  6 ++----
 .../components/modules/ROOT/pages/undertow-component.adoc |  6 ++----
 .../modules/ROOT/pages/validator-component.adoc           |  6 ++----
 .../components/modules/ROOT/pages/velocity-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/vertx-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/vm-component.adoc      |  6 ++----
 docs/components/modules/ROOT/pages/weather-component.adoc |  6 ++----
 docs/components/modules/ROOT/pages/web3j-component.adoc   |  6 ++----
 docs/components/modules/ROOT/pages/webhook-component.adoc |  6 ++----
 .../modules/ROOT/pages/websocket-component.adoc           |  6 ++----
 .../modules/ROOT/pages/websocket-jsr356-component.adoc    |  6 ++----
 .../modules/ROOT/pages/wordpress-component.adoc           |  6 ++----
 docs/components/modules/ROOT/pages/xchange-component.adoc |  6 ++----
 .../modules/ROOT/pages/xmlsecurity-component.adoc         |  6 ++----
 docs/components/modules/ROOT/pages/xmpp-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/xquery-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/xquery-language.adoc   |  3 +--
 docs/components/modules/ROOT/pages/xslt-component.adoc    |  6 ++----
 docs/components/modules/ROOT/pages/yammer-component.adoc  |  6 ++----
 docs/components/modules/ROOT/pages/zendesk-component.adoc |  6 ++----
 .../modules/ROOT/pages/zookeeper-component.adoc           |  6 ++----
 .../modules/ROOT/pages/zookeeper-master-component.adoc    |  6 ++----
 .../springboot/ActiveMQComponentConfiguration.java        | 15 ---------------
 .../ahc/springboot/AhcComponentConfiguration.java         | 15 ---------------
 .../ahc/ws/springboot/WsComponentConfiguration.java       | 15 ---------------
 .../amqp/springboot/AMQPComponentConfiguration.java       | 15 ---------------
 .../apns/springboot/ApnsComponentConfiguration.java       | 15 ---------------
 .../as2/springboot/AS2ComponentConfiguration.java         | 15 ---------------
 .../springboot/AsteriskComponentConfiguration.java        | 15 ---------------
 .../atmos/springboot/AtmosComponentConfiguration.java     | 15 ---------------
 .../springboot/WebsocketComponentConfiguration.java       | 15 ---------------
 .../atom/springboot/AtomComponentConfiguration.java       | 15 ---------------
 .../map/springboot/AtomixMapComponentConfiguration.java   | 15 ---------------
 .../springboot/AtomixMessagingComponentConfiguration.java | 15 ---------------
 .../springboot/AtomixMultiMapComponentConfiguration.java  | 15 ---------------
 .../springboot/AtomixQueueComponentConfiguration.java     | 15 ---------------
 .../set/springboot/AtomixSetComponentConfiguration.java   | 15 ---------------
 .../springboot/AtomixValueComponentConfiguration.java     | 15 ---------------
 .../avro/springboot/AvroComponentConfiguration.java       | 15 ---------------
 .../aws/cw/springboot/CwComponentConfiguration.java       | 15 ---------------
 .../aws/ddb/springboot/DdbComponentConfiguration.java     | 15 ---------------
 .../springboot/DdbStreamComponentConfiguration.java       | 15 ---------------
 .../aws/ec2/springboot/EC2ComponentConfiguration.java     | 15 ---------------
 .../aws/ecs/springboot/ECSComponentConfiguration.java     | 15 ---------------
 .../aws/eks/springboot/EKSComponentConfiguration.java     | 15 ---------------
 .../aws/iam/springboot/IAMComponentConfiguration.java     | 15 ---------------
 .../springboot/KinesisFirehoseComponentConfiguration.java | 15 ---------------
 .../kinesis/springboot/KinesisComponentConfiguration.java | 15 ---------------
 .../aws/kms/springboot/KMSComponentConfiguration.java     | 15 ---------------
 .../lambda/springboot/LambdaComponentConfiguration.java   | 15 ---------------
 .../aws/mq/springboot/MQComponentConfiguration.java       | 15 ---------------
 .../aws/msk/springboot/MSKComponentConfiguration.java     | 15 ---------------
 .../aws/s3/springboot/S3ComponentConfiguration.java       | 15 ---------------
 .../aws/sdb/springboot/SdbComponentConfiguration.java     | 15 ---------------
 .../aws/ses/springboot/SesComponentConfiguration.java     | 15 ---------------
 .../aws/sns/springboot/SnsComponentConfiguration.java     | 15 ---------------
 .../aws/sqs/springboot/SqsComponentConfiguration.java     | 15 ---------------
 .../aws/swf/springboot/SWFComponentConfiguration.java     | 15 ---------------
 .../springboot/BlobServiceComponentConfiguration.java     | 15 ---------------
 .../springboot/QueueServiceComponentConfiguration.java    | 15 ---------------
 .../bean/springboot/BeanComponentConfiguration.java       | 15 ---------------
 .../beanclass/springboot/ClassComponentConfiguration.java | 15 ---------------
 .../springboot/BeanValidatorComponentConfiguration.java   | 15 ---------------
 .../springboot/BeanstalkComponentConfiguration.java       | 15 ---------------
 .../bonita/springboot/BonitaComponentConfiguration.java   | 15 ---------------
 .../box/springboot/BoxComponentConfiguration.java         | 15 ---------------
 .../springboot/BraintreeComponentConfiguration.java       | 15 ---------------
 .../browse/springboot/BrowseComponentConfiguration.java   | 15 ---------------
 .../springboot/CaffeineCacheComponentConfiguration.java   | 15 ---------------
 .../CaffeineLoadCacheComponentConfiguration.java          | 15 ---------------
 .../springboot/CassandraComponentConfiguration.java       | 15 ---------------
 .../springboot/ChatScriptComponentConfiguration.java      | 15 ---------------
 .../chunk/springboot/ChunkComponentConfiguration.java     | 15 ---------------
 .../component/cm/springboot/CMComponentConfiguration.java | 15 ---------------
 .../cmis/springboot/CMISComponentConfiguration.java       | 15 ---------------
 .../camel/coap/springboot/CoAPComponentConfiguration.java | 15 ---------------
 .../cometd/springboot/CometdComponentConfiguration.java   | 15 ---------------
 .../consul/springboot/ConsulComponentConfiguration.java   | 15 ---------------
 .../springboot/ControlBusComponentConfiguration.java      | 15 ---------------
 .../corda/springboot/CordaComponentConfiguration.java     | 15 ---------------
 .../springboot/CouchbaseComponentConfiguration.java       | 15 ---------------
 .../couchdb/springboot/CouchDbComponentConfiguration.java | 15 ---------------
 .../cms/springboot/CryptoCmsComponentConfiguration.java   | 15 ---------------
 .../DigitalSignatureComponentConfiguration.java           | 15 ---------------
 .../cxf/jaxrs/springboot/CxfRsComponentConfiguration.java | 15 ---------------
 .../cxf/springboot/CxfComponentConfiguration.java         | 15 ---------------
 .../springboot/DataFormatComponentConfiguration.java      | 15 ---------------
 .../dataset/springboot/DataSetComponentConfiguration.java | 15 ---------------
 .../springboot/DataSetTestComponentConfiguration.java     | 15 ---------------
 .../springboot/DigitalOceanComponentConfiguration.java    | 15 ---------------
 .../direct/springboot/DirectComponentConfiguration.java   | 15 ---------------
 .../springboot/DirectVmComponentConfiguration.java        | 15 ---------------
 .../springboot/DisruptorComponentConfiguration.java       | 15 ---------------
 .../vm/springboot/DisruptorVmComponentConfiguration.java  | 15 ---------------
 .../dns/springboot/DnsComponentConfiguration.java         | 15 ---------------
 .../docker/springboot/DockerComponentConfiguration.java   | 15 ---------------
 .../dozer/springboot/DozerComponentConfiguration.java     | 15 ---------------
 .../drill/springboot/DrillComponentConfiguration.java     | 15 ---------------
 .../dropbox/springboot/DropboxComponentConfiguration.java | 15 ---------------
 .../ehcache/springboot/EhcacheComponentConfiguration.java | 15 ---------------
 .../springboot/ElasticsearchComponentConfiguration.java   | 15 ---------------
 .../elsql/springboot/ElsqlComponentConfiguration.java     | 15 ---------------
 .../etcd/springboot/EtcdComponentConfiguration.java       | 15 ---------------
 .../exec/springboot/ExecComponentConfiguration.java       | 15 ---------------
 .../springboot/FacebookComponentConfiguration.java        | 15 ---------------
 .../fhir/springboot/FhirComponentConfiguration.java       | 15 ---------------
 .../file/springboot/FileComponentConfiguration.java       | 15 ---------------
 .../watch/springboot/FileWatchComponentConfiguration.java | 15 ---------------
 .../springboot/FlatpackComponentConfiguration.java        | 15 ---------------
 .../flink/springboot/FlinkComponentConfiguration.java     | 15 ---------------
 .../fop/springboot/FopComponentConfiguration.java         | 15 ---------------
 .../springboot/FreemarkerComponentConfiguration.java      | 15 ---------------
 .../file/remote/springboot/FtpComponentConfiguration.java | 15 ---------------
 .../remote/springboot/FtpsComponentConfiguration.java     | 15 ---------------
 .../remote/springboot/SftpComponentConfiguration.java     | 15 ---------------
 .../ganglia/springboot/GangliaComponentConfiguration.java | 15 ---------------
 .../springboot/GeoCoderComponentConfiguration.java        | 15 ---------------
 .../git/springboot/GitComponentConfiguration.java         | 15 ---------------
 .../github/springboot/GitHubComponentConfiguration.java   | 15 ---------------
 .../springboot/GoogleBigQueryComponentConfiguration.java  | 15 ---------------
 .../GoogleBigQuerySQLComponentConfiguration.java          | 15 ---------------
 .../springboot/GoogleCalendarComponentConfiguration.java  | 15 ---------------
 .../GoogleCalendarStreamComponentConfiguration.java       | 15 ---------------
 .../springboot/GoogleDriveComponentConfiguration.java     | 15 ---------------
 .../mail/springboot/GoogleMailComponentConfiguration.java | 15 ---------------
 .../GoogleMailStreamComponentConfiguration.java           | 15 ---------------
 .../springboot/GooglePubsubComponentConfiguration.java    | 15 ---------------
 .../springboot/GoogleSheetsComponentConfiguration.java    | 15 ---------------
 .../GoogleSheetsStreamComponentConfiguration.java         | 15 ---------------
 .../gora/springboot/GoraComponentConfiguration.java       | 15 ---------------
 .../grpc/springboot/GrpcComponentConfiguration.java       | 15 ---------------
 .../springboot/GuavaEventBusComponentConfiguration.java   | 15 ---------------
 .../HazelcastAtomicnumberComponentConfiguration.java      | 15 ---------------
 .../HazelcastInstanceComponentConfiguration.java          | 15 ---------------
 .../springboot/HazelcastListComponentConfiguration.java   | 15 ---------------
 .../springboot/HazelcastMapComponentConfiguration.java    | 15 ---------------
 .../HazelcastMultimapComponentConfiguration.java          | 15 ---------------
 .../springboot/HazelcastQueueComponentConfiguration.java  | 15 ---------------
 .../HazelcastReplicatedmapComponentConfiguration.java     | 15 ---------------
 .../HazelcastRingbufferComponentConfiguration.java        | 15 ---------------
 .../springboot/HazelcastSedaComponentConfiguration.java   | 15 ---------------
 .../springboot/HazelcastSetComponentConfiguration.java    | 15 ---------------
 .../springboot/HazelcastTopicComponentConfiguration.java  | 15 ---------------
 .../hbase/springboot/HBaseComponentConfiguration.java     | 15 ---------------
 .../hdfs2/springboot/HdfsComponentConfiguration.java      | 15 ---------------
 .../hipchat/springboot/HipchatComponentConfiguration.java | 15 ---------------
 .../http/springboot/HttpComponentConfiguration.java       | 15 ---------------
 .../client/springboot/ClientComponentConfiguration.java   | 15 ---------------
 .../server/springboot/ServerComponentConfiguration.java   | 15 ---------------
 .../springboot/IgniteCacheComponentConfiguration.java     | 15 ---------------
 .../springboot/IgniteComputeComponentConfiguration.java   | 15 ---------------
 .../springboot/IgniteEventsComponentConfiguration.java    | 15 ---------------
 .../springboot/IgniteIdGenComponentConfiguration.java     | 15 ---------------
 .../springboot/IgniteMessagingComponentConfiguration.java | 15 ---------------
 .../springboot/IgniteQueueComponentConfiguration.java     | 15 ---------------
 .../set/springboot/IgniteSetComponentConfiguration.java   | 15 ---------------
 .../springboot/InfinispanComponentConfiguration.java      | 15 ---------------
 .../springboot/InfluxDbComponentConfiguration.java        | 15 ---------------
 .../iota/springboot/IOTAComponentConfiguration.java       | 15 ---------------
 .../ipfs/springboot/IPFSComponentConfiguration.java       | 15 ---------------
 .../irc/springboot/IrcComponentConfiguration.java         | 15 ---------------
 .../ironmq/springboot/IronMQComponentConfiguration.java   | 15 ---------------
 .../jbpm/springboot/JBPMComponentConfiguration.java       | 15 ---------------
 .../jcache/springboot/JCacheComponentConfiguration.java   | 15 ---------------
 .../jclouds/springboot/JcloudsComponentConfiguration.java | 15 ---------------
 .../jcr/springboot/JcrComponentConfiguration.java         | 15 ---------------
 .../jdbc/springboot/JdbcComponentConfiguration.java       | 15 ---------------
 .../springboot/JettyHttpComponentConfiguration9.java      | 15 ---------------
 .../springboot/JGroupsRaftComponentConfiguration.java     | 15 ---------------
 .../jgroups/springboot/JGroupsComponentConfiguration.java | 15 ---------------
 .../jing/springboot/JingComponentConfiguration.java       | 15 ---------------
 .../jira/springboot/JiraComponentConfiguration.java       | 15 ---------------
 .../jms/springboot/JmsComponentConfiguration.java         | 15 ---------------
 .../jmx/springboot/JMXComponentConfiguration.java         | 15 ---------------
 .../jolt/springboot/JoltComponentConfiguration.java       | 15 ---------------
 .../jooq/springboot/JooqComponentConfiguration.java       | 15 ---------------
 .../jpa/springboot/JpaComponentConfiguration.java         | 15 ---------------
 .../scp/springboot/ScpComponentConfiguration.java         | 15 ---------------
 .../springboot/JsonValidatorComponentConfiguration.java   | 15 ---------------
 .../jt400/springboot/Jt400ComponentConfiguration.java     | 15 ---------------
 .../kafka/springboot/KafkaComponentConfiguration.java     | 15 ---------------
 .../KubernetesConfigMapsComponentConfiguration.java       | 15 ---------------
 .../KubernetesDeploymentsComponentConfiguration.java      | 15 ---------------
 .../springboot/KubernetesHPAComponentConfiguration.java   | 15 ---------------
 .../springboot/KubernetesJobComponentConfiguration.java   | 15 ---------------
 .../KubernetesNamespacesComponentConfiguration.java       | 15 ---------------
 .../springboot/KubernetesNodesComponentConfiguration.java | 15 ---------------
 ...KubernetesPersistentVolumesComponentConfiguration.java | 15 ---------------
 ...etesPersistentVolumesClaimsComponentConfiguration.java | 15 ---------------
 .../springboot/KubernetesPodsComponentConfiguration.java  | 15 ---------------
 ...netesReplicationControllersComponentConfiguration.java | 15 ---------------
 .../KubernetesResourcesQuotaComponentConfiguration.java   | 15 ---------------
 .../KubernetesSecretsComponentConfiguration.java          | 15 ---------------
 .../KubernetesServiceAccountsComponentConfiguration.java  | 15 ---------------
 .../KubernetesServicesComponentConfiguration.java         | 15 ---------------
 .../OpenshiftBuildConfigsComponentConfiguration.java      | 15 ---------------
 .../springboot/OpenshiftBuildsComponentConfiguration.java | 15 ---------------
 .../springboot/LanguageComponentConfiguration.java        | 15 ---------------
 .../ldap/springboot/LdapComponentConfiguration.java       | 15 ---------------
 .../ldif/springboot/LdifComponentConfiguration.java       | 15 ---------------
 .../springboot/LinkedInComponentConfiguration.java        | 15 ---------------
 .../log/springboot/LogComponentConfiguration.java         | 15 ---------------
 .../lucene/springboot/LuceneComponentConfiguration.java   | 15 ---------------
 .../springboot/LumberjackComponentConfiguration.java      | 15 ---------------
 .../mail/springboot/MailComponentConfiguration.java       | 15 ---------------
 .../master/springboot/MasterComponentConfiguration.java   | 15 ---------------
 .../metrics/springboot/MetricsComponentConfiguration.java | 15 ---------------
 .../springboot/MicrometerComponentConfiguration.java      | 15 ---------------
 .../springboot/MiloClientComponentConfiguration.java      | 15 ---------------
 .../springboot/MiloServerComponentConfiguration.java      | 15 ---------------
 .../mina2/springboot/Mina2ComponentConfiguration.java     | 15 ---------------
 .../mllp/springboot/MllpComponentConfiguration.java       | 15 ---------------
 .../mock/springboot/MockComponentConfiguration.java       | 15 ---------------
 .../gridfs/springboot/GridFsComponentConfiguration.java   | 15 ---------------
 .../springboot/MongoDbComponentConfiguration.java         | 15 ---------------
 .../mqtt/springboot/MQTTComponentConfiguration.java       | 15 ---------------
 .../msv/springboot/MsvComponentConfiguration.java         | 15 ---------------
 .../springboot/MustacheComponentConfiguration.java        | 15 ---------------
 .../mvel/springboot/MvelComponentConfiguration.java       | 15 ---------------
 .../springboot/MyBatisBeanComponentConfiguration.java     | 15 ---------------
 .../mybatis/springboot/MyBatisComponentConfiguration.java | 15 ---------------
 .../nagios/springboot/NagiosComponentConfiguration.java   | 15 ---------------
 .../nats/springboot/NatsComponentConfiguration.java       | 15 ---------------
 .../http/springboot/NettyHttpComponentConfiguration.java  | 15 ---------------
 .../netty4/springboot/NettyComponentConfiguration.java    | 15 ---------------
 .../nsq/springboot/NsqComponentConfiguration.java         | 15 ---------------
 .../olingo2/springboot/Olingo2ComponentConfiguration.java | 15 ---------------
 .../olingo4/springboot/Olingo4ComponentConfiguration.java | 15 ---------------
 .../cinder/springboot/CinderComponentConfiguration.java   | 15 ---------------
 .../glance/springboot/GlanceComponentConfiguration.java   | 15 ---------------
 .../springboot/KeystoneComponentConfiguration.java        | 15 ---------------
 .../neutron/springboot/NeutronComponentConfiguration.java | 15 ---------------
 .../nova/springboot/NovaComponentConfiguration.java       | 15 ---------------
 .../swift/springboot/SwiftComponentConfiguration.java     | 15 ---------------
 .../springboot/OptaPlannerComponentConfiguration.java     | 15 ---------------
 .../paho/springboot/PahoComponentConfiguration.java       | 15 ---------------
 .../pdf/springboot/PdfComponentConfiguration.java         | 15 ---------------
 .../PgReplicationSlotComponentConfiguration.java          | 15 ---------------
 .../pgevent/springboot/PgEventComponentConfiguration.java | 15 ---------------
 .../printer/springboot/PrinterComponentConfiguration.java | 15 ---------------
 .../pubnub/springboot/PubNubComponentConfiguration.java   | 15 ---------------
 .../quartz2/springboot/QuartzComponentConfiguration.java  | 15 ---------------
 .../springboot/QuickfixjComponentConfiguration.java       | 15 ---------------
 .../springboot/RabbitMQComponentConfiguration.java        | 15 ---------------
 .../springboot/ReactiveStreamsComponentConfiguration.java | 15 ---------------
 .../ref/springboot/RefComponentConfiguration.java         | 15 ---------------
 .../rest/springboot/RestApiComponentConfiguration.java    | 15 ---------------
 .../rest/springboot/RestComponentConfiguration.java       | 15 ---------------
 .../springboot/RestSwaggerComponentConfiguration.java     | 15 ---------------
 .../restlet/springboot/RestletComponentConfiguration.java | 15 ---------------
 .../rss/springboot/RssComponentConfiguration.java         | 15 ---------------
 .../saga/springboot/SagaComponentConfiguration.java       | 15 ---------------
 .../springboot/SalesforceComponentConfiguration.java      | 15 ---------------
 .../springboot/NetWeaverComponentConfiguration.java       | 15 ---------------
 .../xquery/springboot/XQueryComponentConfiguration.java   | 15 ---------------
 .../springboot/SchedulerComponentConfiguration.java       | 15 ---------------
 .../springboot/SchematronComponentConfiguration.java      | 15 ---------------
 .../seda/springboot/SedaComponentConfiguration.java       | 15 ---------------
 .../service/springboot/ServiceComponentConfiguration.java | 15 ---------------
 .../springboot/ServiceNowComponentConfiguration.java      | 15 ---------------
 .../servlet/springboot/ServletComponentConfiguration.java | 15 ---------------
 .../sip/springboot/SipComponentConfiguration.java         | 15 ---------------
 .../batch/springboot/SjmsBatchComponentConfiguration.java | 15 ---------------
 .../sjms/springboot/SjmsComponentConfiguration.java       | 15 ---------------
 .../sjms2/springboot/Sjms2ComponentConfiguration.java     | 15 ---------------
 .../slack/springboot/SlackComponentConfiguration.java     | 15 ---------------
 .../smpp/springboot/SmppComponentConfiguration.java       | 15 ---------------
 .../snmp/springboot/SnmpComponentConfiguration.java       | 15 ---------------
 .../solr/springboot/SolrComponentConfiguration.java       | 15 ---------------
 .../springboot/SoroushBotComponentConfiguration.java      | 15 ---------------
 .../spark/springboot/SparkComponentConfiguration.java     | 15 ---------------
 .../splunk/springboot/SplunkComponentConfiguration.java   | 15 ---------------
 .../springboot/SpringBatchComponentConfiguration.java     | 15 ---------------
 .../SpringIntegrationComponentConfiguration.java          | 15 ---------------
 .../springboot/SpringLdapComponentConfiguration.java      | 15 ---------------
 .../redis/springboot/RedisComponentConfiguration.java     | 15 ---------------
 .../event/springboot/EventComponentConfiguration.java     | 15 ---------------
 .../SpringWebserviceComponentConfiguration.java           | 15 ---------------
 .../sql/springboot/SqlComponentConfiguration.java         | 15 ---------------
 .../springboot/SqlStoredComponentConfiguration.java       | 15 ---------------
 .../ssh/springboot/SshComponentConfiguration.java         | 15 ---------------
 .../stax/springboot/StAXComponentConfiguration.java       | 15 ---------------
 .../stomp/springboot/StompComponentConfiguration.java     | 15 ---------------
 .../stream/springboot/StreamComponentConfiguration.java   | 15 ---------------
 .../springboot/StringTemplateComponentConfiguration.java  | 15 ---------------
 .../stub/springboot/StubComponentConfiguration.java       | 15 ---------------
 .../springboot/TelegramComponentConfiguration.java        | 15 ---------------
 .../thrift/springboot/ThriftComponentConfiguration.java   | 15 ---------------
 .../tika/springboot/TikaComponentConfiguration.java       | 15 ---------------
 .../timer/springboot/TimerComponentConfiguration.java     | 15 ---------------
 .../twilio/springboot/TwilioComponentConfiguration.java   | 15 ---------------
 .../TwitterDirectMessageComponentConfiguration.java       | 15 ---------------
 .../springboot/TwitterSearchComponentConfiguration.java   | 15 ---------------
 .../springboot/TwitterTimelineComponentConfiguration.java | 15 ---------------
 .../springboot/UndertowComponentConfiguration.java        | 15 ---------------
 .../springboot/ValidatorComponentConfiguration.java       | 15 ---------------
 .../springboot/VelocityComponentConfiguration.java        | 15 ---------------
 .../vertx/springboot/VertxComponentConfiguration.java     | 15 ---------------
 .../component/vm/springboot/VmComponentConfiguration.java | 15 ---------------
 .../weather/springboot/WeatherComponentConfiguration.java | 15 ---------------
 .../web3j/springboot/Web3jComponentConfiguration.java     | 15 ---------------
 .../webhook/springboot/WebhookComponentConfiguration.java | 15 ---------------
 .../springboot/JSR356WebSocketComponentConfiguration.java | 15 ---------------
 .../springboot/WebsocketComponentConfiguration.java       | 15 ---------------
 .../springboot/WordpressComponentConfiguration.java       | 15 ---------------
 .../xchange/springboot/XChangeComponentConfiguration.java | 15 ---------------
 .../springboot/XmlSignatureComponentConfiguration.java    | 15 ---------------
 .../xmpp/springboot/XmppComponentConfiguration.java       | 15 ---------------
 .../xslt/springboot/XsltComponentConfiguration.java       | 15 ---------------
 .../yammer/springboot/YammerComponentConfiguration.java   | 15 ---------------
 .../zendesk/springboot/ZendeskComponentConfiguration.java | 15 ---------------
 .../springboot/MasterComponentConfiguration.java          | 15 ---------------
 .../springboot/ZooKeeperComponentConfiguration.java       | 15 ---------------
 891 files changed, 1164 insertions(+), 6695 deletions(-)

diff --git a/components/camel-activemq/src/main/docs/activemq-component.adoc b/components/camel-activemq/src/main/docs/activemq-component.adoc
index ac45242..7b2e19a 100644
--- a/components/camel-activemq/src/main/docs/activemq-component.adoc
+++ b/components/camel-activemq/src/main/docs/activemq-component.adoc
@@ -44,7 +44,7 @@ activemq:foo
 == Component options
 
 // component options: START
-The ActiveMQ component supports 85 options, which are listed below.
+The ActiveMQ component supports 84 options, which are listed below.
 
 
 
@@ -134,7 +134,6 @@ The ActiveMQ component supports 85 options, which are listed below.
 | *streamMessageType Enabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until n [...]
 | *formatDateHeadersTo Iso8601* (producer) | Sets whether date headers should be formatted according to the ISO 8601 standard. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -280,7 +279,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 86 options, which are listed below.
+The component supports 85 options, which are listed below.
 
 
 
@@ -352,7 +351,6 @@ The component supports 86 options, which are listed below.
 | *camel.component.activemq.reply-to-type* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implicat [...]
 | *camel.component.activemq.request-timeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000 | Long
 | *camel.component.activemq.request-timeout-checker-interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000 | Long
-| *camel.component.activemq.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.activemq.stream-message-type-enabled* | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the Strea [...]
 | *camel.component.activemq.subscription-durable* | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches  [...]
 | *camel.component.activemq.subscription-name* | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires  [...]
diff --git a/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc b/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
index bef029a..703c4ca 100644
--- a/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
+++ b/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
@@ -43,7 +43,7 @@ various configuration options of the AHC component.
 
 
 // component options: START
-The AHC Websocket component supports 9 options, which are listed below.
+The AHC Websocket component supports 8 options, which are listed below.
 
 
 
@@ -57,7 +57,6 @@ The AHC Websocket component supports 9 options, which are listed below.
 | *allowJavaSerialized Object* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -125,7 +124,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 10 options, which are listed below.
+The component supports 9 options, which are listed below.
 
 
 
@@ -139,7 +138,6 @@ The component supports 10 options, which are listed below.
 | *camel.component.ahc-ws.client-config* | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type. |  | String
 | *camel.component.ahc-ws.enabled* | Enable ahc-ws component | true | Boolean
 | *camel.component.ahc-ws.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
-| *camel.component.ahc-ws.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.ahc-ws.ssl-context-parameters* | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
 | *camel.component.ahc-ws.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 |===
diff --git a/components/camel-ahc/src/main/docs/ahc-component.adoc b/components/camel-ahc/src/main/docs/ahc-component.adoc
index 93d891f..c60efb5 100644
--- a/components/camel-ahc/src/main/docs/ahc-component.adoc
+++ b/components/camel-ahc/src/main/docs/ahc-component.adoc
@@ -102,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 10 options, which are listed below.
+The component supports 9 options, which are listed below.
 
 
 
@@ -116,7 +116,6 @@ The component supports 10 options, which are listed below.
 | *camel.component.ahc.client-config* | To configure the AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig instance. The option is a org.asynchttpclient.AsyncHttpClientConfig type. |  | String
 | *camel.component.ahc.enabled* | Enable ahc component | true | Boolean
 | *camel.component.ahc.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
-| *camel.component.ahc.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.ahc.ssl-context-parameters* | Reference to a org.apache.camel.support.jsse.SSLContextParameters in the Registry. Note that configuring this option will override any SSL/TLS configuration options provided through the clientConfig option at the endpoint or component level. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
 | *camel.component.ahc.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 |===
@@ -141,7 +140,7 @@ The component supports 10 options, which are listed below.
 
 
 // component options: START
-The AHC component supports 9 options, which are listed below.
+The AHC component supports 8 options, which are listed below.
 
 
 
@@ -155,7 +154,6 @@ The AHC component supports 9 options, which are listed below.
 | *allowJavaSerialized Object* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-amqp/src/main/docs/amqp-component.adoc b/components/camel-amqp/src/main/docs/amqp-component.adoc
index 15b7dfc..c30b6d6 100644
--- a/components/camel-amqp/src/main/docs/amqp-component.adoc
+++ b/components/camel-amqp/src/main/docs/amqp-component.adoc
@@ -36,7 +36,7 @@ xref:jms-component.adoc[JMS] component after the destination name.
 
 
 // component options: START
-The AMQP component supports 80 options, which are listed below.
+The AMQP component supports 79 options, which are listed below.
 
 
 
@@ -121,7 +121,6 @@ The AMQP component supports 80 options, which are listed below.
 | *streamMessageType Enabled* (producer) | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMessage until n [...]
 | *formatDateHeadersTo Iso8601* (producer) | Sets whether date headers should be formatted according to the ISO 8601 standard. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -269,7 +268,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 81 options, which are listed below.
+The component supports 80 options, which are listed below.
 
 
 
@@ -339,7 +338,6 @@ The component supports 81 options, which are listed below.
 | *camel.component.amqp.reply-to-type* | Allows for explicitly specifying which kind of strategy to use for replyTo queues when doing request/reply over JMS. Possible values are: Temporary, Shared, or Exclusive. By default Camel will use temporary queues. However if replyTo has been configured, then Shared is used by default. This option allows you to use exclusive queues instead of shared ones. See Camel JMS documentation for more details, and especially the notes about the implications [...]
 | *camel.component.amqp.request-timeout* | The timeout for waiting for a reply when using the InOut Exchange Pattern (in milliseconds). The default is 20 seconds. You can include the header CamelJmsRequestTimeout to override this endpoint configured timeout value, and thus have per message individual timeout values. See also the requestTimeoutCheckerInterval option. | 20000 | Long
 | *camel.component.amqp.request-timeout-checker-interval* | Configures how often Camel should check for timed out Exchanges when doing request/reply over JMS. By default Camel checks once per second. But if you must react faster when a timeout occurs, then you can lower this interval, to check more frequently. The timeout is determined by the option requestTimeout. | 1000 | Long
-| *camel.component.amqp.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.amqp.stream-message-type-enabled* | Sets whether StreamMessage type is enabled or not. Message payloads of streaming kind such as files, InputStream, etc will either by sent as BytesMessage or StreamMessage. This option controls which kind will be used. By default BytesMessage is used which enforces the entire message payload to be read into memory. By enabling this option the message payload is read into memory in chunks and each chunk is then written to the StreamMes [...]
 | *camel.component.amqp.subscription-durable* | Set whether to make the subscription durable. The durable subscription name to be used can be specified through the subscriptionName property. Default is false. Set this to true to register a durable subscription, typically in combination with a subscriptionName value (unless your message listener class name is good enough as subscription name). Only makes sense when listening to a topic (pub-sub domain), therefore this method switches the  [...]
 | *camel.component.amqp.subscription-name* | Set the name of a subscription to create. To be applied in case of a topic (pub-sub domain) with a shared or durable subscription. The subscription name needs to be unique within this client's JMS client id. Default is the class name of the specified message listener. Note: Only 1 concurrent consumer (which is the default of this message listener container) is allowed for each subscription, except for a shared subscription (which requires JMS  [...]
diff --git a/components/camel-apns/src/main/docs/apns-component.adoc b/components/camel-apns/src/main/docs/apns-component.adoc
index 9506c0c..9abedb1 100644
--- a/components/camel-apns/src/main/docs/apns-component.adoc
+++ b/components/camel-apns/src/main/docs/apns-component.adoc
@@ -52,7 +52,7 @@ apns:consumer[?options]
 
 
 // component options: START
-The APNS component supports 3 options, which are listed below.
+The APNS component supports 2 options, which are listed below.
 
 
 
@@ -60,7 +60,6 @@ The APNS component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *apnsService* (common) | *Required* The ApnsService to use. The org.apache.camel.component.apns.factory.ApnsServiceFactory can be used to build a ApnsService |  | ApnsService
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -133,7 +132,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -143,7 +142,6 @@ The component supports 4 options, which are listed below.
 | *camel.component.apns.apns-service* | The ApnsService to use. The org.apache.camel.component.apns.factory.ApnsServiceFactory can be used to build a ApnsService. The option is a com.notnoop.apns.ApnsService type. |  | String
 | *camel.component.apns.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.apns.enabled* | Enable apns component | true | Boolean
-| *camel.component.apns.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc b/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc
index 41fe017..aa4cfe6 100644
--- a/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc
+++ b/components/camel-as2/camel-as2-component/src/main/docs/as2-component.adoc
@@ -38,7 +38,7 @@ apiName can be one of:
 
 
 // component options: START
-The AS2 component supports 3 options, which are listed below.
+The AS2 component supports 2 options, which are listed below.
 
 
 
@@ -46,7 +46,6 @@ The AS2 component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | AS2Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -129,7 +128,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 31 options, which are listed below.
+The component supports 30 options, which are listed below.
 
 
 
@@ -166,7 +165,6 @@ The component supports 31 options, which are listed below.
 | *camel.component.as2.configuration.target-port-number* | The port number of target host. -1 indicates the scheme default port. |  | Integer
 | *camel.component.as2.configuration.user-agent* | The value included in the User-Agent message header identifying the AS2 user agent. | Camel AS2 Client Endpoint | String
 | *camel.component.as2.enabled* | Whether to enable auto configuration of the as2 component. This is enabled by default. |  | Boolean
-| *camel.component.as2.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-asterisk/src/main/docs/asterisk-component.adoc b/components/camel-asterisk/src/main/docs/asterisk-component.adoc
index 3991823..380070a 100644
--- a/components/camel-asterisk/src/main/docs/asterisk-component.adoc
+++ b/components/camel-asterisk/src/main/docs/asterisk-component.adoc
@@ -30,14 +30,13 @@ asterisk:name[?options]
 == Options
 
 // component options: START
-The Asterisk component supports 2 options, which are listed below.
+The Asterisk component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -95,7 +94,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -104,7 +103,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.asterisk.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.asterisk.enabled* | Enable asterisk component | true | Boolean
-| *camel.component.asterisk.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atmos/src/main/docs/atmos-component.adoc b/components/camel-atmos/src/main/docs/atmos-component.adoc
index f145b79..4d14000 100644
--- a/components/camel-atmos/src/main/docs/atmos-component.adoc
+++ b/components/camel-atmos/src/main/docs/atmos-component.adoc
@@ -16,7 +16,7 @@ from("atmos:foo/get?remotePath=/path").to("mock:test");
 
 
 // component options: START
-The Atmos component supports 6 options, which are listed below.
+The Atmos component supports 5 options, which are listed below.
 
 
 
@@ -27,7 +27,6 @@ The Atmos component supports 6 options, which are listed below.
 | *secretKey* (security) | The secret key to pass to the Atmos client (should be base64 encoded) |  | String
 | *uri* (advanced) | The URI of the server for the Atmos client to connect to |  | String
 | *sslValidation* (security) | Whether the Atmos client should perform SSL validation | false | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -92,7 +91,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -102,7 +101,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.atmos.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.atmos.enabled* | Enable atmos component | true | Boolean
 | *camel.component.atmos.full-token-id* | The token id to pass to the Atmos client |  | String
-| *camel.component.atmos.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.atmos.secret-key* | The secret key to pass to the Atmos client (should be base64 encoded) |  | String
 | *camel.component.atmos.ssl-validation* | Whether the Atmos client should perform SSL validation | false | Boolean
 | *camel.component.atmos.uri* | The URI of the server for the Atmos client to connect to |  | String
diff --git a/components/camel-atmosphere-websocket/src/main/docs/atmosphere-websocket-component.adoc b/components/camel-atmosphere-websocket/src/main/docs/atmosphere-websocket-component.adoc
index 3789a0c..a25d94a 100644
--- a/components/camel-atmosphere-websocket/src/main/docs/atmosphere-websocket-component.adoc
+++ b/components/camel-atmosphere-websocket/src/main/docs/atmosphere-websocket-component.adoc
@@ -35,7 +35,7 @@ their `pom.xml` for this component:
 
 
 // component options: START
-The Atmosphere Websocket component supports 10 options, which are listed below.
+The Atmosphere Websocket component supports 9 options, which are listed below.
 
 
 
@@ -50,7 +50,6 @@ The Atmosphere Websocket component supports 10 options, which are listed below.
 | *httpConfiguration* (advanced) | To use the shared HttpConfiguration as base configuration. |  | HttpConfiguration
 | *allowJavaSerialized Object* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -126,7 +125,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 11 options, which are listed below.
+The component supports 10 options, which are listed below.
 
 
 
@@ -142,7 +141,6 @@ The component supports 11 options, which are listed below.
 | *camel.component.atmosphere-websocket.http-binding* | To use a custom HttpBinding to control the mapping between Camel message and HttpClient. The option is a org.apache.camel.http.common.HttpBinding type. |  | String
 | *camel.component.atmosphere-websocket.http-configuration* | To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type. |  | String
 | *camel.component.atmosphere-websocket.http-registry* | To use a custom org.apache.camel.component.servlet.HttpRegistry. The option is a org.apache.camel.component.servlet.HttpRegistry type. |  | String
-| *camel.component.atmosphere-websocket.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.atmosphere-websocket.servlet-name* | Default name of servlet to use. The default name is CamelServlet. | CamelServlet | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-atom/src/main/docs/atom-component.adoc b/components/camel-atom/src/main/docs/atom-component.adoc
index c525493..c6fbef5 100644
--- a/components/camel-atom/src/main/docs/atom-component.adoc
+++ b/components/camel-atom/src/main/docs/atom-component.adoc
@@ -35,14 +35,13 @@ Where *atomUri* is the URI to the Atom feed to poll.
 
 
 // component options: START
-The Atom component supports 2 options, which are listed below.
+The Atom component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -120,7 +119,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -129,7 +128,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.atom.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.atom.enabled* | Enable atom component | true | Boolean
-| *camel.component.atom.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-map-component.adoc b/components/camel-atomix/src/main/docs/atomix-map-component.adoc
index 1455e7b..67db23c 100644
--- a/components/camel-atomix/src/main/docs/atomix-map-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-map-component.adoc
@@ -26,7 +26,7 @@ Maven users will need to add the following dependency to their pom.xml for this
 == Options
 
 // component options: START
-The Atomix Map component supports 6 options, which are listed below.
+The Atomix Map component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The Atomix Map component supports 6 options, which are listed below.
 | *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -105,7 +104,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 10 options, which are listed below.
+The component supports 9 options, which are listed below.
 
 
 
@@ -121,7 +120,6 @@ The component supports 10 options, which are listed below.
 | *camel.component.atomix-map.configuration.ttl* | The resource ttl. |  | Long
 | *camel.component.atomix-map.enabled* | Whether to enable auto configuration of the atomix-map component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-map.nodes* | The nodes the AtomixClient should connect to |  | List
-| *camel.component.atomix-map.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc b/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc
index 8f40140..4c6e80b 100644
--- a/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-messaging-component.adoc
@@ -25,7 +25,7 @@ for this component:
 ----
 
 // component options: START
-The Atomix Messaging component supports 6 options, which are listed below.
+The Atomix Messaging component supports 5 options, which are listed below.
 
 
 
@@ -36,7 +36,6 @@ The Atomix Messaging component supports 6 options, which are listed below.
 | *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -105,7 +104,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 11 options, which are listed below.
+The component supports 10 options, which are listed below.
 
 
 
@@ -122,7 +121,6 @@ The component supports 11 options, which are listed below.
 | *camel.component.atomix-messaging.configuration.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-messaging.enabled* | Whether to enable auto configuration of the atomix-messaging component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-messaging.nodes* | The nodes the AtomixClient should connect to |  | List
-| *camel.component.atomix-messaging.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc b/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc
index f274b0f..2204a5b 100644
--- a/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-multimap-component.adoc
@@ -25,7 +25,7 @@ for this component:
 ----
 
 // component options: START
-The Atomix MultiMap component supports 6 options, which are listed below.
+The Atomix MultiMap component supports 5 options, which are listed below.
 
 
 
@@ -36,7 +36,6 @@ The Atomix MultiMap component supports 6 options, which are listed below.
 | *atomix* (consumer) | The shared AtomixClient instance |  | AtomixClient
 | *nodes* (consumer) | The nodes the AtomixClient should connect to |  | List
 | *configurationUri* (consumer) | The path to the AtomixClient configuration |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 10 options, which are listed below.
+The component supports 9 options, which are listed below.
 
 
 
@@ -119,7 +118,6 @@ The component supports 10 options, which are listed below.
 | *camel.component.atomix-multimap.configuration.ttl* | The resource ttl. |  | Long
 | *camel.component.atomix-multimap.enabled* | Whether to enable auto configuration of the atomix-multimap component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-multimap.nodes* | The nodes the AtomixClient should connect to |  | List
-| *camel.component.atomix-multimap.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-queue-component.adoc b/components/camel-atomix/src/main/docs/atomix-queue-component.adoc
index 4cde18f..78d9571 100644
--- a/components/camel-atomix/src/main/docs/atomix-queue-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-queue-component.adoc
@@ -25,7 +25,7 @@ for this component:
 ----
 
 // component options: START
-The Atomix Queue component supports 6 options, which are listed below.
+The Atomix Queue component supports 5 options, which are listed below.
 
 
 
@@ -36,7 +36,6 @@ The Atomix Queue component supports 6 options, which are listed below.
 | *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -102,7 +101,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 8 options, which are listed below.
+The component supports 7 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 8 options, which are listed below.
 | *camel.component.atomix-queue.configuration.result-header* | The header that wil carry the result. |  | String
 | *camel.component.atomix-queue.enabled* | Whether to enable auto configuration of the atomix-queue component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-queue.nodes* | The nodes the AtomixClient should connect to |  | List
-| *camel.component.atomix-queue.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-set-component.adoc b/components/camel-atomix/src/main/docs/atomix-set-component.adoc
index 22c436f..43bef07 100644
--- a/components/camel-atomix/src/main/docs/atomix-set-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-set-component.adoc
@@ -25,7 +25,7 @@ for this component:
 ----
 
 // component options: START
-The Atomix Set component supports 6 options, which are listed below.
+The Atomix Set component supports 5 options, which are listed below.
 
 
 
@@ -36,7 +36,6 @@ The Atomix Set component supports 6 options, which are listed below.
 | *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 9 options, which are listed below.
+The component supports 8 options, which are listed below.
 
 
 
@@ -118,7 +117,6 @@ The component supports 9 options, which are listed below.
 | *camel.component.atomix-set.configuration.ttl* | The resource ttl. |  | Long
 | *camel.component.atomix-set.enabled* | Whether to enable auto configuration of the atomix-set component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-set.nodes* | The nodes the AtomixClient should connect to |  | List
-| *camel.component.atomix-set.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-atomix/src/main/docs/atomix-value-component.adoc b/components/camel-atomix/src/main/docs/atomix-value-component.adoc
index 391dea3..30e6c5c 100644
--- a/components/camel-atomix/src/main/docs/atomix-value-component.adoc
+++ b/components/camel-atomix/src/main/docs/atomix-value-component.adoc
@@ -25,7 +25,7 @@ for this component:
 ----
 
 // component options: START
-The Atomix Value component supports 6 options, which are listed below.
+The Atomix Value component supports 5 options, which are listed below.
 
 
 
@@ -36,7 +36,6 @@ The Atomix Value component supports 6 options, which are listed below.
 | *atomix* (common) | The shared AtomixClient instance |  | AtomixClient
 | *nodes* (common) | The nodes the AtomixClient should connect to |  | List
 | *configurationUri* (common) | The path to the AtomixClient configuration |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 9 options, which are listed below.
+The component supports 8 options, which are listed below.
 
 
 
@@ -118,7 +117,6 @@ The component supports 9 options, which are listed below.
 | *camel.component.atomix-value.configuration.ttl* | The resource ttl. |  | Long
 | *camel.component.atomix-value.enabled* | Whether to enable auto configuration of the atomix-value component. This is enabled by default. |  | Boolean
 | *camel.component.atomix-value.nodes* | The nodes the AtomixClient should connect to |  | List
-| *camel.component.atomix-value.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-avro/src/main/docs/avro-component.adoc b/components/camel-avro/src/main/docs/avro-component.adoc
index 105da2f..163bf07 100644
--- a/components/camel-avro/src/main/docs/avro-component.adoc
+++ b/components/camel-avro/src/main/docs/avro-component.adoc
@@ -172,7 +172,7 @@ wrapping.
 
 
 // component options: START
-The Avro component supports 3 options, which are listed below.
+The Avro component supports 2 options, which are listed below.
 
 
 
@@ -180,7 +180,6 @@ The Avro component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use a shared AvroConfiguration to configure options once |  | AvroConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -248,7 +247,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 16 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -267,7 +266,6 @@ The component supports 16 options, which are listed below.
 | *camel.component.avro.configuration.transport* | Transport to use, can be either http or netty |  | AvroTransport
 | *camel.component.avro.configuration.uri-authority* | Authority to use (username and password) |  | String
 | *camel.component.avro.enabled* | Enable avro component | true | Boolean
-| *camel.component.avro.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.dataformat.avro.content-type-header* | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc. | false | Boolean
 | *camel.dataformat.avro.enabled* | Enable avro dataformat | true | Boolean
 | *camel.dataformat.avro.instance-class-name* | Class name to use for marshal and unmarshalling |  | String
diff --git a/components/camel-avro/src/main/docs/avro-dataformat.adoc b/components/camel-avro/src/main/docs/avro-dataformat.adoc
index 8de8899..259984b 100644
--- a/components/camel-avro/src/main/docs/avro-dataformat.adoc
+++ b/components/camel-avro/src/main/docs/avro-dataformat.adoc
@@ -157,7 +157,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 16 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -176,7 +176,6 @@ The component supports 16 options, which are listed below.
 | *camel.component.avro.configuration.transport* | Transport to use, can be either http or netty |  | AvroTransport
 | *camel.component.avro.configuration.uri-authority* | Authority to use (username and password) |  | String
 | *camel.component.avro.enabled* | Enable avro component | true | Boolean
-| *camel.component.avro.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.dataformat.avro.content-type-header* | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc. | false | Boolean
 | *camel.dataformat.avro.enabled* | Enable avro dataformat | true | Boolean
 | *camel.dataformat.avro.instance-class-name* | Class name to use for marshal and unmarshalling |  | String
diff --git a/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc b/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc
index 4a8f64e..5fd84a1 100644
--- a/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc
+++ b/components/camel-aws-cw/src/main/docs/aws-cw-component.adoc
@@ -29,7 +29,7 @@ The metrics will be created if they don't already exists. +
 
 
 // component options: START
-The AWS CloudWatch component supports 6 options, which are listed below.
+The AWS CloudWatch component supports 5 options, which are listed below.
 
 
 
@@ -40,7 +40,6 @@ The AWS CloudWatch component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which CW client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -104,7 +103,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 17 options, which are listed below.
+The component supports 16 options, which are listed below.
 
 
 
@@ -126,7 +125,6 @@ The component supports 17 options, which are listed below.
 | *camel.component.aws-cw.configuration.value* | The metric value |  | Double
 | *camel.component.aws-cw.enabled* | Whether to enable auto configuration of the aws-cw component. This is enabled by default. |  | Boolean
 | *camel.component.aws-cw.region* | The region in which CW client needs to work |  | String
-| *camel.component.aws-cw.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-cw.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc b/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
index 676fd70..c8f35cc 100644
--- a/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
+++ b/components/camel-aws-ddb/src/main/docs/aws-ddb-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS DynamoDB component supports 6 options, which are listed below.
+The AWS DynamoDB component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS DynamoDB component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which DDB client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 19 options, which are listed below.
+The component supports 18 options, which are listed below.
 
 
 
@@ -127,7 +126,6 @@ The component supports 19 options, which are listed below.
 | *camel.component.aws-ddb.configuration.write-capacity* | The provisioned throughput to reserved for writing resources to your table |  | Long
 | *camel.component.aws-ddb.enabled* | Whether to enable auto configuration of the aws-ddb component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ddb.region* | The region in which DDB client needs to work |  | String
-| *camel.component.aws-ddb.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-ddb.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc b/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
index 4681b9f..0ca47cc 100644
--- a/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
+++ b/components/camel-aws-ddb/src/main/docs/aws-ddbstream-component.adoc
@@ -27,7 +27,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS DynamoDB Streams component supports 6 options, which are listed below.
+The AWS DynamoDB Streams component supports 5 options, which are listed below.
 
 
 
@@ -38,7 +38,6 @@ The AWS DynamoDB Streams component supports 6 options, which are listed below.
 | *accessKey* (consumer) | Amazon AWS Access Key |  | String
 | *secretKey* (consumer) | Amazon AWS Secret Key |  | String
 | *region* (consumer) | Amazon AWS Region |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -120,7 +119,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 16 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -141,7 +140,6 @@ The component supports 16 options, which are listed below.
 | *camel.component.aws-ddbstream.configuration.table-name* | Name of the dynamodb table |  | String
 | *camel.component.aws-ddbstream.enabled* | Whether to enable auto configuration of the aws-ddbstream component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ddbstream.region* | Amazon AWS Region |  | String
-| *camel.component.aws-ddbstream.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-ddbstream.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc b/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc
index 9767ffa..d3299b6 100644
--- a/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc
+++ b/components/camel-aws-ec2/src/main/docs/aws-ec2-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS EC2 component supports 6 options, which are listed below.
+The AWS EC2 component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS EC2 component supports 6 options, which are listed below.
 | *region* (producer) | The region in which EC2 client needs to work |  | String
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-ec2.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-ec2.enabled* | Whether to enable auto configuration of the aws-ec2 component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ec2.region* | The region in which EC2 client needs to work |  | String
-| *camel.component.aws-ec2.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-ec2.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc b/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc
index 77183ff..0332dcc 100644
--- a/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc
+++ b/components/camel-aws-ecs/src/main/docs/aws-ecs-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS ECS component supports 6 options, which are listed below.
+The AWS ECS component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS ECS component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which ECS client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-ecs.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-ecs.enabled* | Whether to enable auto configuration of the aws-ecs component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ecs.region* | The region in which ECS client needs to work |  | String
-| *camel.component.aws-ecs.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-ecs.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc b/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc
index 301d948..4068848 100644
--- a/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc
+++ b/components/camel-aws-eks/src/main/docs/aws-eks-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS EKS component supports 6 options, which are listed below.
+The AWS EKS component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS EKS component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which EKS client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-eks.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-eks.enabled* | Whether to enable auto configuration of the aws-eks component. This is enabled by default. |  | Boolean
 | *camel.component.aws-eks.region* | The region in which EKS client needs to work |  | String
-| *camel.component.aws-eks.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-eks.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc b/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
index 44b2559..bef68ad 100644
--- a/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
+++ b/components/camel-aws-iam/src/main/docs/aws-iam-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS IAM component supports 6 options, which are listed below.
+The AWS IAM component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS IAM component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which IAM client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-iam.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-iam.enabled* | Whether to enable auto configuration of the aws-iam component. This is enabled by default. |  | Boolean
 | *camel.component.aws-iam.region* | The region in which IAM client needs to work |  | String
-| *camel.component.aws-iam.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-iam.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc
index 7649f40..3aaa94a 100644
--- a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc
+++ b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-component.adoc
@@ -27,7 +27,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS Kinesis component supports 6 options, which are listed below.
+The AWS Kinesis component supports 5 options, which are listed below.
 
 
 
@@ -38,7 +38,6 @@ The AWS Kinesis component supports 6 options, which are listed below.
 | *accessKey* (common) | Amazon AWS Access Key |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *region* (common) | Amazon AWS Region |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -124,7 +123,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 18 options, which are listed below.
+The component supports 17 options, which are listed below.
 
 
 
@@ -147,7 +146,6 @@ The component supports 18 options, which are listed below.
 | *camel.component.aws-kinesis.configuration.stream-name* | Name of the stream |  | String
 | *camel.component.aws-kinesis.enabled* | Whether to enable auto configuration of the aws-kinesis component. This is enabled by default. |  | Boolean
 | *camel.component.aws-kinesis.region* | Amazon AWS Region |  | String
-| *camel.component.aws-kinesis.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-kinesis.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc
index f81a181..8e417f4 100644
--- a/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc
+++ b/components/camel-aws-kinesis/src/main/docs/aws-kinesis-firehose-component.adoc
@@ -26,7 +26,7 @@ The stream needs to be created prior to it being used. +
 
 
 // component options: START
-The AWS Kinesis Firehose component supports 6 options, which are listed below.
+The AWS Kinesis Firehose component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS Kinesis Firehose component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | Amazon AWS Region |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -100,7 +99,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -118,7 +117,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-kinesis-firehose.configuration.stream-name* | Name of the stream |  | String
 | *camel.component.aws-kinesis-firehose.enabled* | Whether to enable auto configuration of the aws-kinesis-firehose component. This is enabled by default. |  | Boolean
 | *camel.component.aws-kinesis-firehose.region* | Amazon AWS Region |  | String
-| *camel.component.aws-kinesis-firehose.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-kinesis-firehose.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc b/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc
index de8cf21..b38defb 100644
--- a/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc
+++ b/components/camel-aws-kms/src/main/docs/aws-kms-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS KMS component supports 6 options, which are listed below.
+The AWS KMS component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS KMS component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which KMS client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-kms.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-kms.enabled* | Whether to enable auto configuration of the aws-kms component. This is enabled by default. |  | Boolean
 | *camel.component.aws-kms.region* | The region in which KMS client needs to work |  | String
-| *camel.component.aws-kms.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-kms.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc b/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc
index 741b4b8..842c1af 100644
--- a/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc
+++ b/components/camel-aws-lambda/src/main/docs/aws-lambda-component.adoc
@@ -32,7 +32,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Lambda component supports 6 options, which are listed below.
+The AWS Lambda component supports 5 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The AWS Lambda component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | Amazon AWS Region |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -104,7 +103,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 14 options, which are listed below.
+The component supports 13 options, which are listed below.
 
 
 
@@ -123,7 +122,6 @@ The component supports 14 options, which are listed below.
 | *camel.component.aws-lambda.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-lambda.enabled* | Whether to enable auto configuration of the aws-lambda component. This is enabled by default. |  | Boolean
 | *camel.component.aws-lambda.region* | Amazon AWS Region |  | String
-| *camel.component.aws-lambda.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-lambda.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc b/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc
index 629e2bd..197b0c1 100644
--- a/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc
+++ b/components/camel-aws-mq/src/main/docs/aws-mq-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS MQ component supports 6 options, which are listed below.
+The AWS MQ component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS MQ component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which MQ client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-mq.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-mq.enabled* | Whether to enable auto configuration of the aws-mq component. This is enabled by default. |  | Boolean
 | *camel.component.aws-mq.region* | The region in which MQ client needs to work |  | String
-| *camel.component.aws-mq.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-mq.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc b/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc
index 229d5be..452fd97 100644
--- a/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc
+++ b/components/camel-aws-msk/src/main/docs/aws-msk-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS MSK component supports 6 options, which are listed below.
+The AWS MSK component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS MSK component supports 6 options, which are listed below.
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which MSK client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -99,7 +98,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -117,7 +116,6 @@ The component supports 13 options, which are listed below.
 | *camel.component.aws-msk.configuration.secret-key* | Amazon AWS Secret Key |  | String
 | *camel.component.aws-msk.enabled* | Whether to enable auto configuration of the aws-msk component. This is enabled by default. |  | Boolean
 | *camel.component.aws-msk.region* | The region in which MSK client needs to work |  | String
-| *camel.component.aws-msk.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-msk.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc b/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
index e742444..26441ca 100644
--- a/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
+++ b/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc
@@ -36,7 +36,7 @@ from("aws-s3:helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&prefix=
 
 
 // component options: START
-The AWS S3 Storage Service component supports 6 options, which are listed below.
+The AWS S3 Storage Service component supports 5 options, which are listed below.
 
 
 
@@ -47,7 +47,6 @@ The AWS S3 Storage Service component supports 6 options, which are listed below.
 | *accessKey* (common) | Amazon AWS Access Key |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *region* (common) | The region where the bucket is located. This option is used in the com.amazonaws.services.s3.model.CreateBucketRequest. |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -160,7 +159,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 39 options, which are listed below.
+The component supports 38 options, which are listed below.
 
 
 
@@ -204,7 +203,6 @@ The component supports 39 options, which are listed below.
 | *camel.component.aws-s3.configuration.use-i-a-m-credentials* | Set whether the S3 client should expect to load credentials on an EC2 instance or to expect static credentials to be passed in. | false | Boolean
 | *camel.component.aws-s3.enabled* | Whether to enable auto configuration of the aws-s3 component. This is enabled by default. |  | Boolean
 | *camel.component.aws-s3.region* | The region where the bucket is located. This option is used in the com.amazonaws.services.s3.model.CreateBucketRequest. |  | String
-| *camel.component.aws-s3.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-s3.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-sdb/src/main/docs/aws-sdb-component.adoc b/components/camel-aws-sdb/src/main/docs/aws-sdb-component.adoc
index 2d28659..0ae6e6a 100644
--- a/components/camel-aws-sdb/src/main/docs/aws-sdb-component.adoc
+++ b/components/camel-aws-sdb/src/main/docs/aws-sdb-component.adoc
@@ -26,14 +26,13 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS SimpleDB component supports 2 options, which are listed below.
+The AWS SimpleDB component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -96,7 +95,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -105,7 +104,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.aws-sdb.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.aws-sdb.enabled* | Whether to enable auto configuration of the aws-sdb component. This is enabled by default. |  | Boolean
-| *camel.component.aws-sdb.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc b/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc
index 1e4cd5d..1143f02 100644
--- a/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc
+++ b/components/camel-aws-ses/src/main/docs/aws-ses-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Simple Email Service component supports 6 options, which are listed below.
+The AWS Simple Email Service component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS Simple Email Service component supports 6 options, which are listed belo
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which SES client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -101,7 +100,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 17 options, which are listed below.
+The component supports 16 options, which are listed below.
 
 
 
@@ -123,7 +122,6 @@ The component supports 17 options, which are listed below.
 | *camel.component.aws-ses.configuration.to* | List of destination email address. Can be overriden with 'CamelAwsSesTo' header. |  | List
 | *camel.component.aws-ses.enabled* | Whether to enable auto configuration of the aws-ses component. This is enabled by default. |  | Boolean
 | *camel.component.aws-ses.region* | The region in which SES client needs to work |  | String
-| *camel.component.aws-ses.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-ses.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc b/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc
index 479037c..bd609e9 100644
--- a/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc
+++ b/components/camel-aws-sns/src/main/docs/aws-sns-component.adoc
@@ -29,7 +29,7 @@ The topic will be created if they don't already exists. +
 
 
 // component options: START
-The AWS Simple Notification System component supports 6 options, which are listed below.
+The AWS Simple Notification System component supports 5 options, which are listed below.
 
 
 
@@ -40,7 +40,6 @@ The AWS Simple Notification System component supports 6 options, which are liste
 | *accessKey* (producer) | Amazon AWS Access Key |  | String
 | *secretKey* (producer) | Amazon AWS Secret Key |  | String
 | *region* (producer) | The region in which SNS client needs to work |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -111,7 +110,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 23 options, which are listed below.
+The component supports 22 options, which are listed below.
 
 
 
@@ -139,7 +138,6 @@ The component supports 23 options, which are listed below.
 | *camel.component.aws-sns.configuration.topic-name* | The name of the topic |  | String
 | *camel.component.aws-sns.enabled* | Whether to enable auto configuration of the aws-sns component. This is enabled by default. |  | Boolean
 | *camel.component.aws-sns.region* | The region in which SNS client needs to work |  | String
-| *camel.component.aws-sns.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-sns.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
index 8393c61..baa872e 100644
--- a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
+++ b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
@@ -27,7 +27,7 @@ The queue will be created if they don't already exists. +
 
 
 // component options: START
-The AWS Simple Queue Service component supports 6 options, which are listed below.
+The AWS Simple Queue Service component supports 5 options, which are listed below.
 
 
 
@@ -38,7 +38,6 @@ The AWS Simple Queue Service component supports 6 options, which are listed belo
 | *accessKey* (common) | Amazon AWS Access Key |  | String
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -148,7 +147,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 39 options, which are listed below.
+The component supports 38 options, which are listed below.
 
 
 
@@ -192,7 +191,6 @@ The component supports 39 options, which are listed below.
 | *camel.component.aws-sqs.configuration.wait-time-seconds* | Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response. |  | Integer
 | *camel.component.aws-sqs.enabled* | Whether to enable auto configuration of the aws-sqs component. This is enabled by default. |  | Boolean
 | *camel.component.aws-sqs.region* | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
-| *camel.component.aws-sqs.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-sqs.secret-key* | Amazon AWS Secret Key |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc b/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc
index 7edb1e2..1e87516 100644
--- a/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc
+++ b/components/camel-aws-swf/src/main/docs/aws-swf-component.adoc
@@ -26,7 +26,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The AWS Simple Workflow component supports 6 options, which are listed below.
+The AWS Simple Workflow component supports 5 options, which are listed below.
 
 
 
@@ -37,7 +37,6 @@ The AWS Simple Workflow component supports 6 options, which are listed below.
 | *accessKey* (common) | Amazon AWS Access Key. |  | String
 | *secretKey* (common) | Amazon AWS Secret Key. |  | String
 | *region* (common) | Amazon AWS Region. |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -120,7 +119,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 33 options, which are listed below.
+The component supports 32 options, which are listed below.
 
 
 
@@ -158,7 +157,6 @@ The component supports 33 options, which are listed below.
 | *camel.component.aws-swf.configuration.workflow-type-registration-options* | Workflow registration options |  | WorkflowType RegistrationOptions
 | *camel.component.aws-swf.enabled* | Whether to enable auto configuration of the aws-swf component. This is enabled by default. |  | Boolean
 | *camel.component.aws-swf.region* | Amazon AWS Region. |  | String
-| *camel.component.aws-swf.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.aws-swf.secret-key* | Amazon AWS Secret Key. |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-azure/src/main/docs/azure-blob-component.adoc b/components/camel-azure/src/main/docs/azure-blob-component.adoc
index cff2e2a..5402be2 100644
--- a/components/camel-azure/src/main/docs/azure-blob-component.adoc
+++ b/components/camel-azure/src/main/docs/azure-blob-component.adoc
@@ -35,7 +35,7 @@ to("file://blobdirectory");
 
 
 // component options: START
-The Azure Storage Blob Service component supports 3 options, which are listed below.
+The Azure Storage Blob Service component supports 2 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The Azure Storage Blob Service component supports 3 options, which are listed be
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | The Blob Service configuration |  | BlobService Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -122,7 +121,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 21 options, which are listed below.
+The component supports 20 options, which are listed below.
 
 
 
@@ -149,7 +148,6 @@ The component supports 21 options, which are listed below.
 | *camel.component.azure-blob.configuration.stream-write-size* | Set the size of the buffer for writing block and page blocks |  | Integer
 | *camel.component.azure-blob.configuration.use-flat-listing* | Specify if the flat or hierarchical blob listing should be used | true | Boolean
 | *camel.component.azure-blob.enabled* | Enable azure-blob component | true | Boolean
-| *camel.component.azure-blob.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-azure/src/main/docs/azure-queue-component.adoc b/components/camel-azure/src/main/docs/azure-queue-component.adoc
index 630da10..9257656 100644
--- a/components/camel-azure/src/main/docs/azure-queue-component.adoc
+++ b/components/camel-azure/src/main/docs/azure-queue-component.adoc
@@ -35,7 +35,7 @@ to("file://queuedirectory");
 
 
 // component options: START
-The Azure Storage Queue Service component supports 3 options, which are listed below.
+The Azure Storage Queue Service component supports 2 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The Azure Storage Queue Service component supports 3 options, which are listed b
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | The Queue Service configuration |  | QueueService Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -113,7 +112,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 11 options, which are listed below.
+The component supports 10 options, which are listed below.
 
 
 
@@ -130,7 +129,6 @@ The component supports 11 options, which are listed below.
 | *camel.component.azure-queue.configuration.queue-name* | The queue resource name |  | String
 | *camel.component.azure-queue.configuration.queue-prefix* | Set a prefix which can be used for listing the queues |  | String
 | *camel.component.azure-queue.enabled* | Enable azure-queue component | true | Boolean
-| *camel.component.azure-queue.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc b/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc
index 1a482ae..271459e 100644
--- a/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc
+++ b/components/camel-bean-validator/src/main/docs/bean-validator-component.adoc
@@ -45,14 +45,13 @@ Where *label* is an arbitrary text value describing the endpoint. +
 
 
 // component options: START
-The Bean Validator component supports 2 options, which are listed below.
+The Bean Validator component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -110,7 +109,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -119,7 +118,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.bean-validator.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.bean-validator.enabled* | Enable bean-validator component | true | Boolean
-| *camel.component.bean-validator.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-bean/src/main/docs/bean-component.adoc b/components/camel-bean/src/main/docs/bean-component.adoc
index 6246a4b..dd82b08 100644
--- a/components/camel-bean/src/main/docs/bean-component.adoc
+++ b/components/camel-bean/src/main/docs/bean-component.adoc
@@ -19,7 +19,7 @@ the Registry
 
 
 // component options: START
-The Bean component supports 3 options, which are listed below.
+The Bean component supports 2 options, which are listed below.
 
 
 
@@ -27,7 +27,6 @@ The Bean component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *cache* (advanced) | If enabled, Camel will cache the result of the first Registry look-up. Cache can be enabled if the bean in the Registry is defined as a singleton scope. |  | Boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-bean/src/main/docs/class-component.adoc b/components/camel-bean/src/main/docs/class-component.adoc
index d51336f..9e4eb43 100644
--- a/components/camel-bean/src/main/docs/class-component.adoc
+++ b/components/camel-bean/src/main/docs/class-component.adoc
@@ -22,7 +22,7 @@ bean.
 
 
 // component options: START
-The Class component supports 3 options, which are listed below.
+The Class component supports 2 options, which are listed below.
 
 
 
@@ -30,7 +30,6 @@ The Class component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *cache* (advanced) | If enabled, Camel will cache the result of the first Registry look-up. Cache can be enabled if the bean in the Registry is defined as a singleton scope. |  | Boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc b/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc
index 1b8b746..e8ee22d 100644
--- a/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc
+++ b/components/camel-beanstalk/src/main/docs/beanstalk-component.adoc
@@ -57,7 +57,7 @@ into Beanstalk.
 
 
 // component options: START
-The Beanstalk component supports 3 options, which are listed below.
+The Beanstalk component supports 2 options, which are listed below.
 
 
 
@@ -65,7 +65,6 @@ The Beanstalk component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *connectionSettings Factory* (common) | Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for unit testing without beanstalkd daemon (you can mock ConnectionSettings) |  | ConnectionSettings Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -144,7 +143,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -154,7 +153,6 @@ The component supports 4 options, which are listed below.
 | *camel.component.beanstalk.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.beanstalk.connection-settings-factory* | Custom ConnectionSettingsFactory. Specify which ConnectionSettingsFactory to use to make connections to Beanstalkd. Especially useful for unit testing without beanstalkd daemon (you can mock ConnectionSettings). The option is a org.apache.camel.component.beanstalk.ConnectionSettingsFactory type. |  | String
 | *camel.component.beanstalk.enabled* | Enable beanstalk component | true | Boolean
-| *camel.component.beanstalk.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-bonita/src/main/docs/bonita-component.adoc b/components/camel-bonita/src/main/docs/bonita-component.adoc
index 6d0177f..1ca88a0 100644
--- a/components/camel-bonita/src/main/docs/bonita-component.adoc
+++ b/components/camel-bonita/src/main/docs/bonita-component.adoc
@@ -17,14 +17,13 @@ Where *operation* is the specific action to perform on Bonita.
 == General Options
 
 // component options: START
-The Bonita component supports 2 options, which are listed below.
+The Bonita component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -83,7 +82,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -92,7 +91,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.bonita.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.bonita.enabled* | Enable bonita component | true | Boolean
-| *camel.component.bonita.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-box/camel-box-component/src/main/docs/box-component.adoc b/components/camel-box/camel-box-component/src/main/docs/box-component.adoc
index a534da6..ea34258 100644
--- a/components/camel-box/camel-box-component/src/main/docs/box-component.adoc
+++ b/components/camel-box/camel-box-component/src/main/docs/box-component.adoc
@@ -48,7 +48,7 @@ The Box component supports three different types of authenticated connections.
 == Box Options
 
 // component options: START
-The Box component supports 3 options, which are listed below.
+The Box component supports 2 options, which are listed below.
 
 
 
@@ -56,7 +56,6 @@ The Box component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | BoxConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -127,7 +126,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 20 options, which are listed below.
+The component supports 19 options, which are listed below.
 
 
 
@@ -153,7 +152,6 @@ The component supports 20 options, which are listed below.
 | *camel.component.box.configuration.user-name* | Box user name, MUST be provided |  | String
 | *camel.component.box.configuration.user-password* | Box user password, MUST be provided if authSecureStorage is not set, or returns null on first call |  | String
 | *camel.component.box.enabled* | Enable box component | true | Boolean
-| *camel.component.box.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-braintree/src/main/docs/braintree-component.adoc b/components/camel-braintree/src/main/docs/braintree-component.adoc
index 649d71c..2840d7c 100644
--- a/components/camel-braintree/src/main/docs/braintree-component.adoc
+++ b/components/camel-braintree/src/main/docs/braintree-component.adoc
@@ -36,7 +36,7 @@ for this component:
 
 
 // component options: START
-The Braintree component supports 3 options, which are listed below.
+The Braintree component supports 2 options, which are listed below.
 
 
 
@@ -44,7 +44,6 @@ The Braintree component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | BraintreeConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -113,7 +112,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 15 options, which are listed below.
+The component supports 14 options, which are listed below.
 
 
 
@@ -134,7 +133,6 @@ The component supports 15 options, which are listed below.
 | *camel.component.braintree.configuration.proxy-port* | The proxy port |  | Integer
 | *camel.component.braintree.configuration.public-key* | The public key provided by Braintree. |  | String
 | *camel.component.braintree.enabled* | Enable braintree component | true | Boolean
-| *camel.component.braintree.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-browse/src/main/docs/browse-component.adoc b/components/camel-browse/src/main/docs/browse-component.adoc
index e773f0a..5f98e6a 100644
--- a/components/camel-browse/src/main/docs/browse-component.adoc
+++ b/components/camel-browse/src/main/docs/browse-component.adoc
@@ -22,14 +22,13 @@ Where *someName* can be any string to uniquely identify the endpoint.
 
 
 // component options: START
-The Browse component supports 2 options, which are listed below.
+The Browse component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -86,7 +85,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -95,7 +94,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.browse.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.browse.enabled* | Whether to enable auto configuration of the browse component. This is enabled by default. |  | Boolean
-| *camel.component.browse.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc b/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc
index b68b57d..6cceaa2 100644
--- a/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc
+++ b/components/camel-caffeine/src/main/docs/caffeine-cache-component.adoc
@@ -33,7 +33,7 @@ format, `?option=value&option=#beanRef&...`
 
 
 // component options: START
-The Caffeine Cache component supports 3 options, which are listed below.
+The Caffeine Cache component supports 2 options, which are listed below.
 
 
 
@@ -41,7 +41,6 @@ The Caffeine Cache component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | Sets the global component configuration |  | CaffeineConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -112,7 +111,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 18 options, which are listed below.
+The component supports 17 options, which are listed below.
 
 
 
@@ -136,7 +135,6 @@ The component supports 18 options, which are listed below.
 | *camel.component.caffeine-cache.configuration.stats-enabled* | To enable stats on the cache | false | Boolean
 | *camel.component.caffeine-cache.configuration.value-type* | The cache value type, default "java.lang.Object" |  | Class
 | *camel.component.caffeine-cache.enabled* | Whether to enable auto configuration of the caffeine-cache component. This is enabled by default. |  | Boolean
-| *camel.component.caffeine-cache.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc b/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc
index 0bc6e0e..aea2ee3 100644
--- a/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc
+++ b/components/camel-caffeine/src/main/docs/caffeine-loadcache-component.adoc
@@ -33,7 +33,7 @@ format, `?option=value&option=#beanRef&...`
 
 
 // component options: START
-The Caffeine LoadCache component supports 3 options, which are listed below.
+The Caffeine LoadCache component supports 2 options, which are listed below.
 
 
 
@@ -41,7 +41,6 @@ The Caffeine LoadCache component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | Sets the global component configuration |  | CaffeineConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -112,7 +111,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 18 options, which are listed below.
+The component supports 17 options, which are listed below.
 
 
 
@@ -136,7 +135,6 @@ The component supports 18 options, which are listed below.
 | *camel.component.caffeine-loadcache.configuration.stats-enabled* | To enable stats on the cache | false | Boolean
 | *camel.component.caffeine-loadcache.configuration.value-type* | The cache value type, default "java.lang.Object" |  | Class
 | *camel.component.caffeine-loadcache.enabled* | Whether to enable auto configuration of the caffeine-loadcache component. This is enabled by default. |  | Boolean
-| *camel.component.caffeine-loadcache.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-cassandraql/src/main/docs/cql-component.adoc b/components/camel-cassandraql/src/main/docs/cql-component.adoc
index 7c844b1..cb3dfaf 100644
--- a/components/camel-cassandraql/src/main/docs/cql-component.adoc
+++ b/components/camel-cassandraql/src/main/docs/cql-component.adoc
@@ -55,14 +55,13 @@ your own Cluster instance and give it to the Camel endpoint.
 
 
 // component options: START
-The Cassandra CQL component supports 2 options, which are listed below.
+The Cassandra CQL component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -146,7 +145,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -155,7 +154,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.cql.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.cql.enabled* | Enable cql component | true | Boolean
-| *camel.component.cql.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-chatscript/src/main/docs/chatscript-component.adoc b/components/camel-chatscript/src/main/docs/chatscript-component.adoc
index 8ab3187..47b4538 100644
--- a/components/camel-chatscript/src/main/docs/chatscript-component.adoc
+++ b/components/camel-chatscript/src/main/docs/chatscript-component.adoc
@@ -38,14 +38,13 @@ ChatScript:host:[port]/botName[?options]
 == Options
 
 // component options: START
-The ChatScript component supports 2 options, which are listed below.
+The ChatScript component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -101,7 +100,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -110,6 +109,5 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.chatscript.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.chatscript.enabled* | Whether to enable auto configuration of the chatscript component. This is enabled by default. |  | Boolean
-| *camel.component.chatscript.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-chunk/src/main/docs/chunk-component.adoc b/components/camel-chunk/src/main/docs/chunk-component.adoc
index 2462062..04361f3 100644
--- a/components/camel-chunk/src/main/docs/chunk-component.adoc
+++ b/components/camel-chunk/src/main/docs/chunk-component.adoc
@@ -37,14 +37,13 @@ format, `?option=value&option=value&...`
 
 
 // component options: START
-The Chunk component supports 2 options, which are listed below.
+The Chunk component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -112,7 +111,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.chunk.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.chunk.enabled* | Enable chunk component | true | Boolean
-| *camel.component.chunk.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-cm-sms/src/main/docs/cm-sms-component.adoc b/components/camel-cm-sms/src/main/docs/cm-sms-component.adoc
index b44ea86..9245b8d 100644
--- a/components/camel-cm-sms/src/main/docs/cm-sms-component.adoc
+++ b/components/camel-cm-sms/src/main/docs/cm-sms-component.adoc
@@ -32,14 +32,13 @@ for this component:
 
 
 // component options: START
-The CM SMS Gateway component supports 2 options, which are listed below.
+The CM SMS Gateway component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -96,7 +95,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -105,7 +104,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.cm-sms.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.cm-sms.enabled* | Enable cm-sms component | true | Boolean
-| *camel.component.cm-sms.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-cmis/src/main/docs/cmis-component.adoc b/components/camel-cmis/src/main/docs/cmis-component.adoc
index 652bf21..ebcc58e 100644
--- a/components/camel-cmis/src/main/docs/cmis-component.adoc
+++ b/components/camel-cmis/src/main/docs/cmis-component.adoc
@@ -22,7 +22,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The CMIS component supports 3 options, which are listed below.
+The CMIS component supports 2 options, which are listed below.
 
 
 
@@ -30,7 +30,6 @@ The CMIS component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *sessionFacadeFactory* (common) | To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances |  | CMISSessionFacade Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -95,7 +94,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -104,7 +103,6 @@ The component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.cmis.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.cmis.enabled* | Enable cmis component | true | Boolean
-| *camel.component.cmis.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.cmis.session-facade-factory* | To use a custom CMISSessionFacadeFactory to create the CMISSessionFacade instances. The option is a org.apache.camel.component.cmis.CMISSessionFacadeFactory type. |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-coap/src/main/docs/coap-component.adoc b/components/camel-coap/src/main/docs/coap-component.adoc
index a0adcc3..f291c81 100644
--- a/components/camel-coap/src/main/docs/coap-component.adoc
+++ b/components/camel-coap/src/main/docs/coap-component.adoc
@@ -42,14 +42,13 @@ for this component:
 
 
 // component options: START
-The CoAP component supports 2 options, which are listed below.
+The CoAP component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -115,7 +114,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -124,7 +123,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.coap.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.coap.enabled* | Enable coap component | true | Boolean
-| *camel.component.coap.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-cometd/src/main/docs/cometd-component.adoc b/components/camel-cometd/src/main/docs/cometd-component.adoc
index ac0ab07..1591aba 100644
--- a/components/camel-cometd/src/main/docs/cometd-component.adoc
+++ b/components/camel-cometd/src/main/docs/cometd-component.adoc
@@ -49,7 +49,7 @@ where `cometds:` represents an SSL configured endpoint.
 
 
 // component options: START
-The CometD component supports 9 options, which are listed below.
+The CometD component supports 8 options, which are listed below.
 
 
 
@@ -63,7 +63,6 @@ The CometD component supports 9 options, which are listed below.
 | *extensions* (common) | To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests. |  | List
 | *sslContextParameters* (security) | To configure security using SSLContextParameters |  | SSLContextParameters
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -136,7 +135,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 10 options, which are listed below.
+The component supports 9 options, which are listed below.
 
 
 
@@ -146,7 +145,6 @@ The component supports 10 options, which are listed below.
 | *camel.component.cometd.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.cometd.enabled* | Enable cometd component | true | Boolean
 | *camel.component.cometd.extensions* | To use a list of custom BayeuxServer.Extension that allows modifying incoming and outgoing requests. |  | List
-| *camel.component.cometd.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.cometd.security-policy* | To use a custom configured SecurityPolicy to control authorization. The option is a org.cometd.bayeux.server.SecurityPolicy type. |  | String
 | *camel.component.cometd.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
 | *camel.component.cometd.ssl-key-password* | The password for the keystore when using SSL. |  | String
diff --git a/components/camel-consul/src/main/docs/consul-component.adoc b/components/camel-consul/src/main/docs/consul-component.adoc
index a9bc52a..d30cff3 100644
--- a/components/camel-consul/src/main/docs/consul-component.adoc
+++ b/components/camel-consul/src/main/docs/consul-component.adoc
@@ -36,7 +36,7 @@ You can append query options to the URI in the following format:
 
 
 // component options: START
-The Consul component supports 10 options, which are listed below.
+The Consul component supports 9 options, which are listed below.
 
 
 
@@ -51,7 +51,6 @@ The Consul component supports 10 options, which are listed below.
 | *userName* (common) | Sets the username to be used for basic authentication |  | String
 | *password* (common) | Sets the password to be used for basic authentication |  | String
 | *configuration* (advanced) | Sets the common configuration shared among endpoints |  | ConsulConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -110,7 +109,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 91 options, which are listed below.
+The component supports 90 options, which are listed below.
 
 
 
@@ -173,7 +172,6 @@ The component supports 91 options, which are listed below.
 | *camel.component.consul.health.check.repository.failure-threshold* |  |  | Integer
 | *camel.component.consul.health.check.repository.interval* |  |  | String
 | *camel.component.consul.password* | Sets the password to be used for basic authentication |  | String
-| *camel.component.consul.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.consul.service-registry.acl-token* |  |  | String
 | *camel.component.consul.service-registry.attributes* | Custom service attributes. |  | Map
 | *camel.component.consul.service-registry.block-seconds* |  |  | Integer
diff --git a/components/camel-controlbus/src/main/docs/controlbus-component.adoc b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
index 04fdab1..b87ede2 100644
--- a/components/camel-controlbus/src/main/docs/controlbus-component.adoc
+++ b/components/camel-controlbus/src/main/docs/controlbus-component.adoc
@@ -53,14 +53,13 @@ then the result is put in the message body.
 
 
 // component options: START
-The Control Bus component supports 2 options, which are listed below.
+The Control Bus component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -124,7 +123,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -133,7 +132,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.controlbus.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.controlbus.enabled* | Whether to enable auto configuration of the controlbus component. This is enabled by default. |  | Boolean
-| *camel.component.controlbus.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-corda/src/main/docs/corda-component.adoc b/components/camel-corda/src/main/docs/corda-component.adoc
index 4b99b8d..e439eb4 100644
--- a/components/camel-corda/src/main/docs/corda-component.adoc
+++ b/components/camel-corda/src/main/docs/corda-component.adoc
@@ -30,7 +30,7 @@ corda://<host:port>[?options]
 
 
 // component options: START
-The corda component supports 3 options, which are listed below.
+The corda component supports 2 options, which are listed below.
 
 
 
@@ -38,7 +38,6 @@ The corda component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | Default configuration |  | CordaConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -93,7 +92,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 15 options, which are listed below.
+The component supports 14 options, which are listed below.
 
 
 
@@ -114,7 +113,6 @@ The component supports 15 options, which are listed below.
 | *camel.component.corda.configuration.sort* |  |  | Sort
 | *camel.component.corda.configuration.username* |  |  | String
 | *camel.component.corda.enabled* | Enable corda component | true | Boolean
-| *camel.component.corda.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-couchbase/src/main/docs/couchbase-component.adoc b/components/camel-couchbase/src/main/docs/couchbase-component.adoc
index 7fc8ab9..989d463 100644
--- a/components/camel-couchbase/src/main/docs/couchbase-component.adoc
+++ b/components/camel-couchbase/src/main/docs/couchbase-component.adoc
@@ -30,14 +30,13 @@ couchbase:url
 == Options
 
 // component options: START
-The Couchbase component supports 2 options, which are listed below.
+The Couchbase component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -136,7 +135,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -145,7 +144,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.couchbase.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.couchbase.enabled* | Enable couchbase component | true | Boolean
-| *camel.component.couchbase.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-couchdb/src/main/docs/couchdb-component.adoc b/components/camel-couchdb/src/main/docs/couchdb-component.adoc
index 232ea48..d4d65ab 100644
--- a/components/camel-couchdb/src/main/docs/couchdb-component.adoc
+++ b/components/camel-couchdb/src/main/docs/couchdb-component.adoc
@@ -45,14 +45,13 @@ is optional and if not specified then defaults to 5984.
 == Options
 
 // component options: START
-The CouchDB component supports 2 options, which are listed below.
+The CouchDB component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -117,7 +116,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -126,7 +125,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.couchdb.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.couchdb.enabled* | Enable couchdb component | true | Boolean
-| *camel.component.couchdb.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-crypto-cms/src/main/docs/crypto-cms-component.adoc b/components/camel-crypto-cms/src/main/docs/crypto-cms-component.adoc
index 7803394..8583a92 100644
--- a/components/camel-crypto-cms/src/main/docs/crypto-cms-component.adoc
+++ b/components/camel-crypto-cms/src/main/docs/crypto-cms-component.adoc
@@ -34,7 +34,7 @@ If the Bouncy Castle security provider is not registered then the Crypto CMS com
 == Options
 
 // component options: START
-The Crypto CMS component supports 4 options, which are listed below.
+The Crypto CMS component supports 3 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The Crypto CMS component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *signedDataVerifier Configuration* (advanced) | To configure the shared SignedDataVerifierConfiguration, which determines the uri parameters for the verify operation. |  | SignedDataVerifier Configuration
 | *envelopedDataDecryptor Configuration* (advanced) | To configure the shared EnvelopedDataDecryptorConfiguration, which determines the uri parameters for the decrypt operation. |  | EnvelopedDataDecryptor Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -109,7 +108,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 5 options, which are listed below.
+The component supports 4 options, which are listed below.
 
 
 
@@ -119,7 +118,6 @@ The component supports 5 options, which are listed below.
 | *camel.component.crypto-cms.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.crypto-cms.enabled* | Whether to enable auto configuration of the crypto-cms component. This is enabled by default. |  | Boolean
 | *camel.component.crypto-cms.enveloped-data-decryptor-configuration* | To configure the shared EnvelopedDataDecryptorConfiguration, which determines the uri parameters for the decrypt operation. The option is a org.apache.camel.component.crypto.cms.crypt.EnvelopedDataDecryptorConfiguration type. |  | String
-| *camel.component.crypto-cms.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.crypto-cms.signed-data-verifier-configuration* | To configure the shared SignedDataVerifierConfiguration, which determines the uri parameters for the verify operation. The option is a org.apache.camel.component.crypto.cms.sig.SignedDataVerifierConfiguration type. |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-crypto/src/main/docs/crypto-component.adoc b/components/camel-crypto/src/main/docs/crypto-component.adoc
index 451b196..99f97e1 100644
--- a/components/camel-crypto/src/main/docs/crypto-component.adoc
+++ b/components/camel-crypto/src/main/docs/crypto-component.adoc
@@ -81,7 +81,7 @@ both signing and verifying should be configured identically.
 == Options
 
 // component options: START
-The Crypto (JCE) component supports 3 options, which are listed below.
+The Crypto (JCE) component supports 2 options, which are listed below.
 
 
 
@@ -89,7 +89,6 @@ The Crypto (JCE) component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use the shared DigitalSignatureConfiguration as configuration |  | DigitalSignature Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -159,7 +158,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 34 options, which are listed below.
+The component supports 33 options, which are listed below.
 
 
 
@@ -188,7 +187,6 @@ The component supports 34 options, which are listed below.
 | *camel.component.crypto.configuration.secure-random-name* | Sets the reference name for a SecureRandom that can be found in the registry. |  | String
 | *camel.component.crypto.configuration.signature-header-name* | Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelDigitalSignature' |  | String
 | *camel.component.crypto.enabled* | Enable crypto component | true | Boolean
-| *camel.component.crypto.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.dataformat.crypto.algorithm* | The JCE algorithm name indicating the cryptographic algorithm that will be used. Is by default DES/CBC/PKCS5Padding. | DES/CBC/PKCS5Padding | String
 | *camel.dataformat.crypto.algorithm-parameter-ref* | A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type using the given name as a java.security.spec.AlgorithmParameterSpec type. |  | String
 | *camel.dataformat.crypto.buffersize* | The size of the buffer used in the signature process. |  | Integer
diff --git a/components/camel-crypto/src/main/docs/crypto-dataformat.adoc b/components/camel-crypto/src/main/docs/crypto-dataformat.adoc
index 8b3547d..1451c60 100644
--- a/components/camel-crypto/src/main/docs/crypto-dataformat.adoc
+++ b/components/camel-crypto/src/main/docs/crypto-dataformat.adoc
@@ -49,7 +49,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 34 options, which are listed below.
+The component supports 33 options, which are listed below.
 
 
 
@@ -78,7 +78,6 @@ The component supports 34 options, which are listed below.
 | *camel.component.crypto.configuration.secure-random-name* | Sets the reference name for a SecureRandom that can be found in the registry. |  | String
 | *camel.component.crypto.configuration.signature-header-name* | Set the name of the message header that should be used to store the base64 encoded signature. This defaults to 'CamelDigitalSignature' |  | String
 | *camel.component.crypto.enabled* | Enable crypto component | true | Boolean
-| *camel.component.crypto.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.dataformat.crypto.algorithm* | The JCE algorithm name indicating the cryptographic algorithm that will be used. Is by default DES/CBC/PKCS5Padding. | DES/CBC/PKCS5Padding | String
 | *camel.dataformat.crypto.algorithm-parameter-ref* | A JCE AlgorithmParameterSpec used to initialize the Cipher. Will lookup the type using the given name as a java.security.spec.AlgorithmParameterSpec type. |  | String
 | *camel.dataformat.crypto.buffersize* | The size of the buffer used in the signature process. |  | Integer
diff --git a/components/camel-cxf/src/main/docs/cxf-component.adoc b/components/camel-cxf/src/main/docs/cxf-component.adoc
index 8aa00b2..ce1b3cb 100644
--- a/components/camel-cxf/src/main/docs/cxf-component.adoc
+++ b/components/camel-cxf/src/main/docs/cxf-component.adoc
@@ -82,7 +82,7 @@ cxf:bean:cxfEndpoint?wsdlURL=wsdl/hello_world.wsdl&dataFormat=PAYLOAD
 
 
 // component options: START
-The CXF component supports 5 options, which are listed below.
+The CXF component supports 4 options, which are listed below.
 
 
 
@@ -92,7 +92,6 @@ The CXF component supports 5 options, which are listed below.
 | *allowStreaming* (advanced) | This option controls whether the CXF component, when running in PAYLOAD mode, will DOM parse the incoming messages into DOM Elements or keep the payload as a javax.xml.transform.Source object that would allow streaming in some cases. |  | Boolean
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -181,7 +180,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -192,7 +191,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.cxf.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.cxf.enabled* | Enable cxf component | true | Boolean
 | *camel.component.cxf.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
-| *camel.component.cxf.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.cxf.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-cxf/src/main/docs/cxfrs-component.adoc b/components/camel-cxf/src/main/docs/cxfrs-component.adoc
index 60c76dc..a2d8379 100644
--- a/components/camel-cxf/src/main/docs/cxfrs-component.adoc
+++ b/components/camel-cxf/src/main/docs/cxfrs-component.adoc
@@ -48,7 +48,7 @@ cxfrs:bean:cxfEndpoint?resourceClasses=org.apache.camel.rs.Example
 
 
 // component options: START
-The CXF-RS component supports 4 options, which are listed below.
+The CXF-RS component supports 3 options, which are listed below.
 
 
 
@@ -57,7 +57,6 @@ The CXF-RS component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -141,7 +140,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 5 options, which are listed below.
+The component supports 4 options, which are listed below.
 
 
 
@@ -151,7 +150,6 @@ The component supports 5 options, which are listed below.
 | *camel.component.cxfrs.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.cxfrs.enabled* | Enable cxfrs component | true | Boolean
 | *camel.component.cxfrs.header-filter-strategy* | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. The option is a org.apache.camel.spi.HeaderFilterStrategy type. |  | String
-| *camel.component.cxfrs.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.cxfrs.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-dataformat/src/main/docs/dataformat-component.adoc b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
index 8764039..badbcec 100644
--- a/components/camel-dataformat/src/main/docs/dataformat-component.adoc
+++ b/components/camel-dataformat/src/main/docs/dataformat-component.adoc
@@ -23,14 +23,13 @@ for which options it support.
 
 
 // component options: START
-The Data Format component supports 2 options, which are listed below.
+The Data Format component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -85,7 +84,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -94,7 +93,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.dataformat.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.dataformat.enabled* | Whether to enable auto configuration of the dataformat component. This is enabled by default. |  | Boolean
-| *camel.component.dataformat.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-dataset/src/main/docs/dataset-component.adoc b/components/camel-dataset/src/main/docs/dataset-component.adoc
index 9e15139..57093d6 100644
--- a/components/camel-dataset/src/main/docs/dataset-component.adoc
+++ b/components/camel-dataset/src/main/docs/dataset-component.adoc
@@ -45,14 +45,13 @@ extend `DataSetSupport`.
 
 
 // component options: START
-The Dataset component supports 2 options, which are listed below.
+The Dataset component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -121,7 +120,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -130,7 +129,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.dataset.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.dataset.enabled* | Whether to enable auto configuration of the dataset component. This is enabled by default. |  | Boolean
-| *camel.component.dataset.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-dataset/src/main/docs/dataset-test-component.adoc b/components/camel-dataset/src/main/docs/dataset-test-component.adoc
index 82cca82..91c422c 100644
--- a/components/camel-dataset/src/main/docs/dataset-test-component.adoc
+++ b/components/camel-dataset/src/main/docs/dataset-test-component.adoc
@@ -41,14 +41,13 @@ pulled from before starting the test.
 == URI Options
 
 // component options: START
-The DataSet Test component supports 2 options, which are listed below.
+The DataSet Test component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -114,7 +113,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -123,7 +122,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.dataset-test.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.dataset-test.enabled* | Whether to enable auto configuration of the dataset-test component. This is enabled by default. |  | Boolean
-| *camel.component.dataset-test.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-digitalocean/src/main/docs/digitalocean-component.adoc b/components/camel-digitalocean/src/main/docs/digitalocean-component.adoc
index 8e473e4..f75569a 100644
--- a/components/camel-digitalocean/src/main/docs/digitalocean-component.adoc
+++ b/components/camel-digitalocean/src/main/docs/digitalocean-component.adoc
@@ -31,14 +31,13 @@ The DigitalOcean component only supports producer endpoints so you cannot use th
 
 
 // component options: START
-The DigitalOcean component supports 2 options, which are listed below.
+The DigitalOcean component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -98,7 +97,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -107,7 +106,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.digitalocean.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.digitalocean.enabled* | Enable digitalocean component | true | Boolean
-| *camel.component.digitalocean.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-direct/src/main/docs/direct-component.adoc b/components/camel-direct/src/main/docs/direct-component.adoc
index 230275f..497520d 100644
--- a/components/camel-direct/src/main/docs/direct-component.adoc
+++ b/components/camel-direct/src/main/docs/direct-component.adoc
@@ -30,7 +30,7 @@ Where *someName* can be any string to uniquely identify the endpoint
 
 
 // component options: START
-The Direct component supports 4 options, which are listed below.
+The Direct component supports 3 options, which are listed below.
 
 
 
@@ -39,7 +39,6 @@ The Direct component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *block* (producer) | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | boolean
 | *timeout* (producer) | The timeout value to use if block is enabled. | 30000 | long
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -100,7 +99,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 5 options, which are listed below.
+The component supports 4 options, which are listed below.
 
 
 
@@ -110,7 +109,6 @@ The component supports 5 options, which are listed below.
 | *camel.component.direct.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.direct.block* | If sending a message to a direct endpoint which has no active consumer, then we can tell the producer to block and wait for the consumer to become active. | true | Boolean
 | *camel.component.direct.enabled* | Whether to enable auto configuration of the direct component. This is enabled by default. |  | Boolean
-| *camel.component.direct.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.direct.timeout* | The timeout value to use if block is enabled. | 30000 | Long
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-directvm/src/main/docs/direct-vm-component.adoc b/components/camel-directvm/src/main/docs/direct-vm-component.adoc
index 842f434..55cfa44 100644
--- a/components/camel-directvm/src/main/docs/direct-vm-component.adoc
+++ b/components/camel-directvm/src/main/docs/direct-vm-component.adoc
@@ -41,7 +41,7 @@ Where *someName* can be any string to uniquely identify the endpoint
 
 
 // component options: START
-The Direct VM component supports 6 options, which are listed below.
+The Direct VM component supports 5 options, which are listed below.
 
 
 
@@ -52,7 +52,6 @@ The Direct VM component supports 6 options, which are listed below.
 | *timeout* (producer) | The timeout value to use if block is enabled. | 30000 | long
 | *headerFilterStrategy* (advanced) | Sets a HeaderFilterStrategy that will only be applied on producer endpoints (on both directions: request and response). Default value: none. |  | HeaderFilterStrategy
 | *propagateProperties* (advanced) | Whether to propagate or not properties from the producer side to the consumer side, and vice versa. Default value: true. | true | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-disruptor/src/main/docs/disruptor-component.adoc b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
index fd1d98a..6c2409d 100644
--- a/components/camel-disruptor/src/main/docs/disruptor-component.adoc
+++ b/components/camel-disruptor/src/main/docs/disruptor-component.adoc
@@ -95,7 +95,7 @@ All the following options are valid for both the **disruptor:** and
 
 
 // component options: START
-The Disruptor component supports 9 options, which are listed below.
+The Disruptor component supports 8 options, which are listed below.
 
 
 
@@ -109,7 +109,6 @@ The Disruptor component supports 9 options, which are listed below.
 | *defaultBlockWhenFull* (producer) | To configure the default value for block when full The default value is true. | true | boolean
 | *queueSize* (common) | *Deprecated* To configure the ring buffer size |  | int
 | *bufferSize* (common) | To configure the ring buffer size | 1024 | int
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -174,7 +173,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 20 options, which are listed below.
+The component supports 18 options, which are listed below.
 
 
 
@@ -189,7 +188,6 @@ The component supports 20 options, which are listed below.
 | *camel.component.disruptor-vm.default-producer-type* | To configure the default value for DisruptorProducerType The default value is Multi. |  | DisruptorProducerType
 | *camel.component.disruptor-vm.default-wait-strategy* | To configure the default value for DisruptorWaitStrategy The default value is Blocking. |  | DisruptorWaitStrategy
 | *camel.component.disruptor-vm.enabled* | Enable disruptor-vm component | true | Boolean
-| *camel.component.disruptor-vm.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.disruptor.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.disruptor.buffer-size* | To configure the ring buffer size | 1024 | Integer
 | *camel.component.disruptor.default-block-when-full* | To configure the default value for block when full The default value is true. | true | Boolean
@@ -198,7 +196,6 @@ The component supports 20 options, which are listed below.
 | *camel.component.disruptor.default-producer-type* | To configure the default value for DisruptorProducerType The default value is Multi. |  | DisruptorProducerType
 | *camel.component.disruptor.default-wait-strategy* | To configure the default value for DisruptorWaitStrategy The default value is Blocking. |  | DisruptorWaitStrategy
 | *camel.component.disruptor.enabled* | Enable disruptor component | true | Boolean
-| *camel.component.disruptor.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.disruptor-vm.queue-size* | *Deprecated* To configure the ring buffer size |  | Integer
 | *camel.component.disruptor.queue-size* | *Deprecated* To configure the ring buffer size |  | Integer
 |===
diff --git a/components/camel-dns/src/main/docs/dns-component.adoc b/components/camel-dns/src/main/docs/dns-component.adoc
index 617c251..81bb030 100644
--- a/components/camel-dns/src/main/docs/dns-component.adoc
+++ b/components/camel-dns/src/main/docs/dns-component.adoc
@@ -51,14 +51,13 @@ This component only supports producers.
 
 
 // component options: START
-The DNS component supports 2 options, which are listed below.
+The DNS component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -111,7 +110,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -120,7 +119,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.dns.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.dns.enabled* | Enable dns component | true | Boolean
-| *camel.component.dns.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-docker/src/main/docs/docker-component.adoc b/components/camel-docker/src/main/docs/docker-component.adoc
index 8352ef4..8d20958 100644
--- a/components/camel-docker/src/main/docs/docker-component.adoc
+++ b/components/camel-docker/src/main/docs/docker-component.adoc
@@ -23,7 +23,7 @@ Where *operation* is the specific action to perform on Docker.
 == General Options
 
 // component options: START
-The Docker component supports 3 options, which are listed below.
+The Docker component supports 2 options, which are listed below.
 
 
 
@@ -31,7 +31,6 @@ The Docker component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use the shared docker configuration |  | DockerConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -102,7 +101,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 21 options, which are listed below.
+The component supports 20 options, which are listed below.
 
 
 
@@ -129,7 +128,6 @@ The component supports 21 options, which are listed below.
 | *camel.component.docker.configuration.tls-verify* | Check TLS | false | Boolean
 | *camel.component.docker.configuration.username* | User name to authenticate with |  | String
 | *camel.component.docker.enabled* | Enable docker component | true | Boolean
-| *camel.component.docker.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-dozer/src/main/docs/dozer-component.adoc b/components/camel-dozer/src/main/docs/dozer-component.adoc
index 978495c..f5cac4d 100644
--- a/components/camel-dozer/src/main/docs/dozer-component.adoc
+++ b/components/camel-dozer/src/main/docs/dozer-component.adoc
@@ -57,14 +57,13 @@ from("direct:orderInput").
 == Options
 
 // component options: START
-The Dozer component supports 2 options, which are listed below.
+The Dozer component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -121,7 +120,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -130,7 +129,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.dozer.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.dozer.enabled* | Enable dozer component | true | Boolean
-| *camel.component.dozer.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-drill/src/main/docs/drill-component.adoc b/components/camel-drill/src/main/docs/drill-component.adoc
index 91559cb..71ad631 100644
--- a/components/camel-drill/src/main/docs/drill-component.adoc
+++ b/components/camel-drill/src/main/docs/drill-component.adoc
@@ -37,14 +37,13 @@ The producer executes a query using the *CamelDrillQuery* header and puts the re
 == Options
 
 // component options: START
-The Drill component supports 2 options, which are listed below.
+The Drill component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -101,7 +100,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -110,7 +109,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.drill.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.drill.enabled* | Enable drill component | true | Boolean
-| *camel.component.drill.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-dropbox/src/main/docs/dropbox-component.adoc b/components/camel-dropbox/src/main/docs/dropbox-component.adoc
index 2c421e9..caa2883 100644
--- a/components/camel-dropbox/src/main/docs/dropbox-component.adoc
+++ b/components/camel-dropbox/src/main/docs/dropbox-component.adoc
@@ -66,14 +66,13 @@ https://www.dropbox.com/developers/core/start/java[Dropbox
 documentation] that explains how to get them.  
 
 // component options: START
-The Dropbox component supports 2 options, which are listed below.
+The Dropbox component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -135,7 +134,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -144,7 +143,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.dropbox.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.dropbox.enabled* | Enable dropbox component | true | Boolean
-| *camel.component.dropbox.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ehcache/src/main/docs/ehcache-component.adoc b/components/camel-ehcache/src/main/docs/ehcache-component.adoc
index 25e40bc..7554c48 100644
--- a/components/camel-ehcache/src/main/docs/ehcache-component.adoc
+++ b/components/camel-ehcache/src/main/docs/ehcache-component.adoc
@@ -38,7 +38,7 @@ format, `?option=value&option=#beanRef&...`
 
 
 // component options: START
-The Ehcache component supports 8 options, which are listed below.
+The Ehcache component supports 7 options, which are listed below.
 
 
 
@@ -51,7 +51,6 @@ The Ehcache component supports 8 options, which are listed below.
 | *cacheConfiguration* (common) | The default cache configuration to be used to create caches. |  | CacheConfiguration
 | *cachesConfigurations* (common) | A map of caches configurations to be used to create caches. |  | Map
 | *cacheConfigurationUri* (common) | URI pointing to the Ehcache XML configuration file's location |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -120,7 +119,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 26 options, which are listed below.
+The component supports 25 options, which are listed below.
 
 
 
@@ -151,7 +150,6 @@ The component supports 26 options, which are listed below.
 | *camel.component.ehcache.customizer.cache-manager.enabled* | Enable or disable the cache-manager customizer. | true | Boolean
 | *camel.component.ehcache.customizer.cache-manager.override* | Configure if the cache manager eventually set on the component should be overridden by the customizer. | false | Boolean
 | *camel.component.ehcache.enabled* | Enable ehcache component | true | Boolean
-| *camel.component.ehcache.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.ehcache.configuration.config-uri* | *Deprecated* URI pointing to the Ehcache XML configuration file's location |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc b/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc
index 8519818..1d06337 100644
--- a/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc
+++ b/components/camel-elasticsearch-rest/src/main/docs/elasticsearch-rest-component.adoc
@@ -31,7 +31,7 @@ elasticsearch-rest://clusterName[?options]
 == Endpoint Options
 
 // component options: START
-The Elastichsearch Rest component supports 13 options, which are listed below.
+The Elastichsearch Rest component supports 12 options, which are listed below.
 
 
 
@@ -49,7 +49,6 @@ The Elastichsearch Rest component supports 13 options, which are listed below.
 | *enableSniffer* (advanced) | Enable automatically discover nodes from a running Elasticsearch cluster | false | Boolean
 | *snifferInterval* (advanced) | The interval between consecutive ordinary sniff executions in milliseconds. Will be honoured when sniffOnFailure is disabled or when there are no failures between consecutive sniff executions | 300000 | int
 | *sniffAfterFailureDelay* (advanced) | The delay of a sniff execution scheduled after a failure (in milliseconds) | 60000 | int
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -112,7 +111,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 14 options, which are listed below.
+The component supports 13 options, which are listed below.
 
 
 
@@ -128,7 +127,6 @@ The component supports 14 options, which are listed below.
 | *camel.component.elasticsearch-rest.host-addresses* | Comma separated list with ip:port formatted remote transport addresses to use. The ip and port options must be left blank for hostAddresses to be considered instead. |  | String
 | *camel.component.elasticsearch-rest.max-retry-timeout* | The time in ms before retry | 30000 | Integer
 | *camel.component.elasticsearch-rest.password* | Password for authenticate |  | String
-| *camel.component.elasticsearch-rest.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.elasticsearch-rest.sniff-after-failure-delay* | The delay of a sniff execution scheduled after a failure (in milliseconds) | 60000 | Integer
 | *camel.component.elasticsearch-rest.sniffer-interval* | The interval between consecutive ordinary sniff executions in milliseconds. Will be honoured when sniffOnFailure is disabled or when there are no failures between consecutive sniff executions | 300000 | Integer
 | *camel.component.elasticsearch-rest.socket-timeout* | The timeout in ms to wait before the socket will timeout. | 30000 | Integer
diff --git a/components/camel-elsql/src/main/docs/elsql-component.adoc b/components/camel-elsql/src/main/docs/elsql-component.adoc
index d4756ec..165500f 100644
--- a/components/camel-elsql/src/main/docs/elsql-component.adoc
+++ b/components/camel-elsql/src/main/docs/elsql-component.adoc
@@ -52,7 +52,7 @@ If a named parameter cannot be resolved, then an exception is thrown.
 == Options
 
 // component options: START
-The ElSQL component supports 6 options, which are listed below.
+The ElSQL component supports 5 options, which are listed below.
 
 
 
@@ -63,7 +63,6 @@ The ElSQL component supports 6 options, which are listed below.
 | *dataSource* (common) | Sets the DataSource to use to communicate with the database. |  | DataSource
 | *elSqlConfig* (advanced) | To use a specific configured ElSqlConfig. It may be better to use the databaseVendor option instead. |  | ElSqlConfig
 | *resourceUri* (common) | The resource file which contains the elsql SQL statements to use. You can specify multiple resources separated by comma. The resources are loaded on the classpath by default, you can prefix with file: to load from file system. Notice you can set this option on the component and then you do not have to configure this on the endpoint. |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -161,7 +160,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -173,7 +172,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.elsql.database-vendor* | To use a vendor specific com.opengamma.elsql.ElSqlConfig |  | ElSqlDatabaseVendor
 | *camel.component.elsql.el-sql-config* | To use a specific configured ElSqlConfig. It may be better to use the databaseVendor option instead. The option is a com.opengamma.elsql.ElSqlConfig type. |  | String
 | *camel.component.elsql.enabled* | Enable elsql component | true | Boolean
-| *camel.component.elsql.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.elsql.resource-uri* | The resource file which contains the elsql SQL statements to use. You can specify multiple resources separated by comma. The resources are loaded on the classpath by default, you can prefix with file: to load from file system. Notice you can set this option on the component and then you do not have to configure this on the endpoint. |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-etcd/src/main/docs/etcd-component.adoc b/components/camel-etcd/src/main/docs/etcd-component.adoc
index 33b2aa3..eaef04a 100644
--- a/components/camel-etcd/src/main/docs/etcd-component.adoc
+++ b/components/camel-etcd/src/main/docs/etcd-component.adoc
@@ -15,7 +15,7 @@ etcd:namespace/path[?options]
 == URI Options
 
 // component options: START
-The etcd component supports 8 options, which are listed below.
+The etcd component supports 7 options, which are listed below.
 
 
 
@@ -28,7 +28,6 @@ The etcd component supports 8 options, which are listed below.
 | *password* (common) | The password to use for basic authentication. |  | String
 | *configuration* (advanced) | Sets the common configuration shared among endpoints |  | EtcdConfiguration
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -108,7 +107,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 18 options, which are listed below.
+The component supports 17 options, which are listed below.
 
 
 
@@ -128,7 +127,6 @@ The component supports 18 options, which are listed below.
 | *camel.component.etcd.configuration.user-name* | The user name to use for basic authentication. |  | String
 | *camel.component.etcd.enabled* | Enable etcd component | true | Boolean
 | *camel.component.etcd.password* | The password to use for basic authentication. |  | String
-| *camel.component.etcd.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.etcd.ssl-context-parameters* | To configure security using SSLContextParameters. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
 | *camel.component.etcd.uris* | To set the URIs the client connects. |  | String
 | *camel.component.etcd.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
diff --git a/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc b/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
index d1b4470..47b2d1c 100644
--- a/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
+++ b/components/camel-eventadmin/src/main/docs/eventadmin-component.adoc
@@ -33,7 +33,7 @@ where `topic` is the name of the topic to listen too.
 == URI options
 
 // component options: START
-The OSGi EventAdmin component supports 3 options, which are listed below.
+The OSGi EventAdmin component supports 2 options, which are listed below.
 
 
 
@@ -41,7 +41,6 @@ The OSGi EventAdmin component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *bundleContext* (common) | The OSGi BundleContext is automatic injected by Camel |  | BundleContext
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-exec/src/main/docs/exec-component.adoc b/components/camel-exec/src/main/docs/exec-component.adoc
index d67611c..a9e292f 100644
--- a/components/camel-exec/src/main/docs/exec-component.adoc
+++ b/components/camel-exec/src/main/docs/exec-component.adoc
@@ -34,14 +34,13 @@ executable must in the system path.
 == URI options
 
 // component options: START
-The Exec component supports 2 options, which are listed below.
+The Exec component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -99,7 +98,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -108,7 +107,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.exec.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.exec.enabled* | Enable exec component | true | Boolean
-| *camel.component.exec.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-facebook/src/main/docs/facebook-component.adoc b/components/camel-facebook/src/main/docs/facebook-component.adoc
index bc69d93..b1f9ef9 100644
--- a/components/camel-facebook/src/main/docs/facebook-component.adoc
+++ b/components/camel-facebook/src/main/docs/facebook-component.adoc
@@ -53,7 +53,7 @@ to application APIs.
 
 
 // component options: START
-The Facebook component supports 3 options, which are listed below.
+The Facebook component supports 2 options, which are listed below.
 
 
 
@@ -61,7 +61,6 @@ The Facebook component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use the shared configuration |  | FacebookConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -217,7 +216,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 30 options, which are listed below.
+The component supports 29 options, which are listed below.
 
 
 
@@ -253,7 +252,6 @@ The component supports 30 options, which are listed below.
 | *camel.component.facebook.configuration.use-s-s-l* | Use SSL | true | Boolean
 | *camel.component.facebook.configuration.video-base-u-r-l* | Video API base URL | https://graph-video.facebook.com/ | String
 | *camel.component.facebook.enabled* | Enable facebook component | true | Boolean
-| *camel.component.facebook.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc b/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc
index c7207b6..f6fd05a 100644
--- a/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc
+++ b/components/camel-fhir/camel-fhir-component/src/main/docs/fhir-component.adoc
@@ -47,7 +47,7 @@ Endpoint prefix can be one of:
 
 
 // component options: START
-The FHIR component supports 3 options, which are listed below.
+The FHIR component supports 2 options, which are listed below.
 
 
 
@@ -55,7 +55,6 @@ The FHIR component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | FhirConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -135,7 +134,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 28 options, which are listed below.
+The component supports 27 options, which are listed below.
 
 
 
@@ -169,6 +168,5 @@ The component supports 28 options, which are listed below.
 | *camel.component.fhir.configuration.username* | What sub operation to use for the selected operation |  | String
 | *camel.component.fhir.configuration.validation-mode* | What sub operation to use for the selected operation | ONCE | String
 | *camel.component.fhir.enabled* | Whether to enable auto configuration of the fhir component. This is enabled by default. |  | Boolean
-| *camel.component.fhir.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-file-watch/src/main/docs/file-watch-component.adoc b/components/camel-file-watch/src/main/docs/file-watch-component.adoc
index c35f918..c06f42f 100644
--- a/components/camel-file-watch/src/main/docs/file-watch-component.adoc
+++ b/components/camel-file-watch/src/main/docs/file-watch-component.adoc
@@ -8,7 +8,7 @@ This component can be used to watch file modification events in folder. It is ba
 == URI Options
 
 // component options: START
-The file-watch component supports 7 options, which are listed below.
+The file-watch component supports 6 options, which are listed below.
 
 
 
@@ -20,7 +20,6 @@ The file-watch component supports 7 options, which are listed below.
 | *pollThreads* (consumer) | The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log. | 1 | int
 | *fileHasher* (consumer) | Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple modifications per second per file, use #lastModifiedTimeFileHasher. You can also provide custom implementation in registry. | #murmur3FFileHasher | FileHasher
 | *useFileHashing* (consumer) | Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target platform. | true | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -84,7 +83,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 8 options, which are listed below.
+The component supports 7 options, which are listed below.
 
 
 
@@ -97,7 +96,6 @@ The component supports 8 options, which are listed below.
 | *camel.component.file-watch.file-hasher* | Reference to io.methvin.watcher.hashing.FileHasher. This prevents emitting duplicate events on some platforms. For working with large files and if you dont need detect multiple modifications per second per file, use #lastModifiedTimeFileHasher. You can also provide custom implementation in registry. The option is a io.methvin.watcher.hashing.FileHasher type. |  | String
 | *camel.component.file-watch.poll-threads* | The number of threads polling WatchService. Increase this value, if you see OVERFLOW messages in log. | 1 | Integer
 | *camel.component.file-watch.queue-size* | Maximum size of queue between WatchService and consumer. Unbounded by default. | 2147483647 | Integer
-| *camel.component.file-watch.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.file-watch.use-file-hashing* | Enables or disables file hashing to detect duplicate events. If you disable this, you can get some events multiple times on some platforms and JDKs. Check java.nio.file.WatchService limitations for your target platform. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-file/src/main/docs/file-component.adoc b/components/camel-file/src/main/docs/file-component.adoc
index 9eb6da0..de67705 100644
--- a/components/camel-file/src/main/docs/file-component.adoc
+++ b/components/camel-file/src/main/docs/file-component.adoc
@@ -53,14 +53,13 @@ options and `doneFileName` option that you can use. See also the section
 == URI Options
 
 // component options: START
-The File component supports 2 options, which are listed below.
+The File component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -204,7 +203,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -213,7 +212,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.file.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.file.enabled* | Whether to enable auto configuration of the file component. This is enabled by default. |  | Boolean
-| *camel.component.file.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-flatpack/src/main/docs/flatpack-component.adoc b/components/camel-flatpack/src/main/docs/flatpack-component.adoc
index 2571184..418a642 100644
--- a/components/camel-flatpack/src/main/docs/flatpack-component.adoc
+++ b/components/camel-flatpack/src/main/docs/flatpack-component.adoc
@@ -42,14 +42,13 @@ You can append query options to the URI in the following format,
 == URI Options
 
 // component options: START
-The Flatpack component supports 2 options, which are listed below.
+The Flatpack component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -125,7 +124,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -134,7 +133,6 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.flatpack.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.flatpack.enabled* | Enable flatpack component | true | Boolean
-| *camel.component.flatpack.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.dataformat.flatpack.allow-short-lines* | Allows for lines to be shorter than expected and ignores the extra characters | false | Boolean
 | *camel.dataformat.flatpack.content-type-header* | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc. | false | Boolean
 | *camel.dataformat.flatpack.definition* | The flatpack pzmap configuration file. Can be omitted in simpler situations, but its preferred to use the pzmap. |  | String
diff --git a/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc b/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
index a3e33e9..e4f05c0 100644
--- a/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
+++ b/components/camel-flatpack/src/main/docs/flatpack-dataformat.adoc
@@ -56,7 +56,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 13 options, which are listed below.
+The component supports 12 options, which are listed below.
 
 
 
@@ -65,7 +65,6 @@ The component supports 13 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.flatpack.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.flatpack.enabled* | Enable flatpack component | true | Boolean
-| *camel.component.flatpack.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.dataformat.flatpack.allow-short-lines* | Allows for lines to be shorter than expected and ignores the extra characters | false | Boolean
 | *camel.dataformat.flatpack.content-type-header* | Whether the data format should set the Content-Type header with the type from the data format if the data format is capable of doing so. For example application/xml for data formats marshalling to XML, or application/json for data formats marshalling to JSon etc. | false | Boolean
 | *camel.dataformat.flatpack.definition* | The flatpack pzmap configuration file. Can be omitted in simpler situations, but its preferred to use the pzmap. |  | String
diff --git a/components/camel-flink/src/main/docs/flink-component.adoc b/components/camel-flink/src/main/docs/flink-component.adoc
index eabaa9a..78ab321 100644
--- a/components/camel-flink/src/main/docs/flink-component.adoc
+++ b/components/camel-flink/src/main/docs/flink-component.adoc
@@ -90,7 +90,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -103,7 +103,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.flink.data-stream* | DataStream to compute against. The option is a org.apache.flink.streaming.api.datastream.DataStream type. |  | String
 | *camel.component.flink.data-stream-callback* | Function performing action against a DataStream. The option is a org.apache.camel.component.flink.DataStreamCallback type. |  | String
 | *camel.component.flink.enabled* | Enable flink component | true | Boolean
-| *camel.component.flink.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
@@ -116,7 +115,7 @@ The component supports 7 options, which are listed below.
 
 
 // component options: START
-The Apache Flink component supports 6 options, which are listed below.
+The Apache Flink component supports 5 options, which are listed below.
 
 
 
@@ -127,7 +126,6 @@ The Apache Flink component supports 6 options, which are listed below.
 | *dataStream* (producer) | DataStream to compute against. |  | DataStream
 | *dataSetCallback* (producer) | Function performing action against a DataSet. |  | DataSetCallback
 | *dataStreamCallback* (producer) | Function performing action against a DataStream. |  | DataStreamCallback
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-fop/src/main/docs/fop-component.adoc b/components/camel-fop/src/main/docs/fop-component.adoc
index 4884543..a564d36 100644
--- a/components/camel-fop/src/main/docs/fop-component.adoc
+++ b/components/camel-fop/src/main/docs/fop-component.adoc
@@ -63,14 +63,13 @@ http://svn.apache.org/repos/asf/xmlgraphics/commons/trunk/src/java/org/apache/xm
 == Endpoint Options
 
 // component options: START
-The FOP component supports 2 options, which are listed below.
+The FOP component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -125,7 +124,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -134,7 +133,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.fop.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.fop.enabled* | Enable fop component | true | Boolean
-| *camel.component.fop.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-freemarker/src/main/docs/freemarker-component.adoc b/components/camel-freemarker/src/main/docs/freemarker-component.adoc
index ff0068b..d994343 100644
--- a/components/camel-freemarker/src/main/docs/freemarker-component.adoc
+++ b/components/camel-freemarker/src/main/docs/freemarker-component.adoc
@@ -40,7 +40,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Freemarker component supports 3 options, which are listed below.
+The Freemarker component supports 2 options, which are listed below.
 
 
 
@@ -48,7 +48,6 @@ The Freemarker component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use an existing freemarker.template.Configuration instance as the configuration. |  | Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -107,7 +106,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -117,7 +116,6 @@ The component supports 4 options, which are listed below.
 | *camel.component.freemarker.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.freemarker.configuration* | To use an existing freemarker.template.Configuration instance as the configuration. The option is a freemarker.template.Configuration type. |  | String
 | *camel.component.freemarker.enabled* | Enable freemarker component | true | Boolean
-| *camel.component.freemarker.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ftp/src/main/docs/ftp-component.adoc b/components/camel-ftp/src/main/docs/ftp-component.adoc
index 7dd8c56..b528e1b 100644
--- a/components/camel-ftp/src/main/docs/ftp-component.adoc
+++ b/components/camel-ftp/src/main/docs/ftp-component.adoc
@@ -67,14 +67,13 @@ The options below are exclusive for the FTP component.
 
 
 // component options: START
-The FTP component supports 2 options, which are listed below.
+The FTP component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -236,7 +235,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -245,7 +244,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.ftp.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.ftp.enabled* | Enable \ftp component | true | Boolean
-| *camel.component.ftp.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ftp/src/main/docs/ftps-component.adoc b/components/camel-ftp/src/main/docs/ftps-component.adoc
index 456504a..43813fb 100644
--- a/components/camel-ftp/src/main/docs/ftps-component.adoc
+++ b/components/camel-ftp/src/main/docs/ftps-component.adoc
@@ -26,7 +26,7 @@ For more information you can look at xref:ftp-component.adoc[FTP component]
 The options below are exclusive for the FTPS component.
 
 // component options: START
-The FTPS component supports 3 options, which are listed below.
+The FTPS component supports 2 options, which are listed below.
 
 
 
@@ -34,7 +34,6 @@ The FTPS component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -203,7 +202,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -212,7 +211,6 @@ The component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.ftps.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.ftps.enabled* | Enable \ftps component | true | Boolean
-| *camel.component.ftps.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.ftps.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-ftp/src/main/docs/sftp-component.adoc b/components/camel-ftp/src/main/docs/sftp-component.adoc
index 4c3efd7..048b5fd 100644
--- a/components/camel-ftp/src/main/docs/sftp-component.adoc
+++ b/components/camel-ftp/src/main/docs/sftp-component.adoc
@@ -26,14 +26,13 @@ For more information you can look at xref:ftp-component.adoc[FTP component]
 The options below are exclusive for the FTPS component.
 
 // component options: START
-The SFTP component supports 2 options, which are listed below.
+The SFTP component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-ganglia/src/main/docs/ganglia-component.adoc b/components/camel-ganglia/src/main/docs/ganglia-component.adoc
index 361e085..ec5790b 100644
--- a/components/camel-ganglia/src/main/docs/ganglia-component.adoc
+++ b/components/camel-ganglia/src/main/docs/ganglia-component.adoc
@@ -51,7 +51,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Ganglia component supports 3 options, which are listed below.
+The Ganglia component supports 2 options, which are listed below.
 
 
 
@@ -59,7 +59,6 @@ The Ganglia component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use the shared configuration |  | GangliaConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -128,7 +127,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 17 options, which are listed below.
+The component supports 16 options, which are listed below.
 
 
 
@@ -151,7 +150,6 @@ The component supports 17 options, which are listed below.
 | *camel.component.ganglia.configuration.units* | Any unit of measurement that qualifies the metric, e.g. widgets, litres, bytes. Do not include a prefix such as k (kilo) or m (milli), other tools may scale the units later. The value should be unscaled. |  | String
 | *camel.component.ganglia.configuration.wire-format31x* | Use the wire format of Ganglia 3.1.0 and later versions. Set this to false to use Ganglia 3.0.x or earlier. | true | Boolean
 | *camel.component.ganglia.enabled* | Enable ganglia component | true | Boolean
-| *camel.component.ganglia.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-geocoder/src/main/docs/geocoder-component.adoc b/components/camel-geocoder/src/main/docs/geocoder-component.adoc
index 579ab40..44a70b1 100644
--- a/components/camel-geocoder/src/main/docs/geocoder-component.adoc
+++ b/components/camel-geocoder/src/main/docs/geocoder-component.adoc
@@ -33,14 +33,13 @@ geocoder:latlng:latitude,longitude[?options]
 
 
 // component options: START
-The Geocoder component supports 2 options, which are listed below.
+The Geocoder component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -107,7 +106,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.geocoder.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.geocoder.enabled* | Enable geocoder component | true | Boolean
-| *camel.component.geocoder.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-git/src/main/docs/git-component.adoc b/components/camel-git/src/main/docs/git-component.adoc
index 33b436b..34be79b 100644
--- a/components/camel-git/src/main/docs/git-component.adoc
+++ b/components/camel-git/src/main/docs/git-component.adoc
@@ -30,14 +30,13 @@ repository.
 
 
 // component options: START
-The Git component supports 2 options, which are listed below.
+The Git component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -112,7 +111,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.git.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.git.enabled* | Enable git component | true | Boolean
-| *camel.component.git.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-github/src/main/docs/github-component.adoc b/components/camel-github/src/main/docs/github-component.adoc
index 0701102..ae51e3c 100644
--- a/components/camel-github/src/main/docs/github-component.adoc
+++ b/components/camel-github/src/main/docs/github-component.adoc
@@ -46,14 +46,13 @@ Note that these can be configured directly through the endpoint.
 
 
 // component options: START
-The GitHub component supports 2 options, which are listed below.
+The GitHub component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -118,7 +117,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -127,7 +126,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.github.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.github.enabled* | Enable github component | true | Boolean
-| *camel.component.github.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-bigquery/src/main/docs/google-bigquery-component.adoc b/components/camel-google-bigquery/src/main/docs/google-bigquery-component.adoc
index bb753d8..60a4e27 100644
--- a/components/camel-google-bigquery/src/main/docs/google-bigquery-component.adoc
+++ b/components/camel-google-bigquery/src/main/docs/google-bigquery-component.adoc
@@ -57,7 +57,7 @@ Service Account Email and Service Account Key can be found in the GCP JSON crede
 == Options
 
 // component options: START
-The Google BigQuery component supports 5 options, which are listed below.
+The Google BigQuery component supports 4 options, which are listed below.
 
 
 
@@ -67,7 +67,6 @@ The Google BigQuery component supports 5 options, which are listed below.
 | *projectId* (producer) | Google Cloud Project Id |  | String
 | *datasetId* (producer) | BigQuery Dataset Id |  | String
 | *connectionFactory* (producer) | ConnectionFactory to obtain connection to Bigquery Service. If non provided the default one will be used |  | GoogleBigQuery ConnectionFactory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -122,7 +121,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 9 options, which are listed below.
+The component supports 8 options, which are listed below.
 
 
 
@@ -137,7 +136,6 @@ The component supports 9 options, which are listed below.
 | *camel.component.google-bigquery.dataset-id* | BigQuery Dataset Id |  | String
 | *camel.component.google-bigquery.enabled* | Whether to enable auto configuration of the google-bigquery component. This is enabled by default. |  | Boolean
 | *camel.component.google-bigquery.project-id* | Google Cloud Project Id |  | String
-| *camel.component.google-bigquery.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-bigquery/src/main/docs/google-bigquery-sql-component.adoc b/components/camel-google-bigquery/src/main/docs/google-bigquery-sql-component.adoc
index a8c85da..fc2b28f 100644
--- a/components/camel-google-bigquery/src/main/docs/google-bigquery-sql-component.adoc
+++ b/components/camel-google-bigquery/src/main/docs/google-bigquery-sql-component.adoc
@@ -74,7 +74,7 @@ You can externalize your SQL queries to files in the classpath or file system as
 == Options
 
 // component options: START
-The Google BigQuery Standard SQL component supports 4 options, which are listed below.
+The Google BigQuery Standard SQL component supports 3 options, which are listed below.
 
 
 
@@ -83,7 +83,6 @@ The Google BigQuery Standard SQL component supports 4 options, which are listed
 | Name | Description | Default | Type
 | *projectId* (producer) | Google Cloud Project Id |  | String
 | *connectionFactory* (producer) | ConnectionFactory to obtain connection to Bigquery Service. If non provided the default one will be used |  | GoogleBigQuery ConnectionFactory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -136,7 +135,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 8 options, which are listed below.
+The component supports 7 options, which are listed below.
 
 
 
@@ -150,7 +149,6 @@ The component supports 8 options, which are listed below.
 | *camel.component.google-bigquery-sql.connection-factory.service-u-r-l* |  |  | String
 | *camel.component.google-bigquery-sql.enabled* | Whether to enable auto configuration of the google-bigquery-sql component. This is enabled by default. |  | Boolean
 | *camel.component.google-bigquery-sql.project-id* | Google Cloud Project Id |  | String
-| *camel.component.google-bigquery-sql.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc b/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc
index 1d19ba6..41baaac 100644
--- a/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc
+++ b/components/camel-google-calendar/src/main/docs/google-calendar-component.adoc
@@ -37,7 +37,7 @@ for this component:
 
 
 // component options: START
-The Google Calendar component supports 4 options, which are listed below.
+The Google Calendar component supports 3 options, which are listed below.
 
 
 
@@ -46,7 +46,6 @@ The Google Calendar component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | GoogleCalendar Configuration
 | *clientFactory* (advanced) | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleCalendarClientFactory |  | GoogleCalendarClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -118,7 +117,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 15 options, which are listed below.
+The component supports 14 options, which are listed below.
 
 
 
@@ -139,7 +138,6 @@ The component supports 15 options, which are listed below.
 | *camel.component.google-calendar.configuration.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. You can separate multiple scopes by comma. See \https://developers.google.com/google-apps/calendar/auth for more info. | https://www.googleapis.com/auth/calendar | String
 | *camel.component.google-calendar.configuration.user* | The email address of the user the application is trying to impersonate in the service account flow |  | String
 | *camel.component.google-calendar.enabled* | Enable google-calendar component | true | Boolean
-| *camel.component.google-calendar.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc b/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc
index 92464a6..68d5914 100644
--- a/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc
+++ b/components/camel-google-calendar/src/main/docs/google-calendar-stream-component.adoc
@@ -44,7 +44,7 @@ The Google Calendar Component uses the following URI format:
 
 
 // component options: START
-The Google Calendar Stream component supports 4 options, which are listed below.
+The Google Calendar Stream component supports 3 options, which are listed below.
 
 
 
@@ -53,7 +53,6 @@ The Google Calendar Stream component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (advanced) | The configuration |  | GoogleCalendarStream Configuration
 | *clientFactory* (advanced) | The client Factory |  | GoogleCalendarClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -135,7 +134,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 16 options, which are listed below.
+The component supports 15 options, which are listed below.
 
 
 
@@ -157,7 +156,6 @@ The component supports 16 options, which are listed below.
 | *camel.component.google-calendar-stream.configuration.refresh-token* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. |  | String
 | *camel.component.google-calendar-stream.configuration.scopes* | Specifies the level of permissions you want a calendar application to have to a user account. See \https://developers.google.com/calendar/auth for more info. |  | List
 | *camel.component.google-calendar-stream.enabled* | Whether to enable auto configuration of the google-calendar-stream component. This is enabled by default. |  | Boolean
-| *camel.component.google-calendar-stream.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-drive/src/main/docs/google-drive-component.adoc b/components/camel-google-drive/src/main/docs/google-drive-component.adoc
index 0280a39..d87292e 100644
--- a/components/camel-google-drive/src/main/docs/google-drive-component.adoc
+++ b/components/camel-google-drive/src/main/docs/google-drive-component.adoc
@@ -64,7 +64,7 @@ Endpoint prefix can be one of:
 
 
 // component options: START
-The Google Drive component supports 4 options, which are listed below.
+The Google Drive component supports 3 options, which are listed below.
 
 
 
@@ -73,7 +73,6 @@ The Google Drive component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | GoogleDrive Configuration
 | *clientFactory* (advanced) | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleDriveClientFactory |  | GoogleDriveClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -143,7 +142,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 12 options, which are listed below.
+The component supports 11 options, which are listed below.
 
 
 
@@ -161,7 +160,6 @@ The component supports 12 options, which are listed below.
 | *camel.component.google-drive.configuration.refresh-token* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. |  | String
 | *camel.component.google-drive.configuration.scopes* | Specifies the level of permissions you want a drive application to have to a user account. See \https://developers.google.com/drive/web/scopes for more info. |  | List
 | *camel.component.google-drive.enabled* | Enable google-drive component | true | Boolean
-| *camel.component.google-drive.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-mail/src/main/docs/google-mail-component.adoc b/components/camel-google-mail/src/main/docs/google-mail-component.adoc
index c7ff43f..db5234a 100644
--- a/components/camel-google-mail/src/main/docs/google-mail-component.adoc
+++ b/components/camel-google-mail/src/main/docs/google-mail-component.adoc
@@ -56,7 +56,7 @@ Endpoint prefix can be one of:
 
 
 // component options: START
-The Google Mail component supports 4 options, which are listed below.
+The Google Mail component supports 3 options, which are listed below.
 
 
 
@@ -65,7 +65,6 @@ The Google Mail component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | GoogleMailConfiguration
 | *clientFactory* (advanced) | To use the GoogleCalendarClientFactory as factory for creating the client. Will by default use BatchGoogleMailClientFactory |  | GoogleMailClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -132,7 +131,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 11 options, which are listed below.
+The component supports 10 options, which are listed below.
 
 
 
@@ -149,7 +148,6 @@ The component supports 11 options, which are listed below.
 | *camel.component.google-mail.configuration.method-name* | What sub operation to use for the selected operation |  | String
 | *camel.component.google-mail.configuration.refresh-token* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. |  | String
 | *camel.component.google-mail.enabled* | Enable google-mail component | true | Boolean
-| *camel.component.google-mail.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-mail/src/main/docs/google-mail-stream-component.adoc b/components/camel-google-mail/src/main/docs/google-mail-stream-component.adoc
index dfde7b3..b40b8fd 100644
--- a/components/camel-google-mail/src/main/docs/google-mail-stream-component.adoc
+++ b/components/camel-google-mail/src/main/docs/google-mail-stream-component.adoc
@@ -42,7 +42,7 @@ The GoogleMail Component uses the following URI format:
 
 
 // component options: START
-The Google Mail Stream component supports 4 options, which are listed below.
+The Google Mail Stream component supports 3 options, which are listed below.
 
 
 
@@ -51,7 +51,6 @@ The Google Mail Stream component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (advanced) | The configuration |  | GoogleMailStream Configuration
 | *clientFactory* (advanced) | The client Factory |  | GoogleMailClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -131,7 +130,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 14 options, which are listed below.
+The component supports 13 options, which are listed below.
 
 
 
@@ -151,7 +150,6 @@ The component supports 14 options, which are listed below.
 | *camel.component.google-mail-stream.configuration.query* | The query to execute on gmail box | is:unread | String
 | *camel.component.google-mail-stream.configuration.refresh-token* | OAuth 2 refresh token. Using this, the Google Calendar component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. |  | String
 | *camel.component.google-mail-stream.enabled* | Whether to enable auto configuration of the google-mail-stream component. This is enabled by default. |  | Boolean
-| *camel.component.google-mail-stream.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-pubsub/src/main/docs/google-pubsub-component.adoc b/components/camel-google-pubsub/src/main/docs/google-pubsub-component.adoc
index 51be39e..040441e 100644
--- a/components/camel-google-pubsub/src/main/docs/google-pubsub-component.adoc
+++ b/components/camel-google-pubsub/src/main/docs/google-pubsub-component.adoc
@@ -35,7 +35,7 @@ Destination Name can be either a topic or a subscription name.
 == Options
 
 // component options: START
-The Google Pubsub component supports 3 options, which are listed below.
+The Google Pubsub component supports 2 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The Google Pubsub component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *connectionFactory* (common) | Sets the connection factory to use: provides the ability to explicitly manage connection credentials: - the path to the key file - the Service Account Key / Email pair |  | GooglePubsubConnection Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -116,7 +115,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.google-pubsub.connection-factory.service-account-key* |  |  | String
 | *camel.component.google-pubsub.connection-factory.service-u-r-l* |  |  | String
 | *camel.component.google-pubsub.enabled* | Enable google-pubsub component | true | Boolean
-| *camel.component.google-pubsub.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-sheets/src/main/docs/google-sheets-component.adoc b/components/camel-google-sheets/src/main/docs/google-sheets-component.adoc
index 932711e..7cf6145 100644
--- a/components/camel-google-sheets/src/main/docs/google-sheets-component.adoc
+++ b/components/camel-google-sheets/src/main/docs/google-sheets-component.adoc
@@ -52,7 +52,7 @@ Endpoint prefix can be one of:
 
 
 // component options: START
-The Google Sheets component supports 4 options, which are listed below.
+The Google Sheets component supports 3 options, which are listed below.
 
 
 
@@ -61,7 +61,6 @@ The Google Sheets component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (common) | To use the shared configuration |  | GoogleSheets Configuration
 | *clientFactory* (advanced) | To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory |  | GoogleSheetsClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -128,7 +127,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 11 options, which are listed below.
+The component supports 10 options, which are listed below.
 
 
 
@@ -145,7 +144,6 @@ The component supports 11 options, which are listed below.
 | *camel.component.google-sheets.configuration.method-name* | What sub operation to use for the selected operation |  | String
 | *camel.component.google-sheets.configuration.refresh-token* | OAuth 2 refresh token. Using this, the Google Sheets component can obtain a new accessToken whenever the current one expires - a necessity if the application is long-lived. |  | String
 | *camel.component.google-sheets.enabled* | Whether to enable auto configuration of the google-sheets component. This is enabled by default. |  | Boolean
-| *camel.component.google-sheets.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc b/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
index 2e0857c..9693dcc 100644
--- a/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
+++ b/components/camel-google-sheets/src/main/docs/google-sheets-stream-component.adoc
@@ -44,7 +44,7 @@ The Google Sheets Component uses the following URI format:
 
 
 // component options: START
-The Google Sheets Stream component supports 4 options, which are listed below.
+The Google Sheets Stream component supports 3 options, which are listed below.
 
 
 
@@ -53,7 +53,6 @@ The Google Sheets Stream component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (consumer) | To use the shared configuration |  | GoogleSheetsStream Configuration
 | *clientFactory* (advanced) | To use the GoogleSheetsClientFactory as factory for creating the client. Will by default use BatchGoogleSheetsClientFactory |  | GoogleSheetsClient Factory
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -137,7 +136,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 18 options, which are listed below.
+The component supports 17 options, which are listed below.
 
 
 
@@ -161,7 +160,6 @@ The component supports 18 options, which are listed below.
 | *camel.component.google-sheets-stream.configuration.spreadsheet-id* | Specifies the spreadsheet identifier that is used to identify the target to obtain. |  | String
 | *camel.component.google-sheets-stream.configuration.value-render-option* | Determines how values should be rendered in the output. | FORMATTED_VALUE | String
 | *camel.component.google-sheets-stream.enabled* | Whether to enable auto configuration of the google-sheets-stream component. This is enabled by default. |  | Boolean
-| *camel.component.google-sheets-stream.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-gora/src/main/docs/gora-component.adoc b/components/camel-gora/src/main/docs/gora-component.adoc
index 54570cc..c0cff6e 100644
--- a/components/camel-gora/src/main/docs/gora-component.adoc
+++ b/components/camel-gora/src/main/docs/gora-component.adoc
@@ -76,14 +76,13 @@ http://gora.apache.org/current/gora-conf.html[gora-conf] page.
 
 
 // component options: START
-The Gora component supports 2 options, which are listed below.
+The Gora component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -158,7 +157,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -167,7 +166,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.gora.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.gora.enabled* | Enable gora component | true | Boolean
-| *camel.component.gora.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-grape/src/main/docs/grape-component.adoc b/components/camel-grape/src/main/docs/grape-component.adoc
index e7a267f..1072a92 100644
--- a/components/camel-grape/src/main/docs/grape-component.adoc
+++ b/components/camel-grape/src/main/docs/grape-component.adoc
@@ -13,7 +13,7 @@ without the restart of the router.
 == Grape options
 
 // component options: START
-The Grape component supports 3 options, which are listed below.
+The Grape component supports 2 options, which are listed below.
 
 
 
@@ -21,7 +21,6 @@ The Grape component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *patchesRepository* (advanced) | Implementation of org.apache.camel.component.grape.PatchesRepository, by default: FilePatchesRepository |  | PatchesRepository
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-grpc/src/main/docs/grpc-component.adoc b/components/camel-grpc/src/main/docs/grpc-component.adoc
index c82d4d4..9e64274 100644
--- a/components/camel-grpc/src/main/docs/grpc-component.adoc
+++ b/components/camel-grpc/src/main/docs/grpc-component.adoc
@@ -40,14 +40,13 @@ grpc://service[?options]
 == Endpoint Options
 
 // component options: START
-The gRPC component supports 2 options, which are listed below.
+The gRPC component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -124,7 +123,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -133,7 +132,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.grpc.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.grpc.enabled* | Enable grpc component | true | Boolean
-| *camel.component.grpc.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-guava-eventbus/src/main/docs/guava-eventbus-component.adoc b/components/camel-guava-eventbus/src/main/docs/guava-eventbus-component.adoc
index cdce283..36ee670 100644
--- a/components/camel-guava-eventbus/src/main/docs/guava-eventbus-component.adoc
+++ b/components/camel-guava-eventbus/src/main/docs/guava-eventbus-component.adoc
@@ -46,7 +46,7 @@ registry.
 
 
 // component options: START
-The Guava EventBus component supports 4 options, which are listed below.
+The Guava EventBus component supports 3 options, which are listed below.
 
 
 
@@ -55,7 +55,6 @@ The Guava EventBus component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *eventBus* (common) | To use the given Guava EventBus instance |  | EventBus
 | *listenerInterface* (common) | The interface with method(s) marked with the Subscribe annotation. Dynamic proxy will be created over the interface so it could be registered as the EventBus listener. Particularly useful when creating multi-event listeners and for handling DeadEvent properly. This option cannot be used together with eventClass option. |  | Class
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -115,7 +114,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 5 options, which are listed below.
+The component supports 4 options, which are listed below.
 
 
 
@@ -126,7 +125,6 @@ The component supports 5 options, which are listed below.
 | *camel.component.guava-eventbus.enabled* | Enable guava-eventbus component | true | Boolean
 | *camel.component.guava-eventbus.event-bus* | To use the given Guava EventBus instance. The option is a com.google.common.eventbus.EventBus type. |  | String
 | *camel.component.guava-eventbus.listener-interface* | The interface with method(s) marked with the Subscribe annotation. Dynamic proxy will be created over the interface so it could be registered as the EventBus listener. Particularly useful when creating multi-event listeners and for handling DeadEvent properly. This option cannot be used together with eventClass option. |  | Class
-| *camel.component.guava-eventbus.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
index ad300aa..d9908ba 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-atomicvalue-component.adoc
@@ -12,7 +12,7 @@ An atomic number is an object that simply provides a grid wide number (long).
 == Options
 
 // component options: START
-The Hazelcast Atomic Number component supports 4 options, which are listed below.
+The Hazelcast Atomic Number component supports 3 options, which are listed below.
 
 
 
@@ -21,7 +21,6 @@ The Hazelcast Atomic Number component supports 4 options, which are listed below
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -81,7 +80,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -94,7 +93,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-atomicvalue.enabled* | Enable hazelcast-atomicvalue component | true | Boolean
 | *camel.component.hazelcast-atomicvalue.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-atomicvalue.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-atomicvalue.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc
index 70f8341..2e36e3c 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-instance-component.adoc
@@ -12,7 +12,7 @@ Hazelcast makes sense in one single "server node", but it's extremly powerful in
 == Options
 
 // component options: START
-The Hazelcast Instance component supports 4 options, which are listed below.
+The Hazelcast Instance component supports 3 options, which are listed below.
 
 
 
@@ -21,7 +21,6 @@ The Hazelcast Instance component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -85,7 +84,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 27 options, which are listed below.
+The component supports 26 options, which are listed below.
 
 
 
@@ -98,7 +97,6 @@ The component supports 27 options, which are listed below.
 | *camel.component.hazelcast-instance.enabled* | Enable hazelcast-instance component | true | Boolean
 | *camel.component.hazelcast-instance.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-instance.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-instance.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.hazelcast-list.customizer.hazelcast-instance.enabled* | Enable or disable the cache-manager customizer. | true | Boolean
 | *camel.component.hazelcast-list.customizer.hazelcast-instance.override* | Configure if the cache manager eventually set on the component should be overridden by the customizer. | false | Boolean
 | *camel.component.hazelcast-map.customizer.hazelcast-instance.enabled* | Enable or disable the cache-manager customizer. | true | Boolean
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc
index 01ff469..13289a7 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-list-component.adoc
@@ -8,7 +8,7 @@ The http://www.hazelcast.com/[Hazelcast] List component is one of Camel Hazelcas
 == Options
 
 // component options: START
-The Hazelcast List component supports 4 options, which are listed below.
+The Hazelcast List component supports 3 options, which are listed below.
 
 
 
@@ -17,7 +17,6 @@ The Hazelcast List component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -82,7 +81,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -95,7 +94,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-list.enabled* | Enable hazelcast-list component | true | Boolean
 | *camel.component.hazelcast-list.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-list.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-list.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc
index 0560f78..81f7e96 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-map-component.adoc
@@ -9,7 +9,7 @@ The http://www.hazelcast.com/[Hazelcast] Map component is one of Camel Hazelcast
 == Options
 
 // component options: START
-The Hazelcast Map component supports 4 options, which are listed below.
+The Hazelcast Map component supports 3 options, which are listed below.
 
 
 
@@ -18,7 +18,6 @@ The Hazelcast Map component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -83,7 +82,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -96,7 +95,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-map.enabled* | Enable hazelcast-map component | true | Boolean
 | *camel.component.hazelcast-map.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-map.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-map.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc
index 6daabd6..1971f0f 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-multimap-component.adoc
@@ -9,7 +9,7 @@ The http://www.hazelcast.com/[Hazelcast] Multimap component is one of Camel Haze
 == Options
 
 // component options: START
-The Hazelcast Multimap component supports 4 options, which are listed below.
+The Hazelcast Multimap component supports 3 options, which are listed below.
 
 
 
@@ -18,7 +18,6 @@ The Hazelcast Multimap component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -84,7 +83,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -97,7 +96,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-multimap.enabled* | Enable hazelcast-multimap component | true | Boolean
 | *camel.component.hazelcast-multimap.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-multimap.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-multimap.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc
index f466a8d..fb22502 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-queue-component.adoc
@@ -9,7 +9,7 @@ The http://www.hazelcast.com/[Hazelcast] Queue component is one of Camel Hazelca
 == Options
 
 // component options: START
-The Hazelcast Queue component supports 4 options, which are listed below.
+The Hazelcast Queue component supports 3 options, which are listed below.
 
 
 
@@ -18,7 +18,6 @@ The Hazelcast Queue component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -83,7 +82,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -96,7 +95,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-queue.enabled* | Enable hazelcast-queue component | true | Boolean
 | *camel.component.hazelcast-queue.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-queue.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-queue.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc
index 1d026c9..3b3344b 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-replicatedmap-component.adoc
@@ -10,7 +10,7 @@ A replicated map is a weakly consistent, distributed key-value data structure wi
 == Options
 
 // component options: START
-The Hazelcast Replicated Map component supports 4 options, which are listed below.
+The Hazelcast Replicated Map component supports 3 options, which are listed below.
 
 
 
@@ -19,7 +19,6 @@ The Hazelcast Replicated Map component supports 4 options, which are listed belo
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -84,7 +83,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -97,7 +96,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-replicatedmap.enabled* | Enable hazelcast-replicatedmap component | true | Boolean
 | *camel.component.hazelcast-replicatedmap.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-replicatedmap.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-replicatedmap.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc
index d0b1aa9..dc9b3ba 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-ringbuffer-component.adoc
@@ -9,7 +9,7 @@ Ringbuffer is a distributed data structure where the data is stored in a ring-li
 == Options
 
 // component options: START
-The Hazelcast Ringbuffer component supports 4 options, which are listed below.
+The Hazelcast Ringbuffer component supports 3 options, which are listed below.
 
 
 
@@ -18,7 +18,6 @@ The Hazelcast Ringbuffer component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -78,7 +77,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -91,7 +90,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-ringbuffer.enabled* | Enable hazelcast-ringbuffer component | true | Boolean
 | *camel.component.hazelcast-ringbuffer.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-ringbuffer.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-ringbuffer.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc
index 44d43b4..e70800e 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-seda-component.adoc
@@ -10,7 +10,7 @@ SEDA component differs from the rest components provided. It implements a work-q
 == Options
 
 // component options: START
-The Hazelcast SEDA component supports 4 options, which are listed below.
+The Hazelcast SEDA component supports 3 options, which are listed below.
 
 
 
@@ -19,7 +19,6 @@ The Hazelcast SEDA component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -84,7 +83,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -97,7 +96,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-seda.enabled* | Enable hazelcast-seda component | true | Boolean
 | *camel.component.hazelcast-seda.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-seda.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-seda.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc
index 0f131a9..07d69d7 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-set-component.adoc
@@ -9,7 +9,7 @@ The http://www.hazelcast.com/[Hazelcast] Set component is one of Camel Hazelcast
 == Options
 
 // component options: START
-The Hazelcast Set component supports 4 options, which are listed below.
+The Hazelcast Set component supports 3 options, which are listed below.
 
 
 
@@ -18,7 +18,6 @@ The Hazelcast Set component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -83,7 +82,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -96,7 +95,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.hazelcast-set.enabled* | Enable hazelcast-set component | true | Boolean
 | *camel.component.hazelcast-set.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-set.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-set.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc b/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc
index 503716c..f5e72c2 100644
--- a/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc
+++ b/components/camel-hazelcast/src/main/docs/hazelcast-topic-component.adoc
@@ -9,7 +9,7 @@ The http://www.hazelcast.com/[Hazelcast] Topic component is one of Camel Hazelca
 == Options
 
 // component options: START
-The Hazelcast Topic component supports 4 options, which are listed below.
+The Hazelcast Topic component supports 3 options, which are listed below.
 
 
 
@@ -18,7 +18,6 @@ The Hazelcast Topic component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *hazelcastInstance* (advanced) | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. |  | HazelcastInstance
 | *hazelcastMode* (advanced) | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -83,7 +82,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 9 options, which are listed below.
+The component supports 8 options, which are listed below.
 
 
 
@@ -98,7 +97,6 @@ The component supports 9 options, which are listed below.
 | *camel.component.hazelcast-topic.enabled* | Enable hazelcast-topic component | true | Boolean
 | *camel.component.hazelcast-topic.hazelcast-instance* | The hazelcast instance reference which can be used for hazelcast endpoint. If you don't specify the instance reference, camel use the default hazelcast instance from the camel-hazelcast instance. The option is a com.hazelcast.core.HazelcastInstance type. |  | String
 | *camel.component.hazelcast-topic.hazelcast-mode* | The hazelcast mode reference which kind of instance should be used. If you don't specify the mode, then the node mode will be the default. | node | String
-| *camel.component.hazelcast-topic.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hbase/src/main/docs/hbase-component.adoc b/components/camel-hbase/src/main/docs/hbase-component.adoc
index 7545401..84de3da 100644
--- a/components/camel-hbase/src/main/docs/hbase-component.adoc
+++ b/components/camel-hbase/src/main/docs/hbase-component.adoc
@@ -102,7 +102,7 @@ The supported operations are:
 
 
 // component options: START
-The HBase component supports 4 options, which are listed below.
+The HBase component supports 3 options, which are listed below.
 
 
 
@@ -111,7 +111,6 @@ The HBase component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (advanced) | To use the shared configuration |  | Configuration
 | *poolMaxSize* (common) | Maximum number of references to keep for each table in the HTable pool. The default value is 10. | 10 | int
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -182,7 +181,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 5 options, which are listed below.
+The component supports 4 options, which are listed below.
 
 
 
@@ -193,7 +192,6 @@ The component supports 5 options, which are listed below.
 | *camel.component.hbase.configuration* | To use the shared configuration. The option is a org.apache.hadoop.conf.Configuration type. |  | String
 | *camel.component.hbase.enabled* | Enable hbase component | true | Boolean
 | *camel.component.hbase.pool-max-size* | Maximum number of references to keep for each table in the HTable pool. The default value is 10. | 10 | Integer
-| *camel.component.hbase.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hdfs/src/main/docs/hdfs-component.adoc b/components/camel-hdfs/src/main/docs/hdfs-component.adoc
index b951750..a6c3b10 100644
--- a/components/camel-hdfs/src/main/docs/hdfs-component.adoc
+++ b/components/camel-hdfs/src/main/docs/hdfs-component.adoc
@@ -54,7 +54,7 @@ fileMode=Append to append each of the chunks together.
 
 
 // component options: START
-The HDFS component supports 3 options, which are listed below.
+The HDFS component supports 2 options, which are listed below.
 
 
 
@@ -62,7 +62,6 @@ The HDFS component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *jAASConfiguration* (common) | To use the given configuration for security with JAAS. |  | Configuration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -157,7 +156,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -167,7 +166,6 @@ The component supports 4 options, which are listed below.
 | *camel.component.hdfs.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.hdfs.enabled* | Whether to enable auto configuration of the hdfs component. This is enabled by default. |  | Boolean
 | *camel.component.hdfs.j-a-a-s-configuration* | To use the given configuration for security with JAAS. The option is a javax.security.auth.login.Configuration type. |  | String
-| *camel.component.hdfs.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-hipchat/src/main/docs/hipchat-component.adoc b/components/camel-hipchat/src/main/docs/hipchat-component.adoc
index 8dff8fe..b4c07d8 100644
--- a/components/camel-hipchat/src/main/docs/hipchat-component.adoc
+++ b/components/camel-hipchat/src/main/docs/hipchat-component.adoc
@@ -27,14 +27,13 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Hipchat component supports 2 options, which are listed below.
+The Hipchat component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -113,7 +112,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -122,7 +121,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.hipchat.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.hipchat.enabled* | Enable hipchat component | true | Boolean
-| *camel.component.hipchat.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-http/src/main/docs/http-component.adoc b/components/camel-http/src/main/docs/http-component.adoc
index 809cedb..bb1cec6 100644
--- a/components/camel-http/src/main/docs/http-component.adoc
+++ b/components/camel-http/src/main/docs/http-component.adoc
@@ -45,7 +45,7 @@ route, use the xref:jetty-component.adoc[Jetty Component] instead.
 
 
 // component options: START
-The HTTP component supports 19 options, which are listed below.
+The HTTP component supports 18 options, which are listed below.
 
 
 
@@ -69,7 +69,6 @@ The HTTP component supports 19 options, which are listed below.
 | *httpConfiguration* (advanced) | To use the shared HttpConfiguration as base configuration. |  | HttpConfiguration
 | *allowJavaSerialized Object* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -177,7 +176,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 20 options, which are listed below.
+The component supports 19 options, which are listed below.
 
 
 
@@ -199,7 +198,6 @@ The component supports 20 options, which are listed below.
 | *camel.component.http.http-configuration* | To use the shared HttpConfiguration as base configuration. The option is a org.apache.camel.http.common.HttpConfiguration type. |  | String
 | *camel.component.http.http-context* | To use a custom org.apache.http.protocol.HttpContext when executing requests. The option is a org.apache.http.protocol.HttpContext type. |  | String
 | *camel.component.http.max-total-connections* | The maximum number of connections. | 200 | Integer
-| *camel.component.http.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.http.socket-timeout* | Defines the socket timeout (SO_TIMEOUT) in milliseconds, which is the timeout for waiting for data or, put differently, a maximum period inactivity between two consecutive data packets). A timeout value of zero is interpreted as an infinite timeout. A negative value is interpreted as undefined (system default). Default: -1 | -1 | Integer
 | *camel.component.http.ssl-context-parameters* | To configure security using SSLContextParameters. Important: Only one instance of org.apache.camel.support.jsse.SSLContextParameters is supported per HttpComponent. If you need to use 2 or more different instances, you need to define a new HttpComponent per instance you need. The option is a org.apache.camel.support.jsse.SSLContextParameters type. |  | String
 | *camel.component.http.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
diff --git a/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc b/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
index 7f10b1a..a7ba118 100644
--- a/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
+++ b/components/camel-iec60870/src/main/docs/iec60870-client-component.adoc
@@ -20,7 +20,7 @@ for this component:
 ----
 
 // component options: START
-The IEC 60870 Client component supports 3 options, which are listed below.
+The IEC 60870 Client component supports 2 options, which are listed below.
 
 
 
@@ -28,7 +28,6 @@ The IEC 60870 Client component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *defaultConnection Options* (common) | Default connection options |  | ClientOptions
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -117,7 +116,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -129,7 +128,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.iec60870-client.default-connection-options.data-module-options* | Whether to include the source address |  | DataModuleOptions
 | *camel.component.iec60870-client.default-connection-options.ignore-background-scan* | Whether to include the source address | true | Boolean
 | *camel.component.iec60870-client.enabled* | Whether to enable auto configuration of the iec60870-client component. This is enabled by default. |  | Boolean
-| *camel.component.iec60870-client.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc b/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
index d08674e..0d5e39d 100644
--- a/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
+++ b/components/camel-iec60870/src/main/docs/iec60870-server-component.adoc
@@ -21,7 +21,7 @@ for this component:
 
 
 // component options: START
-The IEC 60870 Server component supports 3 options, which are listed below.
+The IEC 60870 Server component supports 2 options, which are listed below.
 
 
 
@@ -29,7 +29,6 @@ The IEC 60870 Server component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *defaultConnection Options* (common) | Default connection options |  | ServerOptions
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -121,7 +120,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 9 options, which are listed below.
+The component supports 8 options, which are listed below.
 
 
 
@@ -136,7 +135,6 @@ The component supports 9 options, which are listed below.
 | *camel.component.iec60870-server.default-connection-options.floats-with-timestamp* | The period in "ms" between background transmission cycles. <p> If this is set to zero or less, background transmissions will be disabled. </p> |  | Boolean
 | *camel.component.iec60870-server.default-connection-options.spontaneous-duplicates* | The period in "ms" between background transmission cycles. <p> If this is set to zero or less, background transmissions will be disabled. </p> |  | Integer
 | *camel.component.iec60870-server.enabled* | Whether to enable auto configuration of the iec60870-server component. This is enabled by default. |  | Boolean
-| *camel.component.iec60870-server.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-cache-component.adoc b/components/camel-ignite/src/main/docs/ignite-cache-component.adoc
index c42fc03..1dd704e 100644
--- a/components/camel-ignite/src/main/docs/ignite-cache-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-cache-component.adoc
@@ -13,7 +13,7 @@ Even if you configure a fixed operation in the endpoint URI, you can vary it per
 == Options
 
 // component options: START
-The Ignite Cache component supports 5 options, which are listed below.
+The Ignite Cache component supports 4 options, which are listed below.
 
 
 
@@ -23,7 +23,6 @@ The Ignite Cache component supports 5 options, which are listed below.
 | *ignite* (common) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (common) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (common) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -89,7 +88,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -101,7 +100,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-cache.enabled* | Enable ignite-cache component | true | Boolean
 | *camel.component.ignite-cache.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-cache.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-cache.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-compute-component.adoc b/components/camel-ignite/src/main/docs/ignite-compute-component.adoc
index bb90ec6..94aaa42 100644
--- a/components/camel-ignite/src/main/docs/ignite-compute-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-compute-component.adoc
@@ -14,7 +14,7 @@ The endpoint tries to run the object passed in the body of the IN message as the
 == Options
 
 // component options: START
-The Ignite Compute component supports 5 options, which are listed below.
+The Ignite Compute component supports 4 options, which are listed below.
 
 
 
@@ -24,7 +24,6 @@ The Ignite Compute component supports 5 options, which are listed below.
 | *ignite* (producer) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (producer) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (producer) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -82,7 +81,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -94,7 +93,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-compute.enabled* | Enable ignite-compute component | true | Boolean
 | *camel.component.ignite-compute.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-compute.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-compute.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-events-component.adoc b/components/camel-ignite/src/main/docs/ignite-events-component.adoc
index 9107263..d9ac803 100644
--- a/components/camel-ignite/src/main/docs/ignite-events-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-events-component.adoc
@@ -11,7 +11,7 @@ The Exchanges created by this consumer put the received Event object into the bo
 == Options
 
 // component options: START
-The Ignite Events component supports 5 options, which are listed below.
+The Ignite Events component supports 4 options, which are listed below.
 
 
 
@@ -21,7 +21,6 @@ The Ignite Events component supports 5 options, which are listed below.
 | *ignite* (consumer) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (consumer) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (consumer) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -78,7 +77,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -90,7 +89,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-events.enabled* | Enable ignite-events component | true | Boolean
 | *camel.component.ignite-events.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-events.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-events.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc b/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc
index 484dd3a..1a2291e 100644
--- a/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-idgen-component.adoc
@@ -10,7 +10,7 @@ This endpoint only supports producers.
 == Options
 
 // component options: START
-The Ignite ID Generator component supports 5 options, which are listed below.
+The Ignite ID Generator component supports 4 options, which are listed below.
 
 
 
@@ -20,7 +20,6 @@ The Ignite ID Generator component supports 5 options, which are listed below.
 | *ignite* (producer) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (producer) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (producer) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -76,7 +75,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -88,7 +87,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-idgen.enabled* | Enable ignite-idgen component | true | Boolean
 | *camel.component.ignite-idgen.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-idgen.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-idgen.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc b/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc
index 07ff226..22a668d 100644
--- a/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-messaging-component.adoc
@@ -10,7 +10,7 @@ This endpoint supports producers (to send messages) and consumers (to receive me
 == Options
 
 // component options: START
-The Ignite Messaging component supports 5 options, which are listed below.
+The Ignite Messaging component supports 4 options, which are listed below.
 
 
 
@@ -20,7 +20,6 @@ The Ignite Messaging component supports 5 options, which are listed below.
 | *ignite* (common) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (common) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (common) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -79,7 +78,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -91,7 +90,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-messaging.enabled* | Enable ignite-messaging component | true | Boolean
 | *camel.component.ignite-messaging.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-messaging.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-messaging.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-queue-component.adoc b/components/camel-ignite/src/main/docs/ignite-queue-component.adoc
index f372469..2d9b2ce 100644
--- a/components/camel-ignite/src/main/docs/ignite-queue-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-queue-component.adoc
@@ -10,7 +10,7 @@ This endpoint only supports producers.
 == Options
 
 // component options: START
-The Ignite Queues component supports 5 options, which are listed below.
+The Ignite Queues component supports 4 options, which are listed below.
 
 
 
@@ -20,7 +20,6 @@ The Ignite Queues component supports 5 options, which are listed below.
 | *ignite* (producer) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (producer) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (producer) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -77,7 +76,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -89,7 +88,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-queue.enabled* | Enable ignite-queue component | true | Boolean
 | *camel.component.ignite-queue.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-queue.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-queue.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ignite/src/main/docs/ignite-set-component.adoc b/components/camel-ignite/src/main/docs/ignite-set-component.adoc
index 4f6feba..b8afb46 100644
--- a/components/camel-ignite/src/main/docs/ignite-set-component.adoc
+++ b/components/camel-ignite/src/main/docs/ignite-set-component.adoc
@@ -10,7 +10,7 @@ This endpoint only supports producers.
 == Options
 
 // component options: START
-The Ignite Sets component supports 5 options, which are listed below.
+The Ignite Sets component supports 4 options, which are listed below.
 
 
 
@@ -20,7 +20,6 @@ The Ignite Sets component supports 5 options, which are listed below.
 | *ignite* (producer) | Sets the Ignite instance. |  | Ignite
 | *configurationResource* (producer) | Sets the resource from where to load the configuration. It can be a: URI, String (URI) or an InputStream. |  | Object
 | *igniteConfiguration* (producer) | Allows the user to set a programmatic IgniteConfiguration. |  | IgniteConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -75,7 +74,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 6 options, which are listed below.
+The component supports 5 options, which are listed below.
 
 
 
@@ -87,7 +86,6 @@ The component supports 6 options, which are listed below.
 | *camel.component.ignite-set.enabled* | Enable ignite-set component | true | Boolean
 | *camel.component.ignite-set.ignite* | Sets the Ignite instance. The option is a org.apache.ignite.Ignite type. |  | String
 | *camel.component.ignite-set.ignite-configuration* | Allows the user to set a programmatic IgniteConfiguration. The option is a org.apache.ignite.configuration.IgniteConfiguration type. |  | String
-| *camel.component.ignite-set.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-infinispan/src/main/docs/infinispan-component.adoc b/components/camel-infinispan/src/main/docs/infinispan-component.adoc
index b12c1c7..09aef66 100644
--- a/components/camel-infinispan/src/main/docs/infinispan-component.adoc
+++ b/components/camel-infinispan/src/main/docs/infinispan-component.adoc
@@ -52,7 +52,7 @@ accessible from the registry.
 
 
 // component options: START
-The Infinispan component supports 4 options, which are listed below.
+The Infinispan component supports 3 options, which are listed below.
 
 
 
@@ -61,7 +61,6 @@ The Infinispan component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *configuration* (common) | The default configuration shared among endpoints. |  | InfinispanConfiguration
 | *cacheContainer* (common) | The default cache container. |  | BasicCacheContainer
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -133,7 +132,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 23 options, which are listed below.
+The component supports 22 options, which are listed below.
 
 
 
@@ -161,7 +160,6 @@ The component supports 23 options, which are listed below.
 | *camel.component.infinispan.customizer.remote-cache-manager.enabled* | Enable or disable the cache-manager customizer. | true | Boolean
 | *camel.component.infinispan.customizer.remote-cache-manager.override* | Configure if the cache manager eventually set on the component should be overridden by the customizer. | false | Boolean
 | *camel.component.infinispan.enabled* | Enable infinispan component | true | Boolean
-| *camel.component.infinispan.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.infinispan.configuration.command* | *Deprecated* The operation to perform. | PUT | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-influxdb/src/main/docs/influxdb-component.adoc b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
index d545a99..7e8cd25 100644
--- a/components/camel-influxdb/src/main/docs/influxdb-component.adoc
+++ b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
@@ -42,14 +42,13 @@ configured in the registry, using the native java driver.
 
 
 // component options: START
-The InfluxDB component supports 2 options, which are listed below.
+The InfluxDB component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -108,7 +107,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -117,7 +116,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.influxdb.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.influxdb.enabled* | Enable influxdb component | true | Boolean
-| *camel.component.influxdb.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-iota/src/main/docs/iota-component.adoc b/components/camel-iota/src/main/docs/iota-component.adoc
index dc470fa..3b9363c 100644
--- a/components/camel-iota/src/main/docs/iota-component.adoc
+++ b/components/camel-iota/src/main/docs/iota-component.adoc
@@ -28,14 +28,13 @@ iota:name?url=nodeurl[&moreOptions...]
 == Options
 
 // component options: START
-The IOTA component supports 2 options, which are listed below.
+The IOTA component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -96,7 +95,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -105,7 +104,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.iota.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.iota.enabled* | Whether to enable auto configuration of the iota component. This is enabled by default. |  | Boolean
-| *camel.component.iota.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-ipfs/src/main/docs/ipfs-component.adoc b/components/camel-ipfs/src/main/docs/ipfs-component.adoc
index 047ba26..b15874a 100644
--- a/components/camel-ipfs/src/main/docs/ipfs-component.adoc
+++ b/components/camel-ipfs/src/main/docs/ipfs-component.adoc
@@ -28,14 +28,13 @@ ipfs://cmd?options
 == Options
 
 // component options: START
-The IPFS component supports 2 options, which are listed below.
+The IPFS component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -89,7 +88,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -98,7 +97,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.ipfs.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.ipfs.enabled* | Whether to enable auto configuration of the ipfs component. This is enabled by default. |  | Boolean
-| *camel.component.ipfs.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-irc/src/main/docs/irc-component.adoc b/components/camel-irc/src/main/docs/irc-component.adoc
index d38c955..6c661f8 100644
--- a/components/camel-irc/src/main/docs/irc-component.adoc
+++ b/components/camel-irc/src/main/docs/irc-component.adoc
@@ -35,7 +35,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The IRC component supports 3 options, which are listed below.
+The IRC component supports 2 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The IRC component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *useGlobalSslContext Parameters* (security) | Enable usage of global SSL context parameters. | false | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -125,7 +124,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -134,7 +133,6 @@ The component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.irc.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.irc.enabled* | Enable irc component | true | Boolean
-| *camel.component.irc.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.irc.use-global-ssl-context-parameters* | Enable usage of global SSL context parameters. | false | Boolean
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-ironmq/src/main/docs/ironmq-component.adoc b/components/camel-ironmq/src/main/docs/ironmq-component.adoc
index bd3b19a..dc166e0 100644
--- a/components/camel-ironmq/src/main/docs/ironmq-component.adoc
+++ b/components/camel-ironmq/src/main/docs/ironmq-component.adoc
@@ -115,7 +115,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -124,7 +124,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.ironmq.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.ironmq.enabled* | Enable ironmq component | true | Boolean
-| *camel.component.ironmq.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
@@ -140,14 +139,13 @@ The component supports 3 options, which are listed below.
 
 
 // component options: START
-The IronMQ component supports 2 options, which are listed below.
+The IronMQ component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-jbpm/src/main/docs/jbpm-component.adoc b/components/camel-jbpm/src/main/docs/jbpm-component.adoc
index 158d01d..c2add10 100644
--- a/components/camel-jbpm/src/main/docs/jbpm-component.adoc
+++ b/components/camel-jbpm/src/main/docs/jbpm-component.adoc
@@ -136,14 +136,13 @@ jbpm::hostName[:port][/resourceUri][?options]
 
 
 // component options: START
-The JBPM component supports 2 options, which are listed below.
+The JBPM component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -228,7 +227,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -237,7 +236,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.jbpm.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.jbpm.enabled* | Enable jbpm component | true | Boolean
-| *camel.component.jbpm.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jcache/src/main/docs/jcache-component.adoc b/components/camel-jcache/src/main/docs/jcache-component.adoc
index b6f33ec..a59b32a 100644
--- a/components/camel-jcache/src/main/docs/jcache-component.adoc
+++ b/components/camel-jcache/src/main/docs/jcache-component.adoc
@@ -81,7 +81,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 7 options, which are listed below.
+The component supports 6 options, which are listed below.
 
 
 
@@ -94,7 +94,6 @@ The component supports 7 options, which are listed below.
 | *camel.component.jcache.caching-provider* | The fully qualified class name of the javax.cache.spi.CachingProvider |  | String
 | *camel.component.jcache.configuration-uri* | An implementation specific URI for the CacheManager |  | String
 | *camel.component.jcache.enabled* | Enable jcache component | true | Boolean
-| *camel.component.jcache.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
@@ -107,7 +106,7 @@ The component supports 7 options, which are listed below.
 
 
 // component options: START
-The JCache component supports 6 options, which are listed below.
+The JCache component supports 5 options, which are listed below.
 
 
 
@@ -118,7 +117,6 @@ The JCache component supports 6 options, which are listed below.
 | *cacheConfiguration* (common) | A Configuration for the Cache |  | Configuration
 | *cacheConfiguration Properties* (common) | The Properties for the javax.cache.spi.CachingProvider to create the CacheManager |  | Properties
 | *configurationUri* (common) | An implementation specific URI for the CacheManager |  | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
diff --git a/components/camel-jclouds/src/main/docs/jclouds-component.adoc b/components/camel-jclouds/src/main/docs/jclouds-component.adoc
index 287481c..e6bdb3a 100644
--- a/components/camel-jclouds/src/main/docs/jclouds-component.adoc
+++ b/components/camel-jclouds/src/main/docs/jclouds-component.adoc
@@ -103,7 +103,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The JClouds component supports 4 options, which are listed below.
+The JClouds component supports 3 options, which are listed below.
 
 
 
@@ -112,7 +112,6 @@ The JClouds component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *blobStores* (common) | To use the given BlobStore which must be configured when using blobstore. |  | List
 | *computeServices* (common) | To use the given ComputeService which must be configured when use compute. |  | List
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -197,7 +196,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 5 options, which are listed below.
+The component supports 4 options, which are listed below.
 
 
 
@@ -208,7 +207,6 @@ The component supports 5 options, which are listed below.
 | *camel.component.jclouds.blob-stores* | To use the given BlobStore which must be configured when using blobstore. |  | List
 | *camel.component.jclouds.compute-services* | To use the given ComputeService which must be configured when use compute. |  | List
 | *camel.component.jclouds.enabled* | Whether to enable auto configuration of the jclouds component. This is enabled by default. |  | Boolean
-| *camel.component.jclouds.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jcr/src/main/docs/jcr-component.adoc b/components/camel-jcr/src/main/docs/jcr-component.adoc
index bbdbe12..39c0879 100644
--- a/components/camel-jcr/src/main/docs/jcr-component.adoc
+++ b/components/camel-jcr/src/main/docs/jcr-component.adoc
@@ -42,14 +42,13 @@ The `repository` element of the URI is used to look up the JCR
 
 
 // component options: START
-The JCR component supports 2 options, which are listed below.
+The JCR component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -117,7 +116,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -126,7 +125,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.jcr.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.jcr.enabled* | Enable jcr component | true | Boolean
-| *camel.component.jcr.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jdbc/src/main/docs/jdbc-component.adoc b/components/camel-jdbc/src/main/docs/jdbc-component.adoc
index 5fdc08a..91a9334 100644
--- a/components/camel-jdbc/src/main/docs/jdbc-component.adoc
+++ b/components/camel-jdbc/src/main/docs/jdbc-component.adoc
@@ -40,7 +40,7 @@ You can append query options to the URI in the following format,
 == Options
 
 // component options: START
-The JDBC component supports 3 options, which are listed below.
+The JDBC component supports 2 options, which are listed below.
 
 
 
@@ -48,7 +48,6 @@ The JDBC component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *dataSource* (producer) | To use the DataSource instance instead of looking up the data source by name from the registry. |  | DataSource
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -117,7 +116,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -127,7 +126,6 @@ The component supports 4 options, which are listed below.
 | *camel.component.jdbc.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.jdbc.data-source* | To use the DataSource instance instead of looking up the data source by name from the registry. The option is a javax.sql.DataSource type. |  | String
 | *camel.component.jdbc.enabled* | Enable jdbc component | true | Boolean
-| *camel.component.jdbc.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jetty/src/main/docs/jetty-component.adoc b/components/camel-jetty/src/main/docs/jetty-component.adoc
index 05a43f0..296f30c 100644
--- a/components/camel-jetty/src/main/docs/jetty-component.adoc
+++ b/components/camel-jetty/src/main/docs/jetty-component.adoc
@@ -49,7 +49,7 @@ You can append query options to the URI in the following format,
 
 
 // component options: START
-The Jetty component supports 34 options, which are listed below.
+The Jetty component supports 33 options, which are listed below.
 
 
 
@@ -88,7 +88,6 @@ The Jetty component supports 34 options, which are listed below.
 | *sendServerVersion* (consumer) | If the option is true, jetty will send the server header with the jetty version information to the client which sends the request. NOTE please make sure there is no any other camel-jetty endpoint is share the same port, otherwise this option may not work as expected. | true | boolean
 | *allowJavaSerialized Object* (advanced) | Whether to allow java serialization when a request uses context-type=application/x-java-serialized-object. This is by default turned off. If you enable this then be aware that Java will deserialize the incoming data from the request to Java and that can be a potential security risk. | false | boolean
 | *headerFilterStrategy* (filter) | To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter header to and from Camel message. |  | HeaderFilterStrategy
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -177,7 +176,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 35 options, which are listed below.
+The component supports 34 options, which are listed below.
 
 
 
@@ -204,7 +203,6 @@ The component supports 35 options, which are listed below.
 | *camel.component.jetty.proxy-port* | To use a http proxy to configure the port number. |  | Integer
 | *camel.component.jetty.request-buffer-size* | Allows to configure a custom value of the request buffer size on the Jetty connectors. |  | Integer
 | *camel.component.jetty.request-header-size* | Allows to configure a custom value of the request header size on the Jetty connectors. |  | Integer
-| *camel.component.jetty.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.jetty.response-buffer-size* | Allows to configure a custom value of the response buffer size on the Jetty connectors. |  | Integer
 | *camel.component.jetty.response-header-size* | Allows to configure a custom value of the response header size on the Jetty connectors. |  | Integer
 | *camel.component.jetty.send-server-version* | If the option is true, jetty will send the server header with the jetty version information to the client which sends the request. NOTE please make sure there is no any other camel-jetty endpoint is share the same port, otherwise this option may not work as expected. | true | Boolean
diff --git a/components/camel-jgroups-raft/src/main/docs/jgroups-raft-component.adoc b/components/camel-jgroups-raft/src/main/docs/jgroups-raft-component.adoc
index 61fd159..6700935 100644
--- a/components/camel-jgroups-raft/src/main/docs/jgroups-raft-component.adoc
+++ b/components/camel-jgroups-raft/src/main/docs/jgroups-raft-component.adoc
@@ -32,7 +32,7 @@ component should connect to.
 == Options
 
 // component options: START
-The JGroups raft component supports 6 options, which are listed below.
+The JGroups raft component supports 5 options, which are listed below.
 
 
 
@@ -43,7 +43,6 @@ The JGroups raft component supports 6 options, which are listed below.
 | *stateMachine* (common) | StateMachine to use. | NopStateMachine | StateMachine
 | *raftId* (common) | *Required* Unique raftId to use. |  | String
 | *channelProperties* (common) | Specifies configuration properties of the RaftHandle JChannel used by the endpoint (ignored if raftHandle ref is provided). | raft.xml | String
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -99,7 +98,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 12 options, which are listed below.
+The component supports 11 options, which are listed below.
 
 
 
@@ -111,7 +110,6 @@ The component supports 12 options, which are listed below.
 | *camel.component.jgroups-raft.enabled* | Enable jgroups-raft component | true | Boolean
 | *camel.component.jgroups-raft.raft-handle* | RaftHandle to use. The option is a org.jgroups.raft.RaftHandle type. |  | String
 | *camel.component.jgroups-raft.raft-id* | Unique raftId to use. |  | String
-| *camel.component.jgroups-raft.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.jgroups-raft.state-machine* | StateMachine to use. The option is a org.jgroups.protocols.raft.StateMachine type. |  | String
 | *camel.component.jgroups.raft.cluster.service.enabled* | Sets if the jgroups raft cluster service should be enabled or not, default is false. | false | Boolean
 | *camel.component.jgroups.raft.cluster.service.id* | Cluster Service ID |  | String
diff --git a/components/camel-jgroups/src/main/docs/jgroups-component.adoc b/components/camel-jgroups/src/main/docs/jgroups-component.adoc
index 83642ef..3ef2b6a 100644
--- a/components/camel-jgroups/src/main/docs/jgroups-component.adoc
+++ b/components/camel-jgroups/src/main/docs/jgroups-component.adoc
@@ -36,7 +36,7 @@ component should connect to.
 
 
 // component options: START
-The JGroups component supports 5 options, which are listed below.
+The JGroups component supports 4 options, which are listed below.
 
 
 
@@ -46,7 +46,6 @@ The JGroups component supports 5 options, which are listed below.
 | *channel* (common) | Channel to use |  | JChannel
 | *channelProperties* (common) | Specifies configuration properties of the JChannel used by the endpoint. |  | String
 | *enableViewMessages* (consumer) | If set to true, the consumer endpoint will receive org.jgroups.View messages as well (not only org.jgroups.Message instances). By default only regular messages are consumed by the endpoint. | false | boolean
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -107,7 +106,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 10 options, which are listed below.
+The component supports 9 options, which are listed below.
 
 
 
@@ -123,7 +122,6 @@ The component supports 10 options, which are listed below.
 | *camel.component.jgroups.lock.cluster.service.id* | Cluster Service ID |  | String
 | *camel.component.jgroups.lock.cluster.service.jgroups-cluster-name* | JGroups Cluster name |  | String
 | *camel.component.jgroups.lock.cluster.service.jgroups-config* | JGrups configuration File name |  | String
-| *camel.component.jgroups.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jing/src/main/docs/jing-component.adoc b/components/camel-jing/src/main/docs/jing-component.adoc
index e7c87e7..764e64b 100644
--- a/components/camel-jing/src/main/docs/jing-component.adoc
+++ b/components/camel-jing/src/main/docs/jing-component.adoc
@@ -41,14 +41,13 @@ option compactSyntax to turn on either RNG or RNC mode.
 
 
 // component options: START
-The Jing component supports 2 options, which are listed below.
+The Jing component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -103,7 +102,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -112,7 +111,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.jing.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.jing.enabled* | Enable jing component | true | Boolean
-| *camel.component.jing.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jira/src/main/docs/jira-component.adoc b/components/camel-jira/src/main/docs/jira-component.adoc
index a69dc5d..094ec9f 100644
--- a/components/camel-jira/src/main/docs/jira-component.adoc
+++ b/components/camel-jira/src/main/docs/jira-component.adoc
@@ -42,7 +42,7 @@ jira://type[?options]
 
 
 // component options: START
-The Jira component supports 3 options, which are listed below.
+The Jira component supports 2 options, which are listed below.
 
 
 
@@ -50,7 +50,6 @@ The Jira component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *configuration* (advanced) | The JiraConfiguration parameters |  | JiraConfiguration
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -134,7 +133,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 11 options, which are listed below.
+The component supports 10 options, which are listed below.
 
 
 
@@ -151,7 +150,6 @@ The component supports 11 options, which are listed below.
 | *camel.component.jira.configuration.username* | (Basic authentication only) The username to authenticate to the Jira server. Use only if OAuth is not enabled on the Jira server. Do not set the username and OAuth token parameter, if they are both set, the username basic authentication takes precedence. |  | String
 | *camel.component.jira.configuration.verification-code* | (OAuth only) The verification code from Jira generated in the first step of the authorization proccess. |  | String
 | *camel.component.jira.enabled* | Whether to enable auto configuration of the jira component. This is enabled by default. |  | Boolean
-| *camel.component.jira.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jmx/src/main/docs/jmx-component.adoc b/components/camel-jmx/src/main/docs/jmx-component.adoc
index 3fa18d6..f084433 100644
--- a/components/camel-jmx/src/main/docs/jmx-component.adoc
+++ b/components/camel-jmx/src/main/docs/jmx-component.adoc
@@ -23,14 +23,13 @@ monitor Camel using JMX.
 == Options
 
 // component options: START
-The JMX component supports 2 options, which are listed below.
+The JMX component supports 1 options, which are listed below.
 
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
 |===
 | Name | Description | Default | Type
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -109,7 +108,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 3 options, which are listed below.
+The component supports 2 options, which are listed below.
 
 
 
@@ -118,7 +117,6 @@ The component supports 3 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.jmx.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.jmx.enabled* | Enable jmx component | true | Boolean
-| *camel.component.jmx.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 |===
 // spring-boot-auto-configure options: END
 
diff --git a/components/camel-jolt/src/main/docs/jolt-component.adoc b/components/camel-jolt/src/main/docs/jolt-component.adoc
index bd08eea..29b4543 100644
--- a/components/camel-jolt/src/main/docs/jolt-component.adoc
+++ b/components/camel-jolt/src/main/docs/jolt-component.adoc
@@ -42,7 +42,7 @@ format, `?option=value&option=value&...`
 
 
 // component options: START
-The JOLT component supports 3 options, which are listed below.
+The JOLT component supports 2 options, which are listed below.
 
 
 
@@ -50,7 +50,6 @@ The JOLT component supports 3 options, which are listed below.
 |===
 | Name | Description | Default | Type
 | *transform* (advanced) | Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created |  | Transform
-| *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
 | *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
@@ -110,7 +109,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 4 options, which are listed below.
+The component supports 3 options, which are listed below.
 
 
 
@@ -119,7 +118,6 @@ The component supports 4 options, which are listed below.
 | Name | Description | Default | Type
 | *camel.component.jolt.basic-property-binding* | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | Boolean
 | *camel.component.jolt.enabled* | Enable jolt component | true | Boolean
-| *camel.component.jolt.resolve-property-placeholders* | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | Boolean
 | *camel.component.jolt.transform* | Explicitly sets the Transform to use. If not set a Transform specified by the transformDsl will be created. The option is a com.bazaarvoice.jolt.Transform type. |  | String
 |===
 // spring-boot-auto-configure options: END
diff --git a/components/camel-jooq/src/main/docs/jooq-component.adoc b/components/camel-jooq/src/main/docs/jooq-component.adoc
index 61c72e0..07ab472 100644
--- a/components/camel-jooq/src/main/docs/jooq-component.adoc
+++ b/components/camel-jooq/src/main/docs/jooq-component.adoc
@@ -40,7 +40,7 @@ If you do not wish to delete the entity bean when it has been processed, you can
 == Options
 
 // component options: START
-The JOOQ component supports 3 options, which are listed below.
+The JOOQ componen