Support for consumers defined in application.properties using spring.cloud.function methods
Describe the feature request A clear and concise description of what you want to happen.
The "newer" implementation of rabbit/spring cloud stream listeners makes use of spring cloud functions to consume messages with the binding between queues and the method matching on the method name with properties defined in application properties. This library should be able to automatically find these consumers and produce documentation for them.
Motivation Please describe the motivation for adding this feature (what do you feel is missing, why do you think this enhancement is a good idea etc.)
This is required for continued support of automatically documenting consumers using the more-modern definition pattern.
Technical details If possible, add technical details like design, implementation, etc. Any idea is welcome!
"Consumer" methods are defined as beans as follows: @Bean public Consumer<SomeMessageObject> messageReceiptConsumer() { }
queue/binding information is defined in application.properties in the following way: spring.cloud.stream.bindings.exampleNewConsumerMethod-in-0.destination=exchangeName spring.cloud.stream.bindings.exampleNewConsumerMethod-in-0.group=example-new-bindings-queue spring.cloud.stream.rabbit.bindings.exampleNewConsumerMethod-in-0.consumer.bindingRoutingKey=binding.new.routing.key
note: not all of these properties are required and spring has a way of automatically creating queue/exchange names when not present. I don't know for sure, but I believe at least one of these properties is required for binding to occur.
More information on the spring properties supported can be found here: https://docs.spring.io/spring-cloud-stream/docs/current/reference/html/spring-cloud-stream-binder-rabbit.html#spring-cloud-stream-binder-rabbit-reference
Describe alternatives you've considered Supporting manual definition of consumers like producers are defined.