v6.0.0-M1
Pre-release
Pre-release
This is the first milestone of Spring Batch 6.0, which is a major release that comes with several new features, enhancements, and bug fixes. Moreover, this release introduces a number of API breaking changes and deprecations. Please refer to the migration guide for the full list of changes.
⭐ New features
- Introduce a modern command line batch operator #4899
- Add ability to use bean names for jobs and steps #4858
- Make
MapJobRegistrysmart enough to auto register jobs defined in the application context #4855 - Make
MessageChannelPartitionHandlerusable with any job repository implementations #4917 - Add optimistic locking for meta-data deletion #4793
🚀 Enhancements
- Improve experience when configuring an alternative
JobRepository#4718 - Improve performance of
JdbcStepExecutionDao::getStepExecution#4799 - Improve update sql for optimistic locking #4792
- Improve
JobOperatorAPI by using domain types instead of primitive types #4845 - Improve
JobOperatorby reducing its scope to job operations only #4833 - Core API simplification #4847
- Move core APIs in dedicated packages #4877
- Move listener APIs under
core.listenerpackage #4867 - Move
core.explorepackage undercore.repository#4827 - Move core partitioning APIs under
org.springframework.batch.core.partition#4849 - Move DAOs implementations to separate packages #4848
- Remove unnecessary generic from
JobKeyGeneratorinterface #4886 - Remove usage of
JobFactoryin `JobRegistry`` #4854 - Remove dependency to
JobExplorerinSimpleJobOperator#4817 - Remove
JobExplorerbean registration from the default batch configuration #4825 - Remove unnecessary reflection in RemoteChunkHandlerFactoryBean #4839
- Rename
SimpleJobOperatortoTaskExecutorJobOperator#4834 - Rename
JobRepositoryFactoryBeantoJdbcJobRepositoryFactoryBean#4829 FlatFileItemReaderBuilder: raise check exception on build #4757- Make
JobOperatorextendJobLauncher#4832 - Make
JobRepositoryextendJobExplorer#4824 - Redundant methods in
JobExplorer/JobInstanceDaoAPIs #4821 - Introduce
ErrorProne, fix compiler warnings #4807 - Add Redis integration tests #4892
- Fail test if no exception is thrown in
testErrorMessageWhenNoLineTokenizerWasProvided#4883 - Refactor AOT proxy hints for better type safety #4881
- Refactor
ExitStatus#isRunningfor type-safety #4783 - Mark argument to
ExitStatus#equalsas nullable #4823 - Use typesafe variant of
ctx::getBeaninstead #4803 - Use
jdbcTemplate.queryForStream().findFirst()where appropriate #4802 - Reuse existing SQL where feasible #4801
🐞 Bug fixes
- Incorrect warning when starting a job with an empty parameters set #4914
- Incorrect handling of job parameters when using a
JobParametersIncrementer#4910 - Write Skip Count Not Updated in Chunk Processing #4514
📔 Documentation
- Polish code block style and fix typo in
whatsnew.adoc#4901 - Fix javadoc in
JdbcCursorItemReaderBuilder#4838 - Correct comment in RemoteChunkingJobFunctionalTests #4822
🔨 Tasks
- Replace usage of
JobExplorerwithJobRepositoryinRemoteStepExecutionAggregator#4928 - Replace usage of
JobExplorerwithJobRepositoryinSystemCommandTasklet#4927 - Replace usage of
JobLauncherwithJobOperatorinJobLaunchingGatewayandJobLaunchingMessageHandler#4924 - Replace usage of
JobLauncherwithJobOperatorinJobStep#4923 - Replace usage of
JobExplorerwithJobRepositoryinStepExecutionRequestHandler#4918 - Rename
JobLauncherTestUtilstoJobOperatorTestUtils#4920 - Rename
JobExplorerFactoryBeantoJdbcJobExplorerFactoryBean#4846 - Deprecate
StepRunner#4921 - Deprecate modular job configuration through
EnableBatchProcessing#4866 - Remove usage of
JobExplorerinBatchIntegrationConfiguration#4919 - Remove deprecated APIs scheduled for removal in v6 #4819
- Update GraalVM runtime hints #4844
🆙 Dependency Upgrades
- Spring Framework: 7.0.0-M7
- Spring Integration: 7.0.0-M1
- Spring AMQP: 4.0.0-M3
- Spring Kafka: 4.0.0-M3
- Spring Data: 4.0.0-M4
- Spring Ldap: 4.0.0-M1
- Spring Retry: 2.0.12
- Micrometer: 1.16.0-M1
❤️ Contributors
Thank you to all the contributors who worked on this release:
@darth-raijin, @itis821, @jbotuck, @martinfrancois, @noojung, @patrickwinti, @quaff, @scordio, @sieunie, @sjiwon, and @therepanic
Full change log: v5.2.2...v6.0.0-M1