Currently, in Kafka Streams binder-based apps, processor beans
need to be declared public. This is unnecessary and caused by
some restrictions in the binder. This PR fixes this restriction.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2516
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2510
New feature on RabbitMQ (Super Stream with Single Active Consumer) enables
scaling out app instances when using this queue type/config.
`RabbitStreamMessageHandler` is now available in Spring Integration.
This commit establishes the concept of binder identity (binder instance identity) to be used in cases where unique-to-the-binder-instance naming is required.
For example such naming is required to fix GH-2507 where error channel names could colide if two binders use the same destination name.
Resolves#2512Resolves#2507
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2485
These improvements are threading related
Initial implementation
Readd missing 'cache' for recent offset lags and general refactoring
Add a test case for the schedule-only variant and externalize scheduling interval
Consistency of configuration property naming and minor cleanup of existing code
Review feedback: documentation, author addition and copyright adjustments
Doc wording changes
Fix checkstyle issues
Adjust reference doc and improve new property names according to review
Move documentation to the correct file
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2453
Previously, to configure the use of an alternative exchange (used to route
messages when no queue is bound), the user had to manually declare the
exchange and any bindings, and modify the destination exchange using a
`DeclarablesCustomizer` bean.
Add first class support to configure the destination exchange and, optionally,
provision the alternate exchange as well as optionally binding a specific
queue to it.
Resolves#2502
Previously, when running in AOT mode the binder child context
was created w/ the same beans as when in JVM mode. The whole
point of the former is to static initialize an empty fresh context
using the AOT generated initializer.
Adapts to the following changes in upstreams libs:
- Spring Kafka removed ListenableFuture
- Spring AOT changed generator API
Fixes#2473#2465
Checkstyle fixes