Fixes: https://github.com/spring-cloud/spring-cloud-stream/issues/2882
When providing schema registry SSL truststore and keystore properties
as classpath URL's under Kafka binder configuration, the transformations
of them into corresponding filesystem URL's are not currenlty propagated
into producerProperties and consumerProperties under binder configuration.
This is ncessary for certain serializer/deserializer to work.
See the related GH issue for more context on this.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2883
When an applicaiton provides a custom errorChannel bean that is not of type
`PublishSubscribeChannel`, the application fails to start with a CCE. This is
because `BindingServiceConfiguration` uses a hard cast on `PublishSubscribeChannel`
without pre-checking the channel type. Fixing this issue.
Fixes https://github.com/spring-cloud/spring-cloud-stream/issues/2885
The `DirectWithAttributesChannel` used by `StreamBridge` is missing naming
information. Adding the proper application context and component name data
to the channel so that it is able to construct a name when queried.
The expectation is like this `Binder<T, C extends ConsumerProperties, P extends ProducerProperties>`
so, the `BinderCustomizer` must be in extension bounds as well.
* Move Javadocs from the `BinderCustomizer.customize()` to the class level
* Add `BinderCustomizer` verification to the `KafkaConfigCustomizationTests`
Fixes https://github.com/spring-cloud/spring-cloud-stream/issues/2794
The custom ObjectMapper used in AMCB is unable to serialize java.time.Duration
values. To fix this, the ObjectMapper needs to register the JavaTimeModule from
the jackson-datatype-jsr310 libarary.
Adding a test to verify the fix.
- When closing multi-binder contexts, the application throws a StackOverflow error
due to an unnecessary addition of the binder child context as a separate bean
in the main context. This was done previously for testing purposes.
- Disabling the affected tests in the Pulsar binder until we come up with a
different solution.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2870
- When there are multiple output bindings present and one of them defines
a routing-key-expression, there is a bug that bypasses the code that skips
the output conversion. This results in the framework attempts a pre-mature
type conversion causing in later downstream errors. This happens because
MessageConverterConfigurer tries to find a corresponding function for the
entire function definition rather than using the individual function under
consideraion. Fixing this issue by properly keeping track of the function
name keyed off of the channel name, since channel name is what
MessageConverterConfigurer uses to retrieve info about the function name.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2847
- The bug for multiplex configuration in ReactorKafkaBinder was resolved
and a method was written for common partition-related operations.
- Refactor KafkaBinderUnitTests
- StreamsBuilderFactoryBeanConfigurer customizaton happpens only after
the StreamsBuilder object is created by the factory bean. This creates
a scenario in which the customizations provided by the application are
skipped by the StreamsBuilder. Addressing this issue.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2857
- With pollable consumers, bindings actuator endpoint throws
an exception since it cannot find the binding key in the bindings
map (the key is stroed with the actual destination topic).
Addressing this issue by quering the binding with the binding name.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2849
- 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