Mahmoud Ben Hassine

Mahmoud Ben Hassine

Spring Batch Lead | Lille, France

I am a software engineer at VMWare, currently working as the project lead of Spring Batch. I am an OSS advocate and I have contributed to several open source projects. I enjoy spending time with my family and friends, reading, running and playing chess!
Blog posts by Mahmoud Ben Hassine

Spring Batch 5.0 Goes GA!

Releases | November 24, 2022 | ...

It is finally here! Spring Batch 5.0 is now generally available from Maven Central. Spring Batch 5 is the culmination of two years of work, including dozens of improvements, features, and bug fixes by more than 50 contributors! On Behalf of the team, I would like to thank ALL contributors who had a role in this huge release!

This blog post walks through the major highlights of this new generation of the framework. You can find the details of all the changes in the release notes and the upgrade instructions in the migration guide.

What's new?

  • New Java version baseline
  • Major dependencies upgrade
  • Full GraalVM native support
  • Introduction of the new Observation API from Micrometer
  • Execution context Meta-data improvement
  • New default execution context serialization format
  • SystemCommandTasklet enhancements
  • Add support to use any type as a job parameter
  • Improved job parameters conversion
  • New Annotation Attributes in EnableBatchProcessing
  • New Configuration Class for Infrastructure Beans
  • Transaction Support in JobExplorer and JobOperator
  • Automatic registration of a JobOperator with EnableBatchProcessing
  • Test utilities configuration updates

Spring Batch 5.0 RC2 available now

Releases | November 09, 2022 | ...

On behalf of the team and everyone who has contributed, I am pleased to announce that the second and final release candidate of Spring Batch 5 is now available from our milestone repository.

In this release, we worked on the following items:

  • Full MariaDB support
  • Native support improvements
  • Observability improvements

This blog post walks through these changes in details. For the complete list of changes, please check the release notes.

Full MariaDB support

Up until v4.3, Spring Batch provided support for MariaDB by considering it as MySQL. In this release, MariaDB is now treated as a separate database product with its own DDL script and DataFieldMaxValueIncrementer

Spring Batch 5.0 RC1 is out!

Releases | October 20, 2022 | ...

It is finally here! The first release candidate of Spring Batch 5 is now available from our milestone repository. In this release, we worked on the following items:

  • Execution context Meta-data improvement
  • GemFire support removal

This blog post walks through these two changes in details. For the complete list of changes, please check the release notes.

Execution context Meta-data improvement

In addition to what Spring Batch already persists in the execution context with regard to runtime information (like the step type, the restart flag, etc), this release adds an important detail in the…

Spring Batch 5.0.0-M8 is out!

Releases | October 13, 2022 | ...

On behalf of the team and all contributors, I am pleased to announce that Spring Batch 5.0.0-M8 is now available from our milestone repository.

In this milestone, we introduced two main changes:

  • New default execution context serialization format
  • SystemCommandTasklet enhancements

This blog post walks through these two major changes in details. For the complete list of changes, please check the release notes.

New default execution context serialization format

In this milestone release, the DefaultExecutionContextSerializer was updated to serialize/deserialize the context to/from Base64.

Moreover, the default ExecutionContextSerializer configured by @EnableBatchProcessing or DefaultBatchConfiguration was changed from JacksonExecutionContextStringSerializer to DefaultExecutionContextSerializer. The dependency to Jackson was made optional. In order to use the JacksonExecutionContextStringSerializer, jackson-core

Spring Batch 5.0.0-M7 available now!

Releases | October 05, 2022 | ...

On behalf of the team and all contributors, I am pleased to announce that Spring Batch 5.0.0-M7 is now available from our milestone repository.

The main theme of this milestone is the improvement of job parameters handling in Spring Batch. Two main changes were introduced in this release:

  • Add support to use any type as a job parameter
  • Improve job parameters conversion

This blog post walks through these two major changes in details. For the complete list of changes, please check the release notes.

Add support to use any type as a job parameter

Up to version 4, Spring Batch supported only 4 types that can be used as job parameters, which are long, double, String and Date. While this was convenient to simplify job parameters handling on the framework's side, it turns out to be constraining on the user's side. For instance, what if one wants to use a boolean

Spring Batch 5.0.0-M6 and 4.3.7 are out!

Releases | September 22, 2022 | ...

I am pleased to announce that Spring Batch 5.0.0-M6 is now available from our milestone repository and that 4.3.7 is available from Maven Central. Version 4.3.7 is a patch release that can be used as a drop-in replacement for 4.3.6. You can find its release notes here. This blog post is more about the new milestone release, version 5.0.0-M6. In this milestone, we focused on improving the configuration process of Spring Batch to make it more flexible and straightforward. This blog post walks through the major changes in this area of the framework and presents the new features introduced in this…

Spring Batch 5.0.0-M5 is available now!

Releases | August 24, 2022 | ...

I am pleased to announce that Spring Batch 5.0.0-M5 is now available from our milestone repository. The main theme of this milestone is improving testing support in Spring Batch. This post walks through the major changes in this area as well as other changes introduced in this milestone release. For the complete list of changes, see the release notes.

Test utilities configuration updates

Up to version 4.3, the JobLauncherTestUtils used to autowire the job under test with the goal of facilitating the test setup. But what if multiple jobs are defined in the test context? And what if no Job beans are defined at all? So while this autowiring was convenient for most cases, it turned out to cause several issues in the aforementioned situations. In this release, and based on community feedback, we have decided to remove the autowiring of any job in JobLauncherTestUtils

Spring Batch 5.0.0-M4 available now!

Releases | July 20, 2022 | ...

On behalf of the team and everyone who has contributed, I am pleased to announce that Spring Batch 5.0.0-M4 is now available from our milestone repository.

This fourth milestone introduces several improvements for Java Records support. It also comes with a number of enhancements, bug fixes, dependency upgrades, and documentation updates. For more details about all the changes, see the release notes.

Java Records Support Improvement

The support for Java records as items in a chunk-oriented step was initially introduced in v4.3, but that support was limited, due to the fact that v4 has Java 8 as a baseline. In Java 8, records were not even in preview yet. That initial support was based on reflection tricks to create Java records and populate them with data, without having access to the java.lang.Record

Spring Batch 4.3.6 and 5.0.0-M3 available now

Releases | May 18, 2022 | ...

On behalf of the team and everyone who has contributed, I am pleased to announce that Spring Batch 4.3.6 has been released to Maven Central and that Spring Batch 5.0.0-M3 is now available from our milestone repository.

Spring Batch 4.3.6 is a patch release that comes with a number of bug fixes, enhancements, and dependency updates. For more details about the changes, see the change log.

This blog post is more about 5.0.0-M3, which comes with three major features:

  • Native support improvements
  • UTF-8 by default
  • New Maven Bill of Materials

Moreover, this milestone release comes with a number of enhancements, bug fixes, and dependency updates. See the change log

Spring Batch 5.0 M2 available now

Releases | March 23, 2022 | ...

On behalf of the team and everyone who has contributed, I am pleased to announce that Spring Batch 5.0.0-M2 is now available from our milestone repository.

This second milestone comes with two major features:

  • Introduction of the new Observation API from Micrometer 2.0 which gives you both metrics and tracing for your batch jobs!
  • Addition of SAP HANA as a supported database for the job repository

Moreover, this release comes with a number of enhancements and dependencies updates. For more details about all the changes, please check the change log.

I would like to thank all contributors who…

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Spring Runtime offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all