Skip to content

Releases: spring-projects/spring-kafka

v3.0.16

15 Apr 18:10
Compare
Choose a tag to compare

🐞 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

  • Bump org.springframework:spring-framework-bom from 6.0.18 to 6.0.19 #3196
  • Bump io.projectreactor:reactor-bom from 2022.0.17 to 2022.0.18 #3195

v3.2.0-M2

18 Mar 19:11
Compare
Choose a tag to compare
v3.2.0-M2 Pre-release
Pre-release

⭐ 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 in KafkaStreamsInteractiveQueryService #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 of AfterRollbackProcessor #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

18 Mar 18:27
Compare
Choose a tag to compare

⭐ 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 of AfterRollbackProcessor #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

18 Mar 18:10
Compare
Choose a tag to compare

⭐ 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 of AfterRollbackProcessor #3103
  • Listener exceptions not saved to the observation #3086

🔨 Dependency Upgrades

  • Bump kotlinVersion from 1.7.20 to 1.7.22 #3133
  • Bump org.springframework:spring-framework-bom from 6.0.17 to 6.0.18 #3128
  • Bump io.projectreactor:reactor-bom from 2022.0.16 to 2022.0.17 #3126

v3.2.0-M1

16 Feb 21:24
Compare
Choose a tag to compare
v3.2.0-M1 Pre-release
Pre-release

⭐ 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:

@Wzy19930507 and @sobychacko

v3.1.2

16 Feb 20:08
Compare
Choose a tag to compare

⭐ 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 and KafkaUtils #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:

@NathanQingyangXu, @Wzy19930507, and @jitokim

v3.0.14

16 Feb 18:19
Compare
Choose a tag to compare

🐞 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

18 Dec 22:52
Compare
Choose a tag to compare

⭐ 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

v3.1.0

20 Nov 18:43
Compare
Choose a tag to compare

⭐ New Features

  • remove unnecessary property setting statement in EmbeddedKafkaKraftBroker #2893
  • GH-2654: Incorrect retry topic suffix #2876
  • The TRUSTED_PACKAGES field in the DefaultJackson2JavaTypeMapper has also been improved to have an ImmutableList type. #2875
  • No early bean initialization from EmbeddedKafkaContextCustomizer #2870
  • GH-2862: Add Option to Log Recovery to DLPR #2869
  • Support Validator in ErrorHandlingDeserializer #2861
  • GH-2731: fix count and time ack mode #2858
  • If cluster id is null and observation is enabled, KafkaTemplate tries to retrieve it on each produce #2853
  • Provide a way to define a ContainerCustomizer per KafkaListener #2825

🐞 Bug Fixes

  • Fix TX Check in RoutingKafkaTemplate #2899
  • Fix Issues in DefaultKafkaProducerFactory#updateConfigs() #2897
  • Under-documented "Manually Assigning All Partitions" #2891
  • add a missing left quote in AbstractKafkaListenerEndpoint#getEndpointDescription() #2882
  • fix CONSUMER_RECORDS_CLASS_NAME constant error in KafkaAvroBeanRegistrationAotProcessor.java #2881
  • ProducerInterceptor in KafkaTempalte unvaild #2874
  • Admin is boot up by turning on observability #2859

📔 Documentation

  • Improve Documentation about Acknowledgment.nack() #2906
  • Improve Documentation: State on OOO-Commits page that AsyncAcks cannot be combined with nack() #2905
  • remove 'dead links' in javadocs #2896
  • Update testing.adoc > "@EmbeddedKafka Annotation with JUnit5" section #2894
  • fix some typos #2885
  • update reference documentation gradle task in README.md #2880
  • cosmetic doc improvements part 4 #2879
  • cosmetic doc improvements part 3 #2877
  • some cosmetic improvements of the reference - part 2 #2873
  • Streams Doc Polishing #2871
  • Reference Doc Improvements #2867

🔨 Dependency Upgrades

🔨 Tasks

  • Eliminate the Use of StringBuffer #2909

❤️ Contributors

Thank you to all the contributors who worked on this release:

@Alchemik, @NathanQingyangXu, @Wzy19930507, @ch4570, @pat-goins, and @powibol

External Links

v3.0.13

20 Nov 18:33
Compare
Choose a tag to compare

⭐ New Features

  • If cluster id is null and observation is enabled, KafkaTemplate tries to retrieve it on each produce #2856

🐞 Bug Fixes

  • Under-documented "Manually Assigning All Partitions" #2901
  • The result of ProducerInterceptor.onSend() is out of use #2884
  • Fix CONSUMER_RECORDS_CLASS_NAME constant error in KafkaAvroBeanRegistrationAotProcessor #2883

🔨 Dependency Upgrades

  • Upgrade Dependency Versions #2910
  • Upgrade Spring Retry Version #2848

🔨 Tasks

  • Add kafka-server-common Transitive Test Dependency #2849

❤️ Contributors

Thank you to all the contributors who worked on this release:

@Wzy19930507

External Links