* Use content type header from the record for binder provided inbound deserialization by
making use of the header support added in Kafka Streams. If there is a content type set
on the incoming record, that will get precedence.
* Introduce a new Composite Serde class for providing non-native Spring Cloud Stream specific collection
of Serde implemenations. This is needed in order for things like avro converters that interact with
the Spring Cloud Stream schema registry server.
* Adding tests
* Polishing
Resolves#456, #469
* Consumer concurrency settings in Kafka Streams binder
* If the consumer concurency settings are provided at the binding level,
honor that before falling back to the defaults.
* Allow consumer binding specific broker configurations to be set from the application.
* Test changes.
Resolves#474
* Addressing PR review comments
This makes metrics available for anonymous consumers as well.
A couple of tests to verify that TopicInformation is built correctly
Removing unneeded import
* Addressing startOffset in Kafka Streams binder
Fixing the issue where auto.offset.reset is not honored through startOffset
provided by the individual consumer binding.
Adding integration test to override auto.offset.reset globally at the binder
level to latest and then set startOffset on individual binding to earliest.
Resolves#467
* Addressing PR review comments
* Addressing PR review comments
If the destination topic is pattern based, only do the basic up/down check
in the health indicator. In this case, the health indicator does not do any
partitions queries as it does for normal topics.
Resolves#430
Disable Kafka health indicator check if management.health.binders.enabled
property is set to false. Currently, if this property is disabled, only the
core spring-cloud-stream mechanism of collecting the health checks are disabled.
The indivividual binders can still register the health check bean and boot health
actuator will still pick it up. If the user turns off health check by disabling
this property, then the stream app should completely disable any binder specific
health check.
Resolves#454
* Remove the use of deprecated constructors in StreamsBuilderFactoryBean.
* Remove direct usage of StreamsConfig in favor of KafkaStreamsConfiguration.
* Change the way DLQ sending objects are provided to StreamsConfig since
the binder does not directly deal with StreamsConfig any longer.
* Refactoring and polishing.
Resolves#442Resolves#457
* Application ID resolution for kafka streams binder
Avoid the need to rely on group property for application id.
First, check binding specific application id, if not look at defaults.
If nothing works, fall back to the default application id set by the
boot auto configuration.
Modify tests.
Update docs.
Resolves#448
* Addressing PR review comments
* Minor polishing
* Addressing PR review comments
There are duplicate code in various binder configurations where we register missing beans.
Consolidate them into a common class that implements ImportBeanDefinitionRegistrar and then
import this class in the binder configurations.
Resolves#445
There is a common piece of code repeated in both producer and consumer
configuration where it is populating the bootstrap server configuration.
Refactoring into a common method.
Resolves#208
Allow applications to configure default values for extended prducer and
consumer properties across multiple bindings in order to avoid repetition.
Address the changes in both Kafka and Kafka Streams binders.
Add integration test to verify both binding specific and default extended properties.
Resolves#444
Requires https://github.com/spring-cloud/spring-cloud-stream/pull/1477
(to address core changes made in regards to Boot 2.1)
Ensure that KafkaStreamsBinderSupportAutoConfiguration runs
after BindingServiceConfiguration from core.