Spring for Apache Kafka 2.5.0 Release Candidate

The 2.5.0.RC1 release candidate is now avaialable in the Spring milestone repo.

Update: 2.5.0.RELEASE was released on May 13th.


  • kafka-clients 2.5.0 (alignment of version numbers is coincidental).

  • Support for re-committing retryable offset commit exceptions for retained partitions when using cooperative rebalancing.

  • Support for the new "fetch-offset-request" procuder fencing (when brokers are 2.5 or higher), requiring fewer producers.

  • Support for static group membership.

  • More integration with Micrometer.

  • Optional Delivery Attempts header.

  • RecoveringBatchErrorHandler can commit a partial batch and replay from failed record in a batch (with cooperation of the listener); this is now the default for a batch listener.

  • Default error handler for record listener is now the SeekToCurrentErrorHandler.

  • Overridable producer properties in the KafkaTemplate allowing multiple templates to use the same producer factory.

  • Simple String serializer and deserializer are now provided.

  • More flexibility to determin the type to create in the JsonDeserializer.

Read more

Spring Integration 5.3 RC1, 5.2.6 & 5.1.10 Available

I’m pleased to announce the first (and the last) release candidate for Spring Integration 5.3.

This release ships several bug fixes, a bunch of new features and improvements and will be picked up by Spring Boot 2.3 RC1.

It can be downloaded from our milestone repository:

compile 'org.springframework.integration:spring-integration-core:5.3.0.RC1'

The most important new features are:

  • The MongoDbChangeStreamMessageProducer - a reactive MessageProducerSupport implementation for the Spring Data ReactiveMongoOperations.changeStream(String, ChangeStreamOptions, Class) API. This component produces a Flux of messages with a body of ChangeStreamEvent as the payload by default and some change stream related headers (see MongoHeaders).

  • The ReactiveMessageSourceProducer - a reactive implementation of the MessageProducerSupport to wrap a provided MessageSource into a Flux for on demand receive() calls.

  • The ReceiveMessageAdvice - a former AbstractMessageSourceAdvice is graduated now to more common advice approach which can be used also for the PollableChannel.receive() proxying.

  • The TcpOutboundGateway now can work in an async mode - you’ll get an actual reply from the returned Future.

  • We also have applied a GitHub default community health. Check this out when you try to raise a new issue!

See What’s New? in the Reference Manual for more information. Also see a blog post for the previous Milestone 3.

We’re looking forward to your feedback for upcoming GA in May!

In addition to this 5.3 RC1 we also have released maintenance versions - 5.2.6 & 5.1.10 with some bug fixes and upgrades. Based on Spring Integration 5.3 RC1 and Spring for Apache Kafka 2.5 RC1 a spring-integration-kafka-3.3.0.RC1 was also released to pick up improvements and new feature from its "parents".

Read more

Updates to Spring Versions

The Spring team has decided to change the versioning scheme for both release trains and project modules. These changes will be coming in the next release train and minor releases for each project. In fact, the changes are already present in Spring Cloud 2020.0.0-M1. Maven and Gradle do not provide the exact same version ordering, but we are working with the Gradle team to ensure the Spring scheme ends up sorted in the same way with both tools.

Release Train Version Changes

Spring has been using alphabetically ordered, themed release train versions since 2013. Release trains contain a group of project versions that work well together but make no guarantees about the underlying libraries’ backward compatibility when upgrading to the next release train.

Read more

Spring Tips: The Wavefront Observability Platform

speaker: Josh Long (@starbuxman)

Hi, Spring fans! Welcome to another installment of Spring Tips! In this installment, we’ll revisit two topics that we’ve addressed in two previous videos (distributed tracing and metrics collection) in terms of the superb Tanzu Wavefront observability platform.

The first video of the two videos, as mentioned above, dating way back in early 2017, looked at distributed tracing with spring cloud sleuth and openzipkin. Spring Cloud Sleuth is an abstraction for capturing the flow of messages from one node to another. It’s useful to help you see how messages move through a system. Spring cloud sleuth integrates with all the usual ingress and egress points in a Spring Boot application. Make an HTTP request using either the Restteplat or the reactive WebClient or Spring Cloud Feign? It works. Receive an HTTP request to a traditional (Servlet-based) or reactive HTTP endpoint built with Spring? It works. Send or receive a message using Spring Cloud Stream or Spring Integration? Yep. You guessed it. It just works. You don’t have to do anything, either.

Read more

This Week in Spring - April 28th, 2020

Hi, Spring fans! Welcome to another installment of This Week in Spring! It’s already April 28th, 2020. I can’t even believe it.

The time sure is flying, not just since the last time we spoke in this little blog of ours, but also since I first started writing these roundups the first week of January 2011. In four short months, it’ll have been ten years since I officially joined the Spring team! Crazy.

It’s also the case that time has flown by since this #COVID19 crisis forced much of the world into lockdown. I am an eternal optimist, and I was wondering if this COVID19 crisis was going to have a silver lining. For us here at the Long household, it’s been a gift for me to be able to hang out with my family. My little girl is making really good progress learning how to program, too. She’s already good with basic control flow, variables, functions, etc., all just since we went into lockdown. I’ve become a homeschooling parent. It’s been a lot of fun renewing my maths fundamentals with her. She’s a remarkable kid.

Read more

Spring Data Neumann RC2, Moore SR7, and Lovelace SR17

On behalf of the team, I’m pleased to announce Spring Data releases Neumann RC2, Moore SR7, and Lovelace SR17. This triple-feature is built on top of today’s Spring Framework releases 5.2.6 (Neumann and Moore) and 5.1.15 (Lovelace).

Spring Data Neumann RC2 contains 96 new features, improvements, and fixes. Spring Data Moore SR7 ships with 40 fixes and improvements. Finally, Spring Data Lovelace SR17 includes 39 selected fixes.

Spring Data Neumann RC2 ships with numerous improvements and new features. The most interesting amongst these are:

Read more

Spring Framework 5.2.6, 5.1.15, 5.0.17, and 4.3.27 available now

On behalf of the team and everyone who has contributed, I am pleased to announce a full round of Spring Framework releases.

Spring Framework 5.2.6 includes 46 fixes and improvements. Spring Framework 5.1.15 includes 16 selected fixes and improvements.

Maintenance releases for 5.0.x (5.0.17) and 4.3.x (4.3.27) with 12 selected fixes and improvements and 5 selected fixes and improvements respectively are also available today.

As usual, we’ll follow up shortly with corresponding Spring Boot releases (2.2.7 and 2.1.14) as well as a release candidate for Spring Boot 2.3!

Read more

Announcing Spring Cloud Stream Horsham.SR4 (3.0.4.RELEASE) and Spring Cloud Hoxton.SR4

We are pleased to announce the release of the Spring Cloud Stream Horsham.SR4 (3.0.4.RELEASE) release train which is available as part of Spring Cloud Hoxton.SR4 and builds on Spring Boot 2.2.6 and Spring Cloud Function 3.0.6.RELEASE which was also just released.

Spring Cloud Stream Horsham.SR4 modules are available for use in the Maven Central repository.

This release contains several fixes and enhancements primarily driven by user’s feedback, so thank you.
For more details please follow these links:
- Spring Cloud Stream Core
- Spring Cloud Stream Rabbit Binder
- Spring Cloud Function

Read more

Spring Cloud Data Flow 2.5.0.RC1 Released

Spring Cloud Data Flow team is pleased to announce the first milestone release of 2.5.0.RC1.

This first release candidate of 2.5.0 adds some bug fixes and the following features:

  • Support application metadata as part of the Container images. Before this release, we only supported application property whitelisting when using a maven artifact.

  • Support for Azure AD integration using OAuth 2.0. Spring Cloud Data Flow, Spring Cloud Skipper servers along with the Spring Cloud Data Flow shell can be configured to integrate with Azure AD for authentication and authorization.

  • Removal of Scheduler task launcher component when scheduling tasks. In Spring Cloud Data Flow 2.3.x, the scheduling of tasks was designed to have an intermediate scheduler task launcher component to enhance the continuous deployment user experience. Since this component added some additional complexities and overhead on Kubernetes, the 2.5.x release removed this intermediary task launcher. We also added a migration tool to migrate the schedules from 2.3.x and 2.4.x

  • Unification of Kubernetes Scheduler properties. This feature lets the user configure any supported/applicable task deployment properties at the time of scheduling them as well.

Read more