- When @Configuration or @Component style beans are used in Kafka Streams
binder applications, there exists a regression that prevents the binder
infrastructure to correctly detect the beans. Addressing this issue.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2846
- In child test contexts, we are not able to set the logging levels
and this affects certain AOT integration tests. This does not seem
to be an issue in real applications. Adjust the logging levels
becasue of this in BinderChildContextInitializer and related classes.
- Re-enable BinderChildContextInitializerTests
- Add KafkaStreams related native hints (Note: Once we add the
Kafka Streams specific 3rd party hints to the reachability
metadata repository, we will remove those hints from the binder)
- Related changes in DefaultBinderFactory
- KafkaStreamsBindableProxyFactory changes triggered by AOT/native
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2323
Addressing PR review comments
Resolves#2832
- When using multi-binders with custom binders and running in AOT mode,
there is a regression that is causing some issues for propertly
identifying the binders during the AOT phase. It forces the users
to provide property in the form of `spring.cloud.stream.binders.binders...`
Fixing this issue by properly binding the custom binders in BinderChildContextInitializer.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2828Resolves#2834
Since exception is not propogated, adding a trace log allows an optional way for a developer to utilize the defaultRecoverer and still do some basic review of a given exception.
- When native encoding is used, StreamBridge is not setting
partitioning interceptor which calls the PartitionHandler.
This is a regression issue and adding the interceptor explicitly
when native encoding is used.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2815Resolves#2831
- When there are two methods with the same name but with different type erasures,
Kafka Streams binder sometimes detects the incorrect method. Fixing this issue
by specifically type checking the return type for Kafka Streams types.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2817
- When Kafka Streams branching function is provided as a Component bean,
there is an issue where the raw class check on the return outbound
resolvable type cuases an NPE. Fixing this issue by adding a null check
on the return type's raw class.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2821
- When event-type routing is enabled in Kafka Streams binder
and conurrency > 1 is used, messages are occasionally getting
dispatched to the wrong consumer causing CCE. This is due
to a race condition caused by a shared resource across threads.
Fixing the issue by introducing a ThreadLocal variable.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2823
- Instead of using a BiFunction as a delegate, use standard Function that takes the full record
- Remove Supplier<Long> that was used to handle record time stamps since this is no longer needed
- Docs cleanup