CAMEL-11291: spring boot starters: allow to hook into auto configuration process
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/3eeb97ac Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/3eeb97ac Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/3eeb97ac Branch: refs/heads/master Commit: 3eeb97aca813e599b262fef0a6c397861f27cf01 Parents: 88225c8 Author: lburgazzoli <lburgazz...@gmail.com> Authored: Wed May 17 18:22:13 2017 +0200 Committer: lburgazzoli <lburgazz...@gmail.com> Committed: Fri May 19 13:52:15 2017 +0200 ---------------------------------------------------------------------- .../apache/camel/spi/ComponentCustomizer.java | 29 + .../apache/camel/spi/DataFormatCustomizer.java | 27 + .../apache/camel/spi/LanguageCustomizer.java | 27 + .../boot/ComponentConfigurationProperties.java | 12 +- .../ComponentConfigurationPropertiesCommon.java | 60 ++ .../boot/DataFormatConfigurationProperties.java | 12 +- ...DataFormatConfigurationPropertiesCommon.java | 60 ++ .../boot/LanguageConfigurationProperties.java | 12 +- .../LanguageConfigurationPropertiesCommon.java | 60 ++ .../AhcComponentAutoConfiguration.java | 94 +-- .../springboot/AhcComponentConfiguration.java | 5 +- .../WsComponentAutoConfiguration.java | 94 +-- .../ws/springboot/WsComponentConfiguration.java | 5 +- .../AMQPComponentAutoConfiguration.java | 94 +-- .../springboot/AMQPComponentConfiguration.java | 5 +- .../ApnsComponentAutoConfiguration.java | 94 +-- .../springboot/ApnsComponentConfiguration.java | 5 +- .../AsteriskComponentAutoConfiguration.java | 116 ++-- .../AsteriskComponentConfiguration.java | 7 +- .../AtmosComponentAutoConfiguration.java | 116 ++-- .../springboot/AtmosComponentConfiguration.java | 7 +- .../WebsocketComponentAutoConfiguration.java | 95 +-- .../WebsocketComponentConfiguration.java | 5 +- .../AtomComponentAutoConfiguration.java | 116 ++-- .../springboot/AtomComponentConfiguration.java | 7 +- .../AvroComponentAutoConfiguration.java | 94 +-- .../springboot/AvroComponentConfiguration.java | 5 +- .../AvroDataFormatAutoConfiguration.java | 95 +-- .../springboot/AvroDataFormatConfiguration.java | 5 +- .../CwComponentAutoConfiguration.java | 116 ++-- .../cw/springboot/CwComponentConfiguration.java | 7 +- .../DdbComponentAutoConfiguration.java | 116 ++-- .../springboot/DdbComponentConfiguration.java | 7 +- .../DdbStreamComponentAutoConfiguration.java | 116 ++-- .../DdbStreamComponentConfiguration.java | 7 +- .../EC2ComponentAutoConfiguration.java | 116 ++-- .../springboot/EC2ComponentConfiguration.java | 7 +- ...nesisFirehoseComponentAutoConfiguration.java | 119 ++-- .../KinesisFirehoseComponentConfiguration.java | 50 ++ .../KinesisComponentAutoConfiguration.java | 116 ++-- .../KinesisComponentConfiguration.java | 11 +- .../S3ComponentAutoConfiguration.java | 116 ++-- .../s3/springboot/S3ComponentConfiguration.java | 7 +- .../SdbComponentAutoConfiguration.java | 116 ++-- .../springboot/SdbComponentConfiguration.java | 7 +- .../SesComponentAutoConfiguration.java | 116 ++-- .../springboot/SesComponentConfiguration.java | 7 +- .../SnsComponentAutoConfiguration.java | 116 ++-- .../springboot/SnsComponentConfiguration.java | 7 +- .../SqsComponentAutoConfiguration.java | 116 ++-- .../springboot/SqsComponentConfiguration.java | 7 +- .../SWFComponentAutoConfiguration.java | 116 ++-- .../springboot/SWFComponentConfiguration.java | 7 +- .../BlobServiceComponentAutoConfiguration.java | 117 ++-- .../BlobServiceComponentConfiguration.java | 7 +- .../QueueServiceComponentAutoConfiguration.java | 117 ++-- .../QueueServiceComponentConfiguration.java | 7 +- .../BarcodeDataFormatAutoConfiguration.java | 96 ++-- .../BarcodeDataFormatConfiguration.java | 5 +- .../Base64DataFormatAutoConfiguration.java | 96 ++-- .../Base64DataFormatConfiguration.java | 5 +- ...BeanValidatorComponentAutoConfiguration.java | 119 ++-- .../BeanValidatorComponentConfiguration.java | 7 +- .../BeanIODataFormatAutoConfiguration.java | 96 ++-- .../BeanIODataFormatConfiguration.java | 5 +- .../BeanstalkComponentAutoConfiguration.java | 95 +-- .../BeanstalkComponentConfiguration.java | 5 +- .../BindyCsvDataFormatAutoConfiguration.java | 96 ++-- .../BindyCsvDataFormatConfiguration.java | 5 +- ...yFixedLengthDataFormatAutoConfiguration.java | 98 ++-- ...BindyFixedLengthDataFormatConfiguration.java | 5 +- ...KeyValuePairDataFormatAutoConfiguration.java | 98 ++-- ...indyKeyValuePairDataFormatConfiguration.java | 5 +- .../BonitaComponentAutoConfiguration.java | 116 ++-- .../BonitaComponentConfiguration.java | 9 +- .../BoonDataFormatAutoConfiguration.java | 95 +-- .../springboot/BoonDataFormatConfiguration.java | 5 +- .../BoxComponentAutoConfiguration.java | 94 +-- .../springboot/BoxComponentConfiguration.java | 5 +- .../BraintreeComponentAutoConfiguration.java | 95 +-- .../BraintreeComponentConfiguration.java | 5 +- .../CacheComponentAutoConfiguration.java | 94 +-- .../springboot/CacheComponentConfiguration.java | 5 +- .../CassandraComponentAutoConfiguration.java | 116 ++-- .../CassandraComponentConfiguration.java | 7 +- .../CastorDataFormatAutoConfiguration.java | 96 ++-- .../CastorDataFormatConfiguration.java | 5 +- ...ronicleEngineComponentAutoConfiguration.java | 119 ++-- .../ChronicleEngineComponentConfiguration.java | 7 +- .../ChunkComponentAutoConfiguration.java | 116 ++-- .../springboot/ChunkComponentConfiguration.java | 7 +- .../CMComponentAutoConfiguration.java | 116 ++-- .../cm/springboot/CMComponentConfiguration.java | 7 +- .../CMISComponentAutoConfiguration.java | 94 +-- .../springboot/CMISComponentConfiguration.java | 5 +- .../CoAPComponentAutoConfiguration.java | 116 ++-- .../springboot/CoAPComponentConfiguration.java | 7 +- .../CometdComponentAutoConfiguration.java | 94 +-- .../CometdComponentConfiguration.java | 5 +- .../ConsulComponentAutoConfiguration.java | 94 +-- .../ConsulComponentConfiguration.java | 5 +- ...lifiedContextComponentAutoConfiguration.java | 119 ++-- .../QualifiedContextComponentConfiguration.java | 7 +- .../camel-core-starter/pom.xml | 2 +- .../BeanComponentAutoConfiguration.java | 116 ++-- .../springboot/BeanComponentConfiguration.java | 7 +- .../ClassComponentAutoConfiguration.java | 116 ++-- .../springboot/ClassComponentConfiguration.java | 7 +- .../BindingNameComponentAutoConfiguration.java | 117 ++-- .../BindingNameComponentConfiguration.java | 7 +- .../BrowseComponentAutoConfiguration.java | 116 ++-- .../BrowseComponentConfiguration.java | 7 +- .../ControlBusComponentAutoConfiguration.java | 116 ++-- .../ControlBusComponentConfiguration.java | 7 +- .../DataFormatComponentAutoConfiguration.java | 116 ++-- .../DataFormatComponentConfiguration.java | 7 +- .../DataSetComponentAutoConfiguration.java | 116 ++-- .../DataSetComponentConfiguration.java | 7 +- .../DirectComponentAutoConfiguration.java | 94 +-- .../DirectComponentConfiguration.java | 5 +- .../DirectVmComponentAutoConfiguration.java | 95 +-- .../DirectVmComponentConfiguration.java | 5 +- .../FileComponentAutoConfiguration.java | 116 ++-- .../springboot/FileComponentConfiguration.java | 7 +- .../LanguageComponentAutoConfiguration.java | 116 ++-- .../LanguageComponentConfiguration.java | 7 +- .../LogComponentAutoConfiguration.java | 94 +-- .../springboot/LogComponentConfiguration.java | 5 +- .../MockComponentAutoConfiguration.java | 116 ++-- .../springboot/MockComponentConfiguration.java | 7 +- .../PropertiesComponentAutoConfiguration.java | 95 +-- .../PropertiesComponentConfiguration.java | 5 +- .../RefComponentAutoConfiguration.java | 116 ++-- .../springboot/RefComponentConfiguration.java | 7 +- .../RestApiComponentAutoConfiguration.java | 116 ++-- .../RestApiComponentConfiguration.java | 7 +- .../RestComponentAutoConfiguration.java | 94 +-- .../springboot/RestComponentConfiguration.java | 5 +- .../SchedulerComponentAutoConfiguration.java | 95 +-- .../SchedulerComponentConfiguration.java | 5 +- .../SedaComponentAutoConfiguration.java | 94 +-- .../springboot/SedaComponentConfiguration.java | 5 +- .../StubComponentAutoConfiguration.java | 94 +-- .../springboot/StubComponentConfiguration.java | 5 +- .../TestComponentAutoConfiguration.java | 116 ++-- .../springboot/TestComponentConfiguration.java | 7 +- .../TimerComponentAutoConfiguration.java | 116 ++-- .../springboot/TimerComponentConfiguration.java | 7 +- .../ValidatorComponentAutoConfiguration.java | 95 +-- .../ValidatorComponentConfiguration.java | 5 +- .../VmComponentAutoConfiguration.java | 93 +-- .../vm/springboot/VmComponentConfiguration.java | 5 +- .../XsltComponentAutoConfiguration.java | 94 +-- .../springboot/XsltComponentConfiguration.java | 5 +- .../GzipDataFormatAutoConfiguration.java | 95 +-- .../springboot/GzipDataFormatConfiguration.java | 5 +- ...erializationDataFormatAutoConfiguration.java | 98 ++-- .../SerializationDataFormatConfiguration.java | 5 +- .../StringDataFormatAutoConfiguration.java | 96 ++-- .../StringDataFormatConfiguration.java | 5 +- .../ZipDataFormatAutoConfiguration.java | 95 +-- .../springboot/ZipDataFormatConfiguration.java | 5 +- .../BeanLanguageAutoConfiguration.java | 95 +-- .../springboot/BeanLanguageConfiguration.java | 5 +- .../ConstantLanguageAutoConfiguration.java | 96 ++-- .../ConstantLanguageConfiguration.java | 5 +- .../HeaderLanguageAutoConfiguration.java | 95 +-- .../springboot/HeaderLanguageConfiguration.java | 5 +- ...changePropertyLanguageAutoConfiguration.java | 98 ++-- .../ExchangePropertyLanguageConfiguration.java | 5 +- .../RefLanguageAutoConfiguration.java | 94 +-- .../springboot/RefLanguageConfiguration.java | 5 +- .../FileLanguageAutoConfiguration.java | 95 +-- .../springboot/FileLanguageConfiguration.java | 5 +- .../SimpleLanguageAutoConfiguration.java | 95 +-- .../springboot/SimpleLanguageConfiguration.java | 5 +- .../TokenizeLanguageAutoConfiguration.java | 96 ++-- .../TokenizeLanguageConfiguration.java | 5 +- .../XMLTokenizeLanguageAutoConfiguration.java | 96 ++-- .../XMLTokenizeLanguageConfiguration.java | 5 +- .../XPathLanguageAutoConfiguration.java | 95 +-- .../springboot/XPathLanguageConfiguration.java | 5 +- .../CouchbaseComponentAutoConfiguration.java | 116 ++-- .../CouchbaseComponentConfiguration.java | 7 +- .../CouchDbComponentAutoConfiguration.java | 116 ++-- .../CouchDbComponentConfiguration.java | 7 +- ...italSignatureComponentAutoConfiguration.java | 97 ++-- .../DigitalSignatureComponentConfiguration.java | 5 +- .../CryptoDataFormatAutoConfiguration.java | 96 ++-- .../CryptoDataFormatConfiguration.java | 5 +- .../PGPDataFormatAutoConfiguration.java | 95 +-- .../springboot/PGPDataFormatConfiguration.java | 5 +- .../CsvDataFormatAutoConfiguration.java | 95 +-- .../springboot/CsvDataFormatConfiguration.java | 5 +- .../CxfRsComponentAutoConfiguration.java | 94 +-- .../springboot/CxfRsComponentConfiguration.java | 5 +- .../CxfComponentAutoConfiguration.java | 94 +-- .../springboot/CxfComponentConfiguration.java | 5 +- .../DigitalOceanComponentAutoConfiguration.java | 117 ++-- .../DigitalOceanComponentConfiguration.java | 50 ++ .../DisruptorComponentAutoConfiguration.java | 95 +-- .../DisruptorComponentConfiguration.java | 5 +- .../DisruptorVmComponentAutoConfiguration.java | 96 ++-- .../DisruptorVmComponentConfiguration.java | 5 +- .../DnsComponentAutoConfiguration.java | 116 ++-- .../springboot/DnsComponentConfiguration.java | 7 +- .../DockerComponentAutoConfiguration.java | 94 +-- .../DockerComponentConfiguration.java | 5 +- .../DozerComponentAutoConfiguration.java | 116 ++-- .../springboot/DozerComponentConfiguration.java | 7 +- .../DrillComponentAutoConfiguration.java | 116 ++-- .../springboot/DrillComponentConfiguration.java | 7 +- .../DropboxComponentAutoConfiguration.java | 116 ++-- .../DropboxComponentConfiguration.java | 7 +- .../EhcacheComponentAutoConfiguration.java | 95 +-- .../EhcacheComponentConfiguration.java | 5 +- ...ElasticsearchComponentAutoConfiguration.java | 98 ++-- .../ElasticsearchComponentConfiguration.java | 5 +- ...ElasticsearchComponentAutoConfiguration.java | 119 ++-- .../ElasticsearchComponentConfiguration.java | 7 +- .../ElsqlComponentAutoConfiguration.java | 94 +-- .../springboot/ElsqlComponentConfiguration.java | 5 +- .../EtcdComponentAutoConfiguration.java | 94 +-- .../springboot/EtcdComponentConfiguration.java | 5 +- .../ExecComponentAutoConfiguration.java | 116 ++-- .../springboot/ExecComponentConfiguration.java | 7 +- .../FacebookComponentAutoConfiguration.java | 95 +-- .../FacebookComponentConfiguration.java | 5 +- .../FlatpackComponentAutoConfiguration.java | 116 ++-- .../FlatpackComponentConfiguration.java | 7 +- .../FlatpackDataFormatAutoConfiguration.java | 96 ++-- .../FlatpackDataFormatConfiguration.java | 5 +- .../FlinkComponentAutoConfiguration.java | 94 +-- .../springboot/FlinkComponentConfiguration.java | 5 +- .../FopComponentAutoConfiguration.java | 116 ++-- .../springboot/FopComponentConfiguration.java | 7 +- .../FreemarkerComponentAutoConfiguration.java | 95 +-- .../FreemarkerComponentConfiguration.java | 5 +- .../FtpComponentAutoConfiguration.java | 116 ++-- .../springboot/FtpComponentConfiguration.java | 7 +- .../FtpsComponentAutoConfiguration.java | 94 +-- .../springboot/FtpsComponentConfiguration.java | 5 +- .../SftpComponentAutoConfiguration.java | 116 ++-- .../springboot/SftpComponentConfiguration.java | 7 +- .../GangliaComponentAutoConfiguration.java | 95 +-- .../GangliaComponentConfiguration.java | 5 +- .../GeoCoderComponentAutoConfiguration.java | 116 ++-- .../GeoCoderComponentConfiguration.java | 7 +- .../GitComponentAutoConfiguration.java | 116 ++-- .../springboot/GitComponentConfiguration.java | 7 +- .../GitHubComponentAutoConfiguration.java | 116 ++-- .../GitHubComponentConfiguration.java | 7 +- ...oogleCalendarComponentAutoConfiguration.java | 97 ++-- .../GoogleCalendarComponentConfiguration.java | 5 +- .../GoogleDriveComponentAutoConfiguration.java | 96 ++-- .../GoogleDriveComponentConfiguration.java | 5 +- .../GoogleMailComponentAutoConfiguration.java | 95 +-- .../GoogleMailComponentConfiguration.java | 5 +- .../GooglePubsubComponentAutoConfiguration.java | 96 ++-- .../GooglePubsubComponentConfiguration.java | 5 +- .../GoraComponentAutoConfiguration.java | 116 ++-- .../springboot/GoraComponentConfiguration.java | 7 +- .../GroovyLanguageAutoConfiguration.java | 95 +-- .../springboot/GroovyLanguageConfiguration.java | 5 +- .../GrpcComponentAutoConfiguration.java | 116 ++-- .../springboot/GrpcComponentConfiguration.java | 49 ++ .../GsonDataFormatAutoConfiguration.java | 95 +-- .../springboot/GsonDataFormatConfiguration.java | 5 +- ...GuavaEventBusComponentAutoConfiguration.java | 98 ++-- .../GuavaEventBusComponentConfiguration.java | 5 +- ...tAtomicnumberComponentAutoConfiguration.java | 97 ++-- ...lcastAtomicnumberComponentConfiguration.java | 5 +- ...lcastInstanceComponentAutoConfiguration.java | 97 ++-- ...HazelcastInstanceComponentConfiguration.java | 5 +- ...HazelcastListComponentAutoConfiguration.java | 98 ++-- .../HazelcastListComponentConfiguration.java | 5 +- .../HazelcastMapComponentAutoConfiguration.java | 96 ++-- .../HazelcastMapComponentConfiguration.java | 5 +- ...lcastMultimapComponentAutoConfiguration.java | 97 ++-- ...HazelcastMultimapComponentConfiguration.java | 5 +- ...azelcastQueueComponentAutoConfiguration.java | 97 ++-- .../HazelcastQueueComponentConfiguration.java | 5 +- ...ReplicatedmapComponentAutoConfiguration.java | 97 ++-- ...castReplicatedmapComponentConfiguration.java | 5 +- ...astRingbufferComponentAutoConfiguration.java | 97 ++-- ...zelcastRingbufferComponentConfiguration.java | 5 +- ...HazelcastSedaComponentAutoConfiguration.java | 98 ++-- .../HazelcastSedaComponentConfiguration.java | 5 +- .../HazelcastSetComponentAutoConfiguration.java | 96 ++-- .../HazelcastSetComponentConfiguration.java | 5 +- ...azelcastTopicComponentAutoConfiguration.java | 97 ++-- .../HazelcastTopicComponentConfiguration.java | 5 +- .../HBaseComponentAutoConfiguration.java | 94 +-- .../springboot/HBaseComponentConfiguration.java | 5 +- .../HdfsComponentAutoConfiguration.java | 94 +-- .../springboot/HdfsComponentConfiguration.java | 5 +- .../HdfsComponentAutoConfiguration.java | 94 +-- .../springboot/HdfsComponentConfiguration.java | 5 +- .../HessianDataFormatAutoConfiguration.java | 96 ++-- .../HessianDataFormatConfiguration.java | 5 +- .../HipchatComponentAutoConfiguration.java | 116 ++-- .../HipchatComponentConfiguration.java | 7 +- .../HL7DataFormatAutoConfiguration.java | 95 +-- .../springboot/HL7DataFormatConfiguration.java | 5 +- .../TerserLanguageAutoConfiguration.java | 95 +-- .../springboot/TerserLanguageConfiguration.java | 5 +- .../HttpComponentAutoConfiguration.java | 94 +-- .../springboot/HttpComponentConfiguration.java | 5 +- .../HttpComponentAutoConfiguration.java | 94 +-- .../springboot/HttpComponentConfiguration.java | 5 +- .../ICalDataFormatAutoConfiguration.java | 95 +-- .../springboot/ICalDataFormatConfiguration.java | 5 +- .../IgniteCacheComponentAutoConfiguration.java | 96 ++-- .../IgniteCacheComponentConfiguration.java | 5 +- ...IgniteComputeComponentAutoConfiguration.java | 98 ++-- .../IgniteComputeComponentConfiguration.java | 5 +- .../IgniteEventsComponentAutoConfiguration.java | 96 ++-- .../IgniteEventsComponentConfiguration.java | 5 +- .../IgniteIdGenComponentAutoConfiguration.java | 96 ++-- .../IgniteIdGenComponentConfiguration.java | 5 +- ...niteMessagingComponentAutoConfiguration.java | 97 ++-- .../IgniteMessagingComponentConfiguration.java | 5 +- .../IgniteQueueComponentAutoConfiguration.java | 96 ++-- .../IgniteQueueComponentConfiguration.java | 5 +- .../IgniteSetComponentAutoConfiguration.java | 95 +-- .../IgniteSetComponentConfiguration.java | 5 +- .../InfinispanComponentAutoConfiguration.java | 95 +-- .../InfinispanComponentConfiguration.java | 5 +- .../InfluxDbComponentAutoConfiguration.java | 116 ++-- .../InfluxDbComponentConfiguration.java | 7 +- .../IrcComponentAutoConfiguration.java | 94 +-- .../springboot/IrcComponentConfiguration.java | 5 +- .../IronMQComponentAutoConfiguration.java | 116 ++-- .../IronMQComponentConfiguration.java | 7 +- .../JacksonDataFormatAutoConfiguration.java | 96 ++-- .../JacksonDataFormatConfiguration.java | 5 +- .../JacksonXMLDataFormatAutoConfiguration.java | 96 ++-- .../JacksonXMLDataFormatConfiguration.java | 5 +- .../JavaSpaceComponentAutoConfiguration.java | 116 ++-- .../JavaSpaceComponentConfiguration.java | 7 +- .../JaxbDataFormatAutoConfiguration.java | 95 +-- .../springboot/JaxbDataFormatConfiguration.java | 5 +- .../JBPMComponentAutoConfiguration.java | 116 ++-- .../springboot/JBPMComponentConfiguration.java | 7 +- .../JCacheComponentAutoConfiguration.java | 94 +-- .../JCacheComponentConfiguration.java | 5 +- .../JcrComponentAutoConfiguration.java | 116 ++-- .../springboot/JcrComponentConfiguration.java | 7 +- .../JdbcComponentAutoConfiguration.java | 94 +-- .../springboot/JdbcComponentConfiguration.java | 5 +- .../JettyHttpComponentAutoConfiguration9.java | 95 +-- .../JettyHttpComponentConfiguration9.java | 5 +- .../JGroupsComponentAutoConfiguration.java | 95 +-- .../JGroupsComponentConfiguration.java | 5 +- .../JibxDataFormatAutoConfiguration.java | 95 +-- .../springboot/JibxDataFormatConfiguration.java | 5 +- .../JingComponentAutoConfiguration.java | 116 ++-- .../springboot/JingComponentConfiguration.java | 7 +- .../JIRAComponentAutoConfiguration.java | 116 ++-- .../springboot/JIRAComponentConfiguration.java | 7 +- .../JmsComponentAutoConfiguration.java | 94 +-- .../springboot/JmsComponentConfiguration.java | 5 +- .../JMXComponentAutoConfiguration.java | 116 ++-- .../springboot/JMXComponentConfiguration.java | 7 +- .../JohnzonDataFormatAutoConfiguration.java | 96 ++-- .../JohnzonDataFormatConfiguration.java | 5 +- .../JoltComponentAutoConfiguration.java | 94 +-- .../springboot/JoltComponentConfiguration.java | 5 +- .../SqlLanguageAutoConfiguration.java | 94 +-- .../springboot/SqlLanguageConfiguration.java | 5 +- .../JpaComponentAutoConfiguration.java | 94 +-- .../springboot/JpaComponentConfiguration.java | 5 +- .../ScpComponentAutoConfiguration.java | 94 +-- .../springboot/ScpComponentConfiguration.java | 5 +- .../JsonPathLanguageAutoConfiguration.java | 96 ++-- .../JsonPathLanguageConfiguration.java | 5 +- .../Jt400ComponentAutoConfiguration.java | 94 +-- .../springboot/Jt400ComponentConfiguration.java | 5 +- .../JuelLanguageAutoConfiguration.java | 94 +-- .../springboot/JuelLanguageConfiguration.java | 5 +- .../JXPathLanguageAutoConfiguration.java | 95 +-- .../springboot/JXPathLanguageConfiguration.java | 5 +- .../KafkaComponentAutoConfiguration.java | 94 +-- .../springboot/KafkaComponentConfiguration.java | 5 +- .../KestrelComponentAutoConfiguration.java | 95 +-- .../KestrelComponentConfiguration.java | 5 +- .../KratiComponentAutoConfiguration.java | 116 ++-- .../springboot/KratiComponentConfiguration.java | 7 +- .../KubernetesComponentAutoConfiguration.java | 116 ++-- .../KubernetesComponentConfiguration.java | 7 +- .../LdapComponentAutoConfiguration.java | 116 ++-- .../springboot/LdapComponentConfiguration.java | 7 +- .../LinkedInComponentAutoConfiguration.java | 95 +-- .../LinkedInComponentConfiguration.java | 5 +- .../LuceneComponentAutoConfiguration.java | 94 +-- .../LuceneComponentConfiguration.java | 5 +- .../LumberjackComponentAutoConfiguration.java | 95 +-- .../LumberjackComponentConfiguration.java | 5 +- .../LZFDataFormatAutoConfiguration.java | 95 +-- .../springboot/LZFDataFormatConfiguration.java | 5 +- .../MailComponentAutoConfiguration.java | 94 +-- .../springboot/MailComponentConfiguration.java | 5 +- ...imeMultipartDataFormatAutoConfiguration.java | 98 ++-- .../MimeMultipartDataFormatConfiguration.java | 5 +- .../MetricsComponentAutoConfiguration.java | 95 +-- .../MetricsComponentConfiguration.java | 5 +- .../MiloClientComponentAutoConfiguration.java | 95 +-- .../MiloClientComponentConfiguration.java | 5 +- .../MiloServerComponentAutoConfiguration.java | 95 +-- .../MiloServerComponentConfiguration.java | 5 +- .../Mina2ComponentAutoConfiguration.java | 94 +-- .../springboot/Mina2ComponentConfiguration.java | 5 +- .../MllpComponentAutoConfiguration.java | 116 ++-- .../springboot/MllpComponentConfiguration.java | 7 +- .../GridFsComponentAutoConfiguration.java | 116 ++-- .../GridFsComponentConfiguration.java | 7 +- .../MongoDbComponentAutoConfiguration.java | 116 ++-- .../MongoDbComponentConfiguration.java | 7 +- .../MongoDbComponentAutoConfiguration.java | 116 ++-- .../MongoDbComponentConfiguration.java | 7 +- .../MQTTComponentAutoConfiguration.java | 94 +-- .../springboot/MQTTComponentConfiguration.java | 5 +- .../MsvComponentAutoConfiguration.java | 94 +-- .../springboot/MsvComponentConfiguration.java | 5 +- .../MustacheComponentAutoConfiguration.java | 95 +-- .../MustacheComponentConfiguration.java | 5 +- .../MvelComponentAutoConfiguration.java | 116 ++-- .../springboot/MvelComponentConfiguration.java | 7 +- .../MvelLanguageAutoConfiguration.java | 95 +-- .../springboot/MvelLanguageConfiguration.java | 5 +- .../MyBatisComponentAutoConfiguration.java | 95 +-- .../MyBatisComponentConfiguration.java | 5 +- .../NagiosComponentAutoConfiguration.java | 94 +-- .../NagiosComponentConfiguration.java | 5 +- .../NatsComponentAutoConfiguration.java | 94 +-- .../springboot/NatsComponentConfiguration.java | 5 +- .../NettyHttpComponentAutoConfiguration.java | 95 +-- .../NettyHttpComponentConfiguration.java | 5 +- .../NettyComponentAutoConfiguration.java | 94 +-- .../springboot/NettyComponentConfiguration.java | 5 +- .../NettyHttpComponentAutoConfiguration.java | 95 +-- .../NettyHttpComponentConfiguration.java | 5 +- .../NettyComponentAutoConfiguration.java | 94 +-- .../springboot/NettyComponentConfiguration.java | 5 +- .../OgnlLanguageAutoConfiguration.java | 95 +-- .../springboot/OgnlLanguageConfiguration.java | 5 +- .../Olingo2ComponentAutoConfiguration.java | 95 +-- .../Olingo2ComponentConfiguration.java | 5 +- .../Olingo4ComponentAutoConfiguration.java | 95 +-- .../Olingo4ComponentConfiguration.java | 5 +- .../OpenShiftComponentAutoConfiguration.java | 95 +-- .../OpenShiftComponentConfiguration.java | 5 +- .../CinderComponentAutoConfiguration.java | 116 ++-- .../CinderComponentConfiguration.java | 7 +- .../GlanceComponentAutoConfiguration.java | 116 ++-- .../GlanceComponentConfiguration.java | 7 +- .../KeystoneComponentAutoConfiguration.java | 116 ++-- .../KeystoneComponentConfiguration.java | 7 +- .../NeutronComponentAutoConfiguration.java | 116 ++-- .../NeutronComponentConfiguration.java | 7 +- .../NovaComponentAutoConfiguration.java | 116 ++-- .../springboot/NovaComponentConfiguration.java | 7 +- .../SwiftComponentAutoConfiguration.java | 116 ++-- .../springboot/SwiftComponentConfiguration.java | 7 +- .../OptaPlannerComponentAutoConfiguration.java | 117 ++-- .../OptaPlannerComponentConfiguration.java | 7 +- .../PahoComponentAutoConfiguration.java | 94 +-- .../springboot/PahoComponentConfiguration.java | 5 +- .../PdfComponentAutoConfiguration.java | 116 ++-- .../springboot/PdfComponentConfiguration.java | 7 +- .../PgEventComponentAutoConfiguration.java | 116 ++-- .../PgEventComponentConfiguration.java | 7 +- .../PrinterComponentAutoConfiguration.java | 116 ++-- .../PrinterComponentConfiguration.java | 7 +- .../ProtobufDataFormatAutoConfiguration.java | 96 ++-- .../ProtobufDataFormatConfiguration.java | 5 +- .../PubNubComponentAutoConfiguration.java | 116 ++-- .../PubNubComponentConfiguration.java | 50 ++ .../QuartzComponentAutoConfiguration.java | 94 +-- .../QuartzComponentConfiguration.java | 5 +- .../QuickfixjComponentAutoConfiguration.java | 95 +-- .../QuickfixjComponentConfiguration.java | 5 +- .../RabbitMQComponentAutoConfiguration.java | 116 ++-- .../RabbitMQComponentConfiguration.java | 7 +- ...activeStreamsComponentAutoConfiguration.java | 97 ++-- .../ReactiveStreamsComponentConfiguration.java | 5 +- .../RestSwaggerComponentAutoConfiguration.java | 96 ++-- .../RestSwaggerComponentConfiguration.java | 5 +- .../RestletComponentAutoConfiguration.java | 95 +-- .../RestletComponentConfiguration.java | 5 +- .../RmiComponentAutoConfiguration.java | 116 ++-- .../springboot/RmiComponentConfiguration.java | 7 +- .../RouteboxComponentAutoConfiguration.java | 116 ++-- .../RouteboxComponentConfiguration.java | 7 +- .../RssComponentAutoConfiguration.java | 116 ++-- .../springboot/RssComponentConfiguration.java | 7 +- .../RssDataFormatAutoConfiguration.java | 95 +-- .../springboot/RssDataFormatConfiguration.java | 5 +- .../SalesforceComponentAutoConfiguration.java | 95 +-- .../SalesforceComponentConfiguration.java | 5 +- .../NetWeaverComponentAutoConfiguration.java | 116 ++-- .../NetWeaverComponentConfiguration.java | 7 +- .../XQueryComponentAutoConfiguration.java | 94 +-- .../XQueryComponentConfiguration.java | 5 +- .../XQueryLanguageAutoConfiguration.java | 95 +-- .../springboot/XQueryLanguageConfiguration.java | 5 +- .../SchematronComponentAutoConfiguration.java | 116 ++-- .../SchematronComponentConfiguration.java | 7 +- .../JavaScriptLanguageAutoConfiguration.java | 96 ++-- .../JavaScriptLanguageConfiguration.java | 5 +- .../PhpLanguageAutoConfiguration.java | 94 +-- .../springboot/PhpLanguageConfiguration.java | 5 +- .../PythonLanguageAutoConfiguration.java | 95 +-- .../springboot/PythonLanguageConfiguration.java | 5 +- .../RubyLanguageAutoConfiguration.java | 95 +-- .../springboot/RubyLanguageConfiguration.java | 5 +- .../ServiceNowComponentAutoConfiguration.java | 95 +-- .../ServiceNowComponentConfiguration.java | 5 +- .../ServletComponentAutoConfiguration.java | 95 +-- .../ServletComponentConfiguration.java | 5 +- .../SipComponentAutoConfiguration.java | 116 ++-- .../springboot/SipComponentConfiguration.java | 7 +- .../SjmsBatchComponentAutoConfiguration.java | 95 +-- .../SjmsBatchComponentConfiguration.java | 5 +- .../SjmsComponentAutoConfiguration.java | 94 +-- .../springboot/SjmsComponentConfiguration.java | 5 +- .../Sjms2ComponentAutoConfiguration.java | 94 +-- .../springboot/Sjms2ComponentConfiguration.java | 5 +- .../SlackComponentAutoConfiguration.java | 94 +-- .../springboot/SlackComponentConfiguration.java | 5 +- .../SmppComponentAutoConfiguration.java | 94 +-- .../springboot/SmppComponentConfiguration.java | 5 +- .../SnakeYAMLDataFormatAutoConfiguration.java | 96 ++-- .../SnakeYAMLDataFormatConfiguration.java | 5 +- .../SnmpComponentAutoConfiguration.java | 116 ++-- .../springboot/SnmpComponentConfiguration.java | 7 +- .../SoapJaxbDataFormatAutoConfiguration.java | 96 ++-- .../SoapJaxbDataFormatConfiguration.java | 5 +- .../SolrComponentAutoConfiguration.java | 116 ++-- .../springboot/SolrComponentConfiguration.java | 49 ++ .../SparkComponentAutoConfiguration.java | 94 +-- .../springboot/SparkComponentConfiguration.java | 5 +- .../SplunkComponentAutoConfiguration.java | 94 +-- .../SplunkComponentConfiguration.java | 5 +- .../SpringBatchComponentAutoConfiguration.java | 96 ++-- .../SpringBatchComponentConfiguration.java | 5 +- ...ngIntegrationComponentAutoConfiguration.java | 119 ++-- ...SpringIntegrationComponentConfiguration.java | 7 +- .../SpringLdapComponentAutoConfiguration.java | 116 ++-- .../SpringLdapComponentConfiguration.java | 7 +- .../RedisComponentAutoConfiguration.java | 116 ++-- .../springboot/RedisComponentConfiguration.java | 7 +- .../EventComponentAutoConfiguration.java | 116 ++-- .../springboot/EventComponentConfiguration.java | 20 +- .../SpelLanguageAutoConfiguration.java | 95 +-- .../springboot/SpelLanguageConfiguration.java | 5 +- ...ingWebserviceComponentAutoConfiguration.java | 97 ++-- .../SpringWebserviceComponentConfiguration.java | 5 +- .../SqlComponentAutoConfiguration.java | 94 +-- .../springboot/SqlComponentConfiguration.java | 5 +- .../SqlStoredComponentAutoConfiguration.java | 95 +-- .../SqlStoredComponentConfiguration.java | 5 +- .../SshComponentAutoConfiguration.java | 94 +-- .../springboot/SshComponentConfiguration.java | 5 +- .../StAXComponentAutoConfiguration.java | 116 ++-- .../springboot/StAXComponentConfiguration.java | 7 +- .../StompComponentAutoConfiguration.java | 94 +-- .../springboot/StompComponentConfiguration.java | 5 +- .../StreamComponentAutoConfiguration.java | 116 ++-- .../StreamComponentConfiguration.java | 7 +- ...tringTemplateComponentAutoConfiguration.java | 119 ++-- .../StringTemplateComponentConfiguration.java | 7 +- .../SyslogDataFormatAutoConfiguration.java | 96 ++-- .../SyslogDataFormatConfiguration.java | 5 +- .../TidyMarkupDataFormatAutoConfiguration.java | 96 ++-- .../TidyMarkupDataFormatConfiguration.java | 5 +- .../TarFileDataFormatAutoConfiguration.java | 96 ++-- .../TarFileDataFormatConfiguration.java | 5 +- .../TelegramComponentAutoConfiguration.java | 95 +-- .../TelegramComponentConfiguration.java | 5 +- .../TikaComponentAutoConfiguration.java | 116 ++-- .../springboot/TikaComponentConfiguration.java | 7 +- .../TwitterComponentAutoConfiguration.java | 95 +-- .../TwitterComponentConfiguration.java | 5 +- .../UndertowComponentAutoConfiguration.java | 95 +-- .../UndertowComponentConfiguration.java | 5 +- ...UniVocityCsvDataFormatAutoConfiguration.java | 98 ++-- .../UniVocityCsvDataFormatConfiguration.java | 5 +- ...tyFixedWidthDataFormatAutoConfiguration.java | 98 ++-- ...VocityFixedWidthDataFormatConfiguration.java | 5 +- ...UniVocityTsvDataFormatAutoConfiguration.java | 98 ++-- .../UniVocityTsvDataFormatConfiguration.java | 5 +- .../VelocityComponentAutoConfiguration.java | 95 +-- .../VelocityComponentConfiguration.java | 5 +- .../VertxComponentAutoConfiguration.java | 94 +-- .../springboot/VertxComponentConfiguration.java | 5 +- .../WeatherComponentAutoConfiguration.java | 116 ++-- .../WeatherComponentConfiguration.java | 7 +- .../WebsocketComponentAutoConfiguration.java | 95 +-- .../WebsocketComponentConfiguration.java | 5 +- .../XmlBeansDataFormatAutoConfiguration.java | 96 ++-- .../XmlBeansDataFormatConfiguration.java | 5 +- .../XmlJsonDataFormatAutoConfiguration.java | 96 ++-- .../XmlJsonDataFormatConfiguration.java | 5 +- .../XmlRpcComponentAutoConfiguration.java | 116 ++-- .../XmlRpcComponentConfiguration.java | 7 +- .../XmlRpcDataFormatAutoConfiguration.java | 96 ++-- .../XmlRpcDataFormatConfiguration.java | 5 +- .../XmlSignatureComponentAutoConfiguration.java | 96 ++-- .../XmlSignatureComponentConfiguration.java | 5 +- .../XMLSecurityDataFormatAutoConfiguration.java | 96 ++-- .../XMLSecurityDataFormatConfiguration.java | 5 +- .../XmppComponentAutoConfiguration.java | 116 ++-- .../springboot/XmppComponentConfiguration.java | 7 +- .../JsonDataFormatAutoConfiguration.java | 95 +-- .../springboot/JsonDataFormatConfiguration.java | 5 +- .../XStreamDataFormatAutoConfiguration.java | 96 ++-- .../XStreamDataFormatConfiguration.java | 5 +- .../YammerComponentAutoConfiguration.java | 94 +-- .../YammerComponentConfiguration.java | 5 +- .../ZendeskComponentAutoConfiguration.java | 95 +-- .../ZendeskComponentConfiguration.java | 5 +- .../ZipFileDataFormatAutoConfiguration.java | 96 ++-- .../ZipFileDataFormatConfiguration.java | 5 +- .../MasterComponentAutoConfiguration.java | 94 +-- .../MasterComponentConfiguration.java | 5 +- .../ZooKeeperComponentAutoConfiguration.java | 95 +-- .../ZooKeeperComponentConfiguration.java | 5 +- .../SpringBootAutoConfigurationMojo.java | 571 +++++++++++++------ 629 files changed, 22233 insertions(+), 12249 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/camel-core/src/main/java/org/apache/camel/spi/ComponentCustomizer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/ComponentCustomizer.java b/camel-core/src/main/java/org/apache/camel/spi/ComponentCustomizer.java new file mode 100644 index 0000000..febad71 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/spi/ComponentCustomizer.java @@ -0,0 +1,29 @@ +/** + * 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.spi; + +import org.apache.camel.Component; + +@FunctionalInterface +public interface ComponentCustomizer<T extends Component> { + /** + * Customize the specified {@link Component}. + * + * @param component the component to customize + */ + void customize(T component); +} http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/camel-core/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java b/camel-core/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java new file mode 100644 index 0000000..bee9e22 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/spi/DataFormatCustomizer.java @@ -0,0 +1,27 @@ +/** + * 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.spi; + +@FunctionalInterface +public interface DataFormatCustomizer<T extends DataFormat> { + /** + * Customize the specified {@link DataFormat} + * + * @param dataformat the dataformat to customize + */ + void customize(T dataformat); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/camel-core/src/main/java/org/apache/camel/spi/LanguageCustomizer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/LanguageCustomizer.java b/camel-core/src/main/java/org/apache/camel/spi/LanguageCustomizer.java new file mode 100644 index 0000000..fa596bf --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/spi/LanguageCustomizer.java @@ -0,0 +1,27 @@ +/** + * 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.spi; + +@FunctionalInterface +public interface LanguageCustomizer<T extends Language> { + /** + * Customize the specified {@link Language} + * + * @param language the language to customize + */ + void customize(T language); +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationProperties.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationProperties.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationProperties.java index 804dc45..e6d7db4 100644 --- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationProperties.java +++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationProperties.java @@ -14,20 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.camel.spring.boot; import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "camel.component") -public class ComponentConfigurationProperties { - private boolean enabled = true; - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } +public class ComponentConfigurationProperties extends ComponentConfigurationPropertiesCommon { } http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationPropertiesCommon.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationPropertiesCommon.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationPropertiesCommon.java new file mode 100644 index 0000000..1655bd4 --- /dev/null +++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/ComponentConfigurationPropertiesCommon.java @@ -0,0 +1,60 @@ +/** + * 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.spring.boot; + +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +public class ComponentConfigurationPropertiesCommon { + /** + * Global option to enable/disable component auto-configuration, default is true. + */ + private boolean enabled = true; + + @NestedConfigurationProperty + private ConfigurerProperties configurer = new ConfigurerProperties(); + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public ConfigurerProperties getConfigurer() { + return configurer; + } + + // ******************************** + // Configurer + // ******************************** + + public class ConfigurerProperties { + /** + * Global option to enable/disable component configurers, default is true. + */ + private boolean enabled = true; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationProperties.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationProperties.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationProperties.java index 5c0e3d8..0805565 100644 --- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationProperties.java +++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationProperties.java @@ -14,20 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.camel.spring.boot; import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "camel.dataformat") -public class DataFormatConfigurationProperties { - private boolean enabled = true; - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } +public class DataFormatConfigurationProperties extends DataFormatConfigurationPropertiesCommon { } http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationPropertiesCommon.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationPropertiesCommon.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationPropertiesCommon.java new file mode 100644 index 0000000..0589ff3 --- /dev/null +++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/DataFormatConfigurationPropertiesCommon.java @@ -0,0 +1,60 @@ +/** + * 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.spring.boot; + +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +public class DataFormatConfigurationPropertiesCommon { + /** + * Global option to enable/disable dataformat auto-configuration, default is true. + */ + private boolean enabled = true; + + @NestedConfigurationProperty + private ConfigurerProperties configurer = new ConfigurerProperties(); + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public ConfigurerProperties getConfigurer() { + return configurer; + } + + // ******************************** + // Configurer + // ******************************** + + public class ConfigurerProperties { + /** + * Global option to enable/disable dataformat configurers, default is true. + */ + private boolean enabled = true; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationProperties.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationProperties.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationProperties.java index d577a3a..9e09089 100644 --- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationProperties.java +++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationProperties.java @@ -14,20 +14,10 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.camel.spring.boot; import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "camel.language") -public class LanguageConfigurationProperties { - private boolean enabled = true; - - public boolean isEnabled() { - return enabled; - } - - public void setEnabled(boolean enabled) { - this.enabled = enabled; - } +public class LanguageConfigurationProperties extends LanguageConfigurationPropertiesCommon { } http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationPropertiesCommon.java ---------------------------------------------------------------------- diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationPropertiesCommon.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationPropertiesCommon.java new file mode 100644 index 0000000..133bfe1 --- /dev/null +++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/LanguageConfigurationPropertiesCommon.java @@ -0,0 +1,60 @@ +/** + * 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.spring.boot; + +import org.springframework.boot.context.properties.NestedConfigurationProperty; + +public class LanguageConfigurationPropertiesCommon { + /** + * Global option to enable/disable language auto-configuration, default is true. + */ + private boolean enabled = true; + + @NestedConfigurationProperty + private ConfigurerProperties configurer = new ConfigurerProperties(); + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public ConfigurerProperties getConfigurer() { + return configurer; + } + + // ******************************** + // Configurer + // ******************************** + + public class ConfigurerProperties { + /** + * Global option to enable/disable language configurers, default is true. + */ + private boolean enabled = true; + + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java index 671810a..318db22 100644 --- a/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentAutoConfiguration.java @@ -17,49 +17,81 @@ package org.apache.camel.component.ahc.springboot; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.annotation.Generated; import org.apache.camel.CamelContext; import org.apache.camel.component.ahc.AhcComponent; +import org.apache.camel.spi.ComponentCustomizer; +import org.apache.camel.spring.boot.CamelAutoConfiguration; +import org.apache.camel.spring.boot.ComponentConfigurationProperties; +import org.apache.camel.spring.boot.util.GroupCondition; import org.apache.camel.util.IntrospectionSupport; +import org.apache.camel.util.ObjectHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionMessage; -import org.springframework.boot.autoconfigure.condition.ConditionOutcome; +import org.springframework.boot.autoconfigure.condition.AllNestedConditions; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.SpringBootCondition; -import org.springframework.boot.bind.RelaxedPropertyResolver; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ConditionContext; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; -import org.springframework.core.type.AnnotatedTypeMetadata; /** * Generated by camel-package-maven-plugin - do not edit this file! */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @Configuration -@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration") @Conditional(AhcComponentAutoConfiguration.Condition.class) -@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration") -@EnableConfigurationProperties(AhcComponentConfiguration.class) -public class AhcComponentAutoConfiguration { +@AutoConfigureAfter(CamelAutoConfiguration.class) +@EnableConfigurationProperties({ComponentConfigurationProperties.class, + AhcComponentConfiguration.class}) +public class AhcComponentAutoConfiguration extends AllNestedConditions { + + private static final Logger LOGGER = LoggerFactory + .getLogger(AhcComponentAutoConfiguration.class); + @Autowired + private CamelContext camelContext; + @Autowired(required = false) + private List<ComponentCustomizer<AhcComponent>> customizers; + @Autowired + private ComponentConfigurationProperties globalConfiguration; + @Autowired + private AhcComponentConfiguration componentConfiguration; + + public AhcComponentAutoConfiguration() { + super(ConfigurationPhase.REGISTER_BEAN); + } + + @ConditionalOnBean(CamelContext.class) + public static class OnCamelContext { + } + + @ConditionalOnBean(CamelAutoConfiguration.class) + public static class OnCamelAutoConfiguration { + } + + public static class Condition extends GroupCondition { + public Condition() { + super("camel.component", "camel.component.ahc"); + } + } @Lazy @Bean(name = "ahc-component") @ConditionalOnClass(CamelContext.class) @ConditionalOnMissingBean(AhcComponent.class) - public AhcComponent configureAhcComponent(CamelContext camelContext, - AhcComponentConfiguration configuration) throws Exception { + public AhcComponent configureAhcComponent() throws Exception { AhcComponent component = new AhcComponent(); component.setCamelContext(camelContext); Map<String, Object> parameters = new HashMap<>(); - IntrospectionSupport.getProperties(configuration, parameters, null, - false); + IntrospectionSupport.getProperties(componentConfiguration, parameters, + null, false); for (Map.Entry<String, Object> entry : parameters.entrySet()) { Object value = entry.getValue(); Class<?> paramClass = value.getClass(); @@ -82,32 +114,16 @@ public class AhcComponentAutoConfiguration { } IntrospectionSupport.setProperties(camelContext, camelContext.getTypeConverter(), component, parameters); - return component; - } - - @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") - public static class Condition extends SpringBootCondition { - @Override - public ConditionOutcome getMatchOutcome( - ConditionContext conditionContext, - AnnotatedTypeMetadata annotatedTypeMetadata) { - boolean groupEnabled = isEnabled(conditionContext, - "camel.component.", true); - ConditionMessage.Builder message = ConditionMessage - .forCondition("camel.component.ahc"); - if (isEnabled(conditionContext, "camel.component.ahc.", - groupEnabled)) { - return ConditionOutcome.match(message.because("enabled")); + boolean useConfigurers = globalConfiguration.getConfigurer() + .isEnabled() + && componentConfiguration.getConfigurer().isEnabled(); + if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) { + for (ComponentCustomizer<AhcComponent> configurer : customizers) { + LOGGER.debug("Configure component {}, with configurer {}", + component, configurer); + configurer.customize(component); } - return ConditionOutcome.noMatch(message.because("not enabled")); - } - - private boolean isEnabled( - org.springframework.context.annotation.ConditionContext context, - java.lang.String prefix, boolean defaultValue) { - RelaxedPropertyResolver resolver = new RelaxedPropertyResolver( - context.getEnvironment(), prefix); - return resolver.getProperty("enabled", Boolean.class, defaultValue); } + return component; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java index b810679..e51b907 100644 --- a/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-ahc-starter/src/main/java/org/apache/camel/component/ahc/springboot/AhcComponentConfiguration.java @@ -19,6 +19,7 @@ package org.apache.camel.component.ahc.springboot; import javax.annotation.Generated; import org.apache.camel.component.ahc.AhcBinding; import org.apache.camel.spi.HeaderFilterStrategy; +import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon; import org.apache.camel.util.jsse.SSLContextParameters; import org.asynchttpclient.AsyncHttpClient; import org.asynchttpclient.AsyncHttpClientConfig; @@ -32,7 +33,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty; */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @ConfigurationProperties(prefix = "camel.component.ahc") -public class AhcComponentConfiguration { +public class AhcComponentConfiguration + extends + ComponentConfigurationPropertiesCommon { /** * To use a custom AsyncHttpClient http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java index d370983..7790e63 100644 --- a/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentAutoConfiguration.java @@ -17,49 +17,81 @@ package org.apache.camel.component.ahc.ws.springboot; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.annotation.Generated; import org.apache.camel.CamelContext; import org.apache.camel.component.ahc.ws.WsComponent; +import org.apache.camel.spi.ComponentCustomizer; +import org.apache.camel.spring.boot.CamelAutoConfiguration; +import org.apache.camel.spring.boot.ComponentConfigurationProperties; +import org.apache.camel.spring.boot.util.GroupCondition; import org.apache.camel.util.IntrospectionSupport; +import org.apache.camel.util.ObjectHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionMessage; -import org.springframework.boot.autoconfigure.condition.ConditionOutcome; +import org.springframework.boot.autoconfigure.condition.AllNestedConditions; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.SpringBootCondition; -import org.springframework.boot.bind.RelaxedPropertyResolver; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ConditionContext; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; -import org.springframework.core.type.AnnotatedTypeMetadata; /** * Generated by camel-package-maven-plugin - do not edit this file! */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @Configuration -@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration") @Conditional(WsComponentAutoConfiguration.Condition.class) -@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration") -@EnableConfigurationProperties(WsComponentConfiguration.class) -public class WsComponentAutoConfiguration { +@AutoConfigureAfter(CamelAutoConfiguration.class) +@EnableConfigurationProperties({ComponentConfigurationProperties.class, + WsComponentConfiguration.class}) +public class WsComponentAutoConfiguration extends AllNestedConditions { + + private static final Logger LOGGER = LoggerFactory + .getLogger(WsComponentAutoConfiguration.class); + @Autowired + private CamelContext camelContext; + @Autowired(required = false) + private List<ComponentCustomizer<WsComponent>> customizers; + @Autowired + private ComponentConfigurationProperties globalConfiguration; + @Autowired + private WsComponentConfiguration componentConfiguration; + + public WsComponentAutoConfiguration() { + super(ConfigurationPhase.REGISTER_BEAN); + } + + @ConditionalOnBean(CamelContext.class) + public static class OnCamelContext { + } + + @ConditionalOnBean(CamelAutoConfiguration.class) + public static class OnCamelAutoConfiguration { + } + + public static class Condition extends GroupCondition { + public Condition() { + super("camel.component", "camel.component.ahc-ws"); + } + } @Lazy @Bean(name = {"ahc-ws-component", "ahc-wss-component"}) @ConditionalOnClass(CamelContext.class) @ConditionalOnMissingBean(WsComponent.class) - public WsComponent configureWsComponent(CamelContext camelContext, - WsComponentConfiguration configuration) throws Exception { + public WsComponent configureWsComponent() throws Exception { WsComponent component = new WsComponent(); component.setCamelContext(camelContext); Map<String, Object> parameters = new HashMap<>(); - IntrospectionSupport.getProperties(configuration, parameters, null, - false); + IntrospectionSupport.getProperties(componentConfiguration, parameters, + null, false); for (Map.Entry<String, Object> entry : parameters.entrySet()) { Object value = entry.getValue(); Class<?> paramClass = value.getClass(); @@ -82,32 +114,16 @@ public class WsComponentAutoConfiguration { } IntrospectionSupport.setProperties(camelContext, camelContext.getTypeConverter(), component, parameters); - return component; - } - - @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") - public static class Condition extends SpringBootCondition { - @Override - public ConditionOutcome getMatchOutcome( - ConditionContext conditionContext, - AnnotatedTypeMetadata annotatedTypeMetadata) { - boolean groupEnabled = isEnabled(conditionContext, - "camel.component.", true); - ConditionMessage.Builder message = ConditionMessage - .forCondition("camel.component.ahc-ws"); - if (isEnabled(conditionContext, "camel.component.ahc-ws.", - groupEnabled)) { - return ConditionOutcome.match(message.because("enabled")); + boolean useConfigurers = globalConfiguration.getConfigurer() + .isEnabled() + && componentConfiguration.getConfigurer().isEnabled(); + if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) { + for (ComponentCustomizer<WsComponent> configurer : customizers) { + LOGGER.debug("Configure component {}, with configurer {}", + component, configurer); + configurer.customize(component); } - return ConditionOutcome.noMatch(message.because("not enabled")); - } - - private boolean isEnabled( - org.springframework.context.annotation.ConditionContext context, - java.lang.String prefix, boolean defaultValue) { - RelaxedPropertyResolver resolver = new RelaxedPropertyResolver( - context.getEnvironment(), prefix); - return resolver.getProperty("enabled", Boolean.class, defaultValue); } + return component; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java index 25dea26..04bc81f 100644 --- a/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-ahc-ws-starter/src/main/java/org/apache/camel/component/ahc/ws/springboot/WsComponentConfiguration.java @@ -19,6 +19,7 @@ package org.apache.camel.component.ahc.ws.springboot; import javax.annotation.Generated; import org.apache.camel.component.ahc.AhcBinding; import org.apache.camel.spi.HeaderFilterStrategy; +import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon; import org.apache.camel.util.jsse.SSLContextParameters; import org.asynchttpclient.AsyncHttpClient; import org.asynchttpclient.AsyncHttpClientConfig; @@ -32,7 +33,9 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty; */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @ConfigurationProperties(prefix = "camel.component.ahc-ws") -public class WsComponentConfiguration { +public class WsComponentConfiguration + extends + ComponentConfigurationPropertiesCommon { /** * To use a custom AsyncHttpClient http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java index 1805ce2..3054735 100644 --- a/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentAutoConfiguration.java @@ -17,49 +17,81 @@ package org.apache.camel.component.amqp.springboot; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.annotation.Generated; import org.apache.camel.CamelContext; import org.apache.camel.component.amqp.AMQPComponent; +import org.apache.camel.spi.ComponentCustomizer; +import org.apache.camel.spring.boot.CamelAutoConfiguration; +import org.apache.camel.spring.boot.ComponentConfigurationProperties; +import org.apache.camel.spring.boot.util.GroupCondition; import org.apache.camel.util.IntrospectionSupport; +import org.apache.camel.util.ObjectHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; -import org.springframework.boot.autoconfigure.condition.ConditionMessage; -import org.springframework.boot.autoconfigure.condition.ConditionOutcome; +import org.springframework.boot.autoconfigure.condition.AllNestedConditions; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.boot.autoconfigure.condition.SpringBootCondition; -import org.springframework.boot.bind.RelaxedPropertyResolver; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ConditionContext; import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; -import org.springframework.core.type.AnnotatedTypeMetadata; /** * Generated by camel-package-maven-plugin - do not edit this file! */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @Configuration -@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration") @Conditional(AMQPComponentAutoConfiguration.Condition.class) -@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration") -@EnableConfigurationProperties(AMQPComponentConfiguration.class) -public class AMQPComponentAutoConfiguration { +@AutoConfigureAfter(CamelAutoConfiguration.class) +@EnableConfigurationProperties({ComponentConfigurationProperties.class, + AMQPComponentConfiguration.class}) +public class AMQPComponentAutoConfiguration extends AllNestedConditions { + + private static final Logger LOGGER = LoggerFactory + .getLogger(AMQPComponentAutoConfiguration.class); + @Autowired + private CamelContext camelContext; + @Autowired(required = false) + private List<ComponentCustomizer<AMQPComponent>> customizers; + @Autowired + private ComponentConfigurationProperties globalConfiguration; + @Autowired + private AMQPComponentConfiguration componentConfiguration; + + public AMQPComponentAutoConfiguration() { + super(ConfigurationPhase.REGISTER_BEAN); + } + + @ConditionalOnBean(CamelContext.class) + public static class OnCamelContext { + } + + @ConditionalOnBean(CamelAutoConfiguration.class) + public static class OnCamelAutoConfiguration { + } + + public static class Condition extends GroupCondition { + public Condition() { + super("camel.component", "camel.component.amqp"); + } + } @Lazy @Bean(name = "amqp-component") @ConditionalOnClass(CamelContext.class) @ConditionalOnMissingBean(AMQPComponent.class) - public AMQPComponent configureAMQPComponent(CamelContext camelContext, - AMQPComponentConfiguration configuration) throws Exception { + public AMQPComponent configureAMQPComponent() throws Exception { AMQPComponent component = new AMQPComponent(); component.setCamelContext(camelContext); Map<String, Object> parameters = new HashMap<>(); - IntrospectionSupport.getProperties(configuration, parameters, null, - false); + IntrospectionSupport.getProperties(componentConfiguration, parameters, + null, false); for (Map.Entry<String, Object> entry : parameters.entrySet()) { Object value = entry.getValue(); Class<?> paramClass = value.getClass(); @@ -82,32 +114,16 @@ public class AMQPComponentAutoConfiguration { } IntrospectionSupport.setProperties(camelContext, camelContext.getTypeConverter(), component, parameters); - return component; - } - - @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") - public static class Condition extends SpringBootCondition { - @Override - public ConditionOutcome getMatchOutcome( - ConditionContext conditionContext, - AnnotatedTypeMetadata annotatedTypeMetadata) { - boolean groupEnabled = isEnabled(conditionContext, - "camel.component.", true); - ConditionMessage.Builder message = ConditionMessage - .forCondition("camel.component.amqp"); - if (isEnabled(conditionContext, "camel.component.amqp.", - groupEnabled)) { - return ConditionOutcome.match(message.because("enabled")); + boolean useConfigurers = globalConfiguration.getConfigurer() + .isEnabled() + && componentConfiguration.getConfigurer().isEnabled(); + if (useConfigurers && ObjectHelper.isNotEmpty(customizers)) { + for (ComponentCustomizer<AMQPComponent> configurer : customizers) { + LOGGER.debug("Configure component {}, with configurer {}", + component, configurer); + configurer.customize(component); } - return ConditionOutcome.noMatch(message.because("not enabled")); - } - - private boolean isEnabled( - org.springframework.context.annotation.ConditionContext context, - java.lang.String prefix, boolean defaultValue) { - RelaxedPropertyResolver resolver = new RelaxedPropertyResolver( - context.getEnvironment(), prefix); - return resolver.getProperty("enabled", Boolean.class, defaultValue); } + return component; } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/3eeb97ac/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java ---------------------------------------------------------------------- diff --git a/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java index ff88503..ebe4f8f 100644 --- a/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java +++ b/platforms/spring-boot/components-starter/camel-amqp-starter/src/main/java/org/apache/camel/component/amqp/springboot/AMQPComponentConfiguration.java @@ -28,6 +28,7 @@ import org.apache.camel.component.jms.MessageCreatedStrategy; import org.apache.camel.component.jms.QueueBrowseStrategy; import org.apache.camel.component.jms.ReplyToType; import org.apache.camel.spi.HeaderFilterStrategy; +import org.apache.camel.spring.boot.ComponentConfigurationPropertiesCommon; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.DeprecatedConfigurationProperty; import org.springframework.boot.context.properties.NestedConfigurationProperty; @@ -45,7 +46,9 @@ import org.springframework.util.ErrorHandler; */ @Generated("org.apache.camel.maven.packaging.SpringBootAutoConfigurationMojo") @ConfigurationProperties(prefix = "camel.component.amqp") -public class AMQPComponentConfiguration { +public class AMQPComponentConfiguration + extends + ComponentConfigurationPropertiesCommon { /** * To use a shared JMS configuration