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
MapJobRegistry
smart enough to auto register jobs defined in the application context #4855 - Make
MessageChannelPartitionHandler
usable 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
JobOperator
API by using domain types instead of primitive types #4845 - Improve
JobOperator
by reducing its scope to job operations only #4833 - Core API simplification #4847
- Move core APIs in dedicated packages #4877
- Move listener APIs under
core.listener
package #4867 - Move
core.explore
package 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
JobKeyGenerator
interface #4886 - Remove usage of
JobFactory
in `JobRegistry`` #4854 - Remove dependency to
JobExplorer
inSimpleJobOperator
#4817 - Remove
JobExplorer
bean registration from the default batch configuration #4825 - Remove unnecessary reflection in RemoteChunkHandlerFactoryBean #4839
- Rename
SimpleJobOperator
toTaskExecutorJobOperator
#4834 - Rename
JobRepositoryFactoryBean
toJdbcJobRepositoryFactoryBean
#4829 FlatFileItemReaderBuilder
: raise check exception on build #4757- Make
JobOperator
extendJobLauncher
#4832 - Make
JobRepository
extendJobExplorer
#4824 - Redundant methods in
JobExplorer
/JobInstanceDao
APIs #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#isRunning
for type-safety #4783 - Mark argument to
ExitStatus#equals
as nullable #4823 - Use typesafe variant of
ctx::getBean
instead #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
JobExplorer
withJobRepository
inRemoteStepExecutionAggregator
#4928 - Replace usage of
JobExplorer
withJobRepository
inSystemCommandTasklet
#4927 - Replace usage of
JobLauncher
withJobOperator
inJobLaunchingGateway
andJobLaunchingMessageHandler
#4924 - Replace usage of
JobLauncher
withJobOperator
inJobStep
#4923 - Replace usage of
JobExplorer
withJobRepository
inStepExecutionRequestHandler
#4918 - Rename
JobLauncherTestUtils
toJobOperatorTestUtils
#4920 - Rename
JobExplorerFactoryBean
toJdbcJobExplorerFactoryBean
#4846 - Deprecate
StepRunner
#4921 - Deprecate modular job configuration through
EnableBatchProcessing
#4866 - Remove usage of
JobExplorer
inBatchIntegrationConfiguration
#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