* There seems to be a race condition in ReactorKafkaBinderTests that causes
tests to fail on CI occasionaly. Trying to address this by single dedicated
topic per test.
* Currently, EmbeddedKafka is initialized as part of the class initialization in a few tests
in the Kafka binder. This is preventing individual JUnit tests from being executed from an IDE (IntelliJ, for example).
If we move this initialization to the JUnit method, then that seems to be working.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2943
* Currently, EmbeddedKafka is initialized as part of the class initialization.
This is preventing individual JUnit tests from being executed from an IDE (IntelliJ, for example).
If we move this initialization to the JUnit `BeforeAll` method, then that seems to be working.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2942
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2932
Spring Boot provides `SanitizingFunction` to allow the applicaitons to clear out
sensitive data when using certain actuator endpoints. This feature can be
extended to custom endpoints as well. Enable the bindings actuator endpoint
to sanitze sensitive data based on user-provided logic in `SantizingFuction`
beans in the application.
Spring Pulsar 1.1.x introduced a new method `getPulsarClient`
on `PulsarProducerFactory` and the PulsarBinderIntegrationTests
has a custom factory that must be updated in order to run
on both Pulsar 1.0.x and 1.1.x (i.e. Spring Boot 3.2.x and 3.3.x).
* Address immutability changes for the call to `Consumed#withTimestampExtractor`.
* In 3.7.0, this call returns a new instance of `Consumed` as oppposed to
mutating the existing instance in the previous versions. Address this
change in behavior in the Kafka Streams binder.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2922
* When output-bindings config is explicitly used for StreamBridge
and the RabbitMQ routing-key-expression is provided, Spring Cloud Stream
is throwing an exception due to a proper function is not found in
the catalog. Bypassing this step and letting the bootstrapping continues
if output-bindings and RabbitMQ routing-key-expression combination is used.
* Adding tests to verify
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2921
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2915
Running the Pulsar binder with Java 21 surfaced a bug where the layered
binder/binding config props are not properly applied to the targeted
consumer/producer builders.
The bug existed before Java 21 and is unrelated.
The binder/binding config props are converted to a Pulsar
ProducerConfigurationData object via Jackson. This conversion process iterates
over a map of config props. The iteration order of the map changed between Java
17 and 21. This results in object setters getting called in different orders,
which in turn causes cross-field validation errors.
See #2915 for more details
* Disable the max-pending-messages in binderAndBindingPropsAreAppliedAndRespected test,
since it is causing the test to fail on JDK 21. We will investigate why this propery has
issues on JDK 21.
See this issue for details: https://github.com/spring-cloud/spring-cloud-stream/issues/2915