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.
In this milestone release, the
DefaultExecutionContextSerializer was updated to serialize/deserialize the context to/from Base64.
Moreover, the default
ExecutionContextSerializer configured by
DefaultBatchConfiguration was changed from
DefaultExecutionContextSerializer. The dependency to Jackson was made optional. In order to use the
jackson-core should be added to the classpath.
SystemCommandTasklet has been revisited in this release and was changed as follows:
A new strategy interface named
CommandRunnerwas introduced in order to decouple the command execution from the tasklet execution. The default implementation is the
JvmCommandRunnerwhich uses the
java.lang.Runtime#execAPI to run system commands. This interface can be implemented to use any other API to run system commands.
The method that runs the command now accepts an array of
Strings representing the command and its arguments. There is no need to tokenize the command or do any pre-processing anymore. This change makes the API more intuitive, and less prone to errors.