- Producer that fetches partition info now initializes within a try-with-resources block
- If exceptions occur on calling producer.partitionsFor(topicName), it's now properly closed and resources are released
Signed-off-by: akenra <37288280+akenra@users.noreply.github.com>
- Integrate KafkaConnectionDetails, a Spring Boot component, in binder
- Update KafkaBinderConfigurationProperties to use KafkaConnectionDetails
- Modify KafkaTopicProvisioner to leverage KafkaConnectionDetails
- Adjust Kafka binder configurations to pass KafkaConnectionDetails
- Update tests to accommodate KafkaConnectionDetails changes
- Add KafkaConnectionDetails to shared.beans for auto-configuration
This change improves flexibility in configuring Kafka connections,
allowing for better support of externalized configuration management
and aligning with Spring Boot's connection abstraction model.
* When composed functions are used on component functions in the Kafka Streams binder,
there is an issue in which the first function in the composition is invoked twice.
Fixing this issue by ensuring that the function execution path is only invoked once.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2941
* 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.