Releases: spring-projects/spring-kafka
Releases · spring-projects/spring-kafka
v3.2.0-RC1
⭐ New Features
@PartitionOffset
supprt TopicPartitionOffset.SeekPosition #3178- Add an option to leave consumer group when closing Streams #3168
- Add
checkstyle
rule onempty-line-separater
#3162 - Remove org.apache.kafka native runtime hints #3147
- Adding new
KafkaListenerEndpointRegistry.getListenerContainersMatchingId(predicate: Predicate<String>)
#3135 - Allows to initialize/inject the Topology object without starting the Kafka streams. #3020
- More and proper tags for observation spans #2609
🐞 Bug Fixes
- Duplicate record consumption due to offset decrease in last offset commit #3186
- Setting the Kafka Streams property
default.dsl.store
has no effect #3176 - BatchInterceptor is not working properly with retries #3166
- MDCs are missing in logs produced by DefaultErrorHandler. #3151
- In kafka events, the traceId and spanId are not written in the logs #3146
📔 Documentation
- fix typo in JsonDeSerializer.TYPE_MAPPINGS #3144
- Spring Kafka not working properly with Java 21 Virtual Threads, listeners are tied to a platform thread forever #3074
🔨 Dependency Upgrades
- Bump org.springframework:spring-framework-bom from 6.1.5 to 6.1.6 #3194
- Bump io.projectreactor:reactor-bom from 2023.0.4 to 2023.0.5 #3193
- Bump log4jVersion from 2.23.0 to 2.23.1 #3157
❤️ Contributors
Thank you to all the contributors who worked on this release:
@JooHyukKim, @juwit, @sobychacko, and @system205
v3.1.4
🐞 Bug Fixes
- Duplicate record consumption due to offset decrease in last offset commit #3190
- Setting the Kafka Streams property
default.dsl.store
has no effect #3181 - BatchInterceptor is not working properly with retries #3170
- MDCs are missing in logs produced by DefaultErrorHandler. #3154
- In kafka events, the traceId and spanId are not written in the logs #3149
🔨 Dependency Upgrades
- Bump org.springframework.data:spring-data-bom from 2023.1.4 to 2023.1.5 #3201
- Bump org.springframework:spring-framework-bom from 6.1.5 to 6.1.6 #3200
- Bump io.micrometer:micrometer-bom from 1.12.4 to 1.12.5 #3199
- Bump io.micrometer:micrometer-tracing-bom from 1.2.4 to 1.2.5 #3198
- Bump io.projectreactor:reactor-bom from 2023.0.4 to 2023.0.5 #3197
v3.0.16
🐞 Bug Fixes
- Duplicate record consumption due to offset decrease in last offset commit #3191
- Setting the Kafka Streams property
default.dsl.store
has no effect #3182 - BatchInterceptor is not working properly with retries #3171
- MDCs are missing in logs produced by DefaultErrorHandler. #3153
- In kafka events, the traceId and spanId are not written in the logs #3150
🔨 Dependency Upgrades
v3.2.0-M2
⭐ New Features
- Upgrade Apache Kafka client version to 3.7.0 #3116
@RetryableTopic
support KL annotated on class part 2 #3112@RetryableTopic
support@KafkaListener
annotated on class part 1 #3107- Correct class naming convention for 'hat' in serializer/deserializer Doc #3106
- polish retryable topic. #3104
- fix bug at KafkaMessageListenerContainerTests.testInvokeRecordInterceptorAllSkipped() #3091
- Polish KafkaMessageListenerContainer #3090
- Fix race condition at TransactionalContainerTests.testBatchListenerRecoverAfterRollbackProcessorCrash #3081
- Polish KafkaMessageListenerContainer #3079
- Compute New Seek Position From Current Offset #3078
- GH-2775: Deprecate ContainerProperties properties transactionManager #3066
- Polish KafkaTemplate #3065
- ConcurrentMessageListenerContainer#isInExpectedState consistency problem #3063
- Fix TestOOMError#testOOMCMLC throw ConcurrentModificationException #3059
- ReactiveKafkaConsumerTemplate missing receiveBatch method #3057
- Change
@RetryableTopic
properties SameIntervalTopicReuseStrategy behavior to SINGLE_TOPIC #3052 - Add properties to ContainerProperties.toString #3046
- polish adoc for kafka chapter #3045
- Cleanup ConcurrentMessageListenerContainerMockTests #3044
- Provide API methods of accessing
HostInfo
inKafkaStreamsInteractiveQueryService
#3034 - Non-blocking retry using KafkaListener on class level #3012
- Use application name as default clientId #3001
🐞 Bug Fixes
- Failing to handle deserialization exceptions in batch listener #3114
- Unsafe access to Kafka consumer in seek operation #3108
KafkaMessageListenerContainer
doesn't properly clear threadState ofAfterRollbackProcessor
#3076- CommonDelegatingErrorHandler does not check delegates compatibility correctly #3050
- Listener exceptions not saved to the observation #3049
- Enhanced monitoring when KMLC is batch listener #3047
- fix bug about method ConsumerSeekAware.seekRelative #3043
- DefaultErrorHandler is not able to seek in case of an exception during the commit #3019
- Calling DefaultKafkaHeaderMapper constructor with the same ObjectMapper instance may result memory leak #2611
📔 Documentation
- Remove retry-topic-lcf.adoc introduce useLegacyFactoryConfigurer #3084
- Non-Blocking Retries cannot combine with container transactions. #3072
🔨 Dependency Upgrades
- Bump org.springframework:spring-framework-bom from 6.1.4 to 6.1.5 #3130
- Bump io.projectreactor:reactor-bom from 2023.0.3 to 2023.0.4 #3129
- Bump org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4 #3111
- Bump kotlinVersion from 1.9.22 to 1.9.23 #3110
- Bump com.github.spotbugs from 6.0.7 to 6.0.8 #3096
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Wzy19930507, @qeeqez, @selllami, and @sobychacko
v3.1.3
⭐ New Features
- fix bug at KafkaMessageListenerContainerTests.testInvokeRecordInterceptorAllSkipped() #3094
- Align RecordInterceptor and BatchInterceptor lifecycle. #3092
- ConcurrentMessageListenerContainer#isInExpectedState consistency problem #3068
- Fix TestOOMError#testOOMCMLC throw ConcurrentModificationException #3061
🐞 Bug Fixes
- Failing to handle deserialization exceptions in batch listener #3118
KafkaMessageListenerContainer
doesn't properly clear threadState ofAfterRollbackProcessor
#3102- Listener exceptions not saved to the observation #3085
- CommonDelegatingErrorHandler does not check delegates compatibility correctly #3062
- DefaultErrorHandler is not able to seek in case of an exception during the commit #3060
📔 Documentation
- Remove retry-topic-lcf.adoc introduce useLegacyFactoryConfigurer #3087
🔨 Dependency Upgrades
- Bump org.springframework.data:spring-data-bom from 2023.1.3 to 2023.1.4 #3139
- Bump org.springframework:spring-framework-bom from 6.1.4 to 6.1.5 #3134
- Bump io.micrometer:micrometer-bom from 1.12.3 to 1.12.4 #3132
- Bump kotlinVersion from 1.9.22 to 1.9.23 #3131
- Bump io.micrometer:micrometer-tracing-bom from 1.2.3 to 1.2.4 #3127
- Bump io.projectreactor:reactor-bom from 2023.0.3 to 2023.0.4 #3125
- Bump org.apache.zookeeper:zookeeper from 3.8.3 to 3.8.4 #3124
v3.0.15
⭐ New Features
- Provide a way to support Consumer#enforceRebalance #3075
🐞 Bug Fixes
- Failing to handle deserialization exceptions in batch listener #3119
KafkaMessageListenerContainer
doesn't properly clear threadState ofAfterRollbackProcessor
#3103- Listener exceptions not saved to the observation #3086
🔨 Dependency Upgrades
v3.2.0-M1
⭐ New Features
- Provide a recovery callback for the execute method of RetryingDeserializer #3032
- Remove AbstractMessageListenerContainer.isPaused #3016
- Provide a way to support Consumer#enforceRebalance #3011
- Implementation Deserializer.deserialize(String, Headers, ByteBuffer) #3009
- Polish DestinationTopicPropertiesFactory #3004
- Consider providing an API for Kafka Streams Interactive Queries #2942
- Provide a way to customize a transactionIdSuffix #2852
- Non-Blocking Retries: Consider Making it Easier to Route to Different DLTs by Exception Type #2800
- Asynchronous server-side processing in a request/reply scenario #1189
📔 Documentation
- Clarify retries in KSIQS docs #3033
🔨 Dependency Upgrades
- Bump org.springframework:spring-framework-bom from 6.1.3 to 6.1.4 #3039
- Bump com.fasterxml.jackson:jackson-bom from 2.15.3 to 2.15.4 #3038
- Bump io.projectreactor:reactor-bom from 2023.0.2 to 2023.0.3 #3037
- Bump org.junit:junit-bom from 5.10.1 to 5.10.2 #3029
- Bump com.github.spotbugs from 6.0.6 to 6.0.7 #3006
❤️ Contributors
Thank you to all the contributors who worked on this release:
v3.1.2
⭐ New Features
- Provide a recovery callback for the execute method of RetryingDeserializer #3036
- Provide a way to support Consumer#enforceRebalance #3024
- minor improvement
DelegatingInvocableHandler
and AKLE relate #2976 - GH-2974 Add NonNullApi and NonNullFields to package-info.java in 'annotation' package #2974
- minor improvement error handler related #2970
- GH-2967: Some minor improvements in RetryableTopicAnnotationProcessor #2967
- improvements in
MessagingMessageListenerAdapter
andKafkaUtils
#2962
🐞 Bug Fixes
- False warning log for not committed offsets on CooperativeStickyAssignor strategy #2991
- Can't recognize original exception when abortTransaction() failed #2981
- spring doc website link needs updating #2979
- DefaultErrorHandler#handleBatchAndReturnRemaining recovered invalid #2968
- Spring Kafka Wait For Assignment Failed After Update To SpringBoot 3.2.0 #2978
📔 Documentation
- Closing MockProducer options in reference docs #2965
🔨 Dependency Upgrades
- Upgrade dependecies before release #3027
- Bump io.micrometer:micrometer-bom from 1.12.1 to 1.12.2 #2989
- Bump io.projectreactor:reactor-bom from 2023.0.1 to 2023.0.2 #2988
- Bump org.springframework:spring-framework-bom from 6.1.2 to 6.1.3 #2987
- Bump io.micrometer:micrometer-tracing-bom from 1.2.1 to 1.2.2 #2986
- Bump org.springframework.data:spring-data-bom from 2023.1.1 to 2023.1.2 #2985
- Bump kotlinVersion from 1.9.21 to 1.9.22 #2973
❤️ Contributors
Thank you to all the contributors who worked on this release:
v3.0.14
🐞 Bug Fixes
- False warning log for not committed offsets on CooperativeStickyAssignor strategy #2995
- Can't recognize original exception when abortTransaction() failed #2993
- Fix
KafkaTemplate.clusterId()
for concurrency #2946 - Annotation TopicPartition - partition attribute was not resolved from… #2938
- Unable to send null payload with KafkaTemplate#send(Message) #2928
🔨 Dependency Upgrades
- Upgrade dependecies before release #3026
v3.1.1
⭐ New Features
- minor improvement to klabpp and knapar #2947
- fix a default method defect in ConsumerFactory #2945
- minor adjustment at
MessagingMessageListenerAdapter
#2941 - minor improvement to DefaultKafkaHeaderMapper #2940
- Fix typo at KafkaMessageListenerContainer and ContainerProperties #2939
- reuse RecordHeader in AggregatingReplyingKafkaTemplate #2932
- fix some defects of setting default Message headers in MessagingMessageListenerAdapter #2908
- Free exceptions from ConsumerAwareRebalanceListener #2887
🐞 Bug Fixes
- Fix
KafkaTemplate.clusterId()
for concurrency #2943 - No parameter resolver for EmbeddedKafkaZKBroker #2927
- Unable to send null payload with KafkaTemplate#send(Message) #2924
- Annotation TopicPartition - partition attribute was not resolved from… #2246
📔 Documentation
- Fix typo in javadoc #2935
- RoutingKafkaTemplate configuration is throwing error after spring boot 3.1.2 #2921
- EmbeddedKafkaKraftBroker.kafkaPorts(int... ports) is ignored #2916
🔨 Dependency Upgrades
- Bump io.micrometer:micrometer-bom from 1.12.0 to 1.12.1 #2960
- Bump org.springframework.data:spring-data-bom from 2023.1.0 to 2023.1.1 #2959
- Bump org.junit:junit-bom from 5.10.0 to 5.10.1 #2958
- Bump io.projectreactor:reactor-bom from 2023.0.0 to 2023.0.1 #2957
- Bump log4jVersion from 2.21.0 to 2.21.1 #2956
- Bump io.micrometer:micrometer-tracing-bom from 1.2.0 to 1.2.1 #2955
- Bump kotlinVersion from 1.9.10 to 1.9.21 #2953
- Bump org.springframework:spring-framework-bom from 6.1.0 to 6.1.2 #2952
- Bump org.springframework.retry:spring-retry from 2.0.4 to 2.0.5 #2951
- Bump kafkaVersion from 3.6.0 to 3.6.1 #2950
❤️ Contributors
Thank you to all the contributors who worked on this release:
@NathanQingyangXu, @Wzy19930507, @dependabot[bot], @dogglezz, @michaldo, and @s7474