- Remove references to ZkClient
- deprecation of `Consumer.committed(TopicPartition tp)`
- Addition of `onPartitionsLost` to `ConsumerRebalanceListener`
- since `onPartitionsLost` calls `onPartitionsRevoked` by default with a
possible partial list, remove the revoked partitions from the assignments
- fix some reflection uses in tests (`groupId` field and `NewTopic`)
- fix `EKIT` `listen12` listener - we now always get the full batch
- `ConsumerRebalanceListener.onPartitionsRevoked` is no longer called with an
empty collection
- deprecation of some `TopologyDriver` helper classes
- update what's new and change log appendix
- add `unregisterSeekCallback` to `ConsumerSeekAware`
- `AbstractCSA` now removes TL there since we may have only a partial revoke
* Fix what's new
* GH-1277: isAckAfterHandle default true
Resolves: https://github.com/spring-projects/spring-kafka/issues/1277
* Fix SBFB Javadocs
* Update version
* Fix test for isAckAfterHandle default true
* Upgrade to 2.4.0 Clients
* Remove mavenLocal() repo
This is code block for explaining methods to set up producer and consumer properties. So 'consumerProps()' and 'producerProps()' are must be here. But there is 'senderProps()' method instead of 'producerProps().
API ref. `org.springframework.kafka.test.utils.KafkaTestUtils#producerProps`
The `KafkaListenerEndpointRegistry.stop(Runnable)` doesn't change its `running` state
* Removed the callback wrap in favor of setting the state to stop in two places
* Set the running state to false before actually calling stop on the containers
Resolves https://github.com/spring-projects/spring-kafka/issues/1309
When no commit timeout is provided we update the properties in the local
container properties.
The parent container's properties must also be updated because the parent
is passed into the error handler (e.g. for stopping the entire container
when an error occurs).
Also, fix a problem where the child container instead of the parent was
passed into the batch error handler.
When `idleBetweenPolls` was set, the sleep was done after invoking
the listener and before calling `pollAndInvoke()` again.
This delays committing the offsets for ack modes other than `RECORD`.
Move the sleep to after committing the offsets and before the next `poll()`.
Resolves: https://github.com/spring-projects/spring-kafka/issues/1293
`getSingleRecord()` would fail prematurely if records were present in other topics
- Add a loop to prevent early exit
- Always reset the offsets for other topics before assertions
Fixes https://github.com/spring-projects/spring-kafka/issues/1301
* Restore `DefaultKafkaHeaderMapper.DEFAULT_TO_STRING_CLASSES` set
of `MimeType` and `MediaType`
* Use this set as default one for the `toStringClasses` property
* Therefore `MimeType` headers are now stored in the `ProducerRecord`
as string.
* Also encode all the `toStringClasses` values as JSON - for backward
compatibility as well
This makes it backward compatible with previous versions and doesn't
break the current version since it is easy to recreate a `MimeType`
from its string representation - Postel's law