Starting with Spring Boot `2.6`, the auto-configuration
for Spring Integration introduces `poller` properties.
The `DefaultPollerProperties` and its respective `ChannelBindingAutoConfiguration` are not needed any more.
* Add `PollerConfigEnvironmentPostProcessor` to remap deprecated
`spring.cloud.stream.poller` into respective `spring.integration.poller`
properties
* Mention in the docs a deprecation move and its replacement
Related to: https://github.com/spring-projects/spring-boot/pull/27992Resolves#2233
Now, SB can actually cache its own function based on the output contentType, effectively creating single StreamBrdge function instance per output content type
ALso, disabled one failing test and fix the polling change introduced by Spring Boot
Resolves#2221
There was an always cast to FunctionInvocationWrapper even though in the case of nativeEncoding the function was not of that instance. This fixes it.
Resolves#2101
This will ensure that any exception that is thrown during the conversion by ApplicationJsonMessageMarshallingConverter are propagated. Basically the idea is that since MessageConverter has accepted the conversion via canConvert() method it is no longer necessary to expect that may be some other converter in the stack may succeed. And on top of that user can still define custom message converter
Resolves#2129Resolves#2191
Currently, when `StreamBridge` creates an output binding, the framework
applies all the available channel interceptors on it by default. This
creates unwanted side effects and the application does not have a way
to control this. Change this behavior by only applying channel interceptors
annoatated with `@GlobalChannelInterceptor`. This way, the user can
provide patterns to decide which interceptors need to be applied on
specific `StreamBridge` bindings.
Adding tests to verify.
Adding docs.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2180