Releases: spring-projects/spring-batch
v5.1.0
⭐ New features
- Add support for Virtual Threads #4399
- Add synchronized decorators for non-stream item readers/writers #4368
- Add option to clear the persistence context in
JpaItemWriter#804 - Add cursor-based
ItemReaderfor MongoDB #4323 - Add support for bulk inserts in
MongoItemWriter#4149 - Provide accessors in
MongoItemWriterto facilitate extensions #3973 - Add item reader for Redis #4446
- Add item writer for Redis #3957
- Add ability to start a job flow definition with a decider #4411
- Add support to specify the database type through
EnableBatchProcessing#4320 - Auto-configure
JobRegistryBeanPostProcessorwithEnableBatchProcessingandDefaultBatchConfiguration#4245 - Add support for Java Date and Time API types serialization in
Jackson2ExecutionContextStringSerializer#3952 - Add option to provide a custom
JobKeyGeneratorinJdbcJobInstanceDao#3926 - Access to update counts in
JdbcBatchItemWriter#3829 - Add setter for
ObservationConventioninStepBuilder/JobBuilder#4401
🚀 Enhancements
- Public access to
AbstractItemCountingItemStreamItemReader.getCurrentItemCount#1639 - Add
java.util.concurrent.ConcurrentHashMapto the trusted classes list inJackson2ExecutionContextStringSerializer#4407 - Add
java.sql.Dateto the trusted classes list inJackson2ExecutionContextStringSerializer#4407 - Auto-detect the class/interface to be mocked #4426
- Inaccurate exception message in
SimpleJobRepository#4025 - Expose the internal map in
ExecutionContextas read-only #4004 - Add support for quotes in
DelimitedLineAggregator#1139 - Provide better error message in
StaxEventItemReaderifResourcedoes not exist #1171 - Add getters for DAOs in
SimpleJobExplorer#1598 - Use separate parameters for short_context length and exit_message length #1617
- Expose
targetObjectandtargetMethodinAbstractMethodInvokingDelegator#1786 - Create versions of samples using Java configuration #3663
- Improve the issue reporting process #4329
- Replace deprecated
RetryListenerSupport#4453 - Use more
SynchronizedItemReaderin tests #4452 - Take care of some deprecations #4454
🐞 Bug fixes
- Invalid migration script for H2 #4390
- Incorrect drop statements in SQLServer DDL script #4373
SplitBuilder.add(Flow)causes hung execution in some cases #3857- Incorrect thread usage in
SynchronizedItemStreamReaderTests#837 - Concurrent execution of
FlowJobmay causeFlowExecutionException#4092 - Switching incrementers causes jobs to have old job parameters #4073
- Missing setter for strict field in
DelimitedBuilder#809 DefaultJobParametersExtractorno longer copies keys fromJobParameterswhen not contained inExecutionContext#4458- job scope bean doesn't cleanup in unit test #1288
NullPointerExceptioninRepeatTemplate#doHandle()whenunwrapIfRethrown()returns null if logging in DEBUG #1123- Starting a flow with
Flow#nextmakes the first step execute twice #4432
📔 Documentation
- Incorrect Javadoc in
SimpleStepBuilder#4402 - Document the type and name of the surrounding job in
JobLauncherTestUtils#launchStep#3825 - Fix typo in
SimpleMailMessageItemWriterJavadoc #4381 - Fix javadoc errors and warnings #1624
- Migrate documentation to Antora #4422
- Ambiguous description of "Configuring a JobRepository" #4333
- Add Two minutes tutorial to the
README#4329 - Update the Getting started guide #4329
- Broken code samples in reference documentation for Job/Step beans with v5 API #4406
- Improve developer experience for conditional flows #4460
- Incorrect Javadoc in
DefaultFieldSetandDefaultFieldSetFactory#4494 - Incorrect JavaDoc for Methods returning
JobFlowBuilderinJobBuilder#4415 - Update documentation about serializable keys in the execution context #4457
- Improve configuration style toggle in documentation #4357
- Improve the getting started experience with Spring Batch #4329
- Reinstate and Update FAQ page #3878
- Outdated Meta-data ERD #4358
- Documentation unclear on how to replace deprecated
AbstractTaskletStepBuilder#throttleLimit#4389
🔨 Tasks
- Build failure when the default charset of the JVM is not UTF-8 #4417
- Rename
MongoItemReadertoMongoPagingItemReader#4341 - Deprecate jobRepository method in
JobBuilderHelper&StepBuilderHelper#4326 - Add Automatic-Module-Name to
MANIFEST.MFin all components #867 - Deprecate overrides of
StepBuilderHelper#repositoryfor removal #4495
🔨 Dependency upgrades
- Spring Framework 6.1.0
- Spring Integration 6.2.0
- Spring Data 3.2.0
- Spring LDAP 3.2.0
- Spring AMQP 3.1.0
- Spring Kafka 3.1.0
- Micrometer 1.12.0
❤️ Contributors
Thank you to all the contributors who worked on this release!
@IlyaNerd, @ParadiseCHOI, @benelog, @rwinch, @cppwfs, @sjh836, @hpoettker, @jwillebrands, @hwan33, @bio-engineer, @injae-kim, @morenomjc, @LichKing-lee, @santfirax, @acktsap, @sukanth, @seonwoo960000, @robertmcnees, @cgrings, @juchanei, @lsq27, @scordio, @CNJingo, @woniper, @pranavjandu
Full change log: v5.0.3...v5.1.0
v5.0.4
🐞 Bug fixes
- Starting a flow with
Flow#nextmakes the first step execute twice #4432 DefaultJobParametersExtractorno longer copies keys fromJobParameterswhen not contained inExecutionContext#4458- job scope bean doesn't cleanup in unit test #1288
NullPointerExceptioninRepeatTemplate#doHandle()whenunwrapIfRethrown()returns null if logging in DEBUG #1123
🚀 Enhancements
- Inaccurate exception message in
SimpleJobRepository#4025 - Remove unnecessary expressions in
AsyncItemWriter#4009
📔 Documentation
- Documentation unclear on how to replace deprecated
AbstractTaskletStepBuilder#throttleLimit#4389 - Outdated Meta-data ERD #4358
- Incorrect JavaDoc for Methods returning
JobFlowBuilderinJobBuilder#4415 - Incorrect Javadoc in
DefaultFieldSetandDefaultFieldSetFactory#4494 - Update documentation about serializable keys in the execution context #4457
🆙 Dependency Upgrades
- Spring Framework: 6.0.14
- Spring Retry: 2.0.4
- Spring AMQP: 3.0.10
- Spring Data: 3.0.12
- Spring Integration: 6.0.9
- Spring Kafka: 3.0.13
- Spring LDAP: 3.0.6
- Micrometer: 1.10.13
❤️ Contributors
Thank you to all the contributors who worked on this release!
Full change log: v5.0.3...v5.0.4
v4.3.10
Important❗: This is the last OSS release of Spring Batch 4. Please refer to the support policy page for more details about our support policy.
🐞 Bug fixes
NullPointerExceptioninRepeatTemplate#doHandle()whenunwrapIfRethrown()returns null if logging in DEBUG #1123- Job scoped bean doesn't cleanup in unit test #1288
📔 Documentation
- Update documentation about serializable keys in the execution context #4457
- Incorrect JavaDoc for Methods returning
JobFlowBuilderinJobBuilder#4415 - Incorrect Javadoc in
DefaultFieldSetandDefaultFieldSetFactory#4494 - Regression with the CSS styles and JS toggle in the reference documentation of 4.3.x #4437
🔨 Tasks
- Upgrade to gradle 6.9.4
- Switch to
spring-asciidoctor-backendsfor documentation
🔨 Dependency Upgrades
- Spring Framework: 5.3.31
- Spring Retry: 1.3.4
- Spring AMQP: 2.3.16
- Spring Data: 2.7.18
- Spring Integration: 5.5.20
- Spring Kafka: 2.9.13
- Spring LDAP: 2.4.1
- Micrometer: 1.9.17
❤️ Contributors
We would like to thank all contributors who helped in shipping this release!
v5.1.0-RC1
🚀 Enhancements
- Create versions of samples using Java configuration #3663
- Improve the issue reporting process #4329
- Replace deprecated RetryListenerSupport #4453
- Use more SynchronizedItemReader in tests #4452
- Take care of some deprecations #4454
🐞 Bug fixes
DefaultJobParametersExtractorno longer copies keys fromJobParameterswhen not contained inExecutionContext#4458
📔 Documentation
🆙 Dependency Upgrades
- Spring Framework 6.1.0-RC1
- Spring Integration 6.2.0-RC1
- Spring Data 3.2.0-RC1
- Spring LDAP 3.2.0-RC1
- Spring AMQP 3.1.0-RC1
- Spring Kafka 3.1.0-RC1
- Micrometer 1.12.0-RC1
- Spring Retry 2.0.4
- Jackson 2.15.3
- Hibernate 6.3.1.Final
- Avro 1.11.3
❤️ Contributors
Thank you to all the contributors who worked on this release:
v5.1.0-M3
⭐ New features
- Add item reader for Redis #4446
- Add item writer for Redis #3957
- Add ability to start a job flow definition with a decider #4411
- Add support to specify the database type through
EnableBatchProcessing#4320 - Auto-configure
JobRegistryBeanPostProcessorwithEnableBatchProcessingandDefaultBatchConfiguration#4245 - Add support for Java Date and Time API types serialization in
Jackson2ExecutionContextStringSerializer#3952 - Add option to provide a custom
JobKeyGeneratorinJdbcJobInstanceDao#3926 - Access to update counts in
JdbcBatchItemWriter#3829
🚀 Enhancements
- Inaccurate exception message in
SimpleJobRepository#4025 - Expose the internal map in
ExecutionContextas read-only #4004 - Add support for quotes in
DelimitedLineAggregator#1139 - Provide better error message in
StaxEventItemReaderifResourcedoes not exist #1171 - Add getters for DAOs in
SimpleJobExplorer#1598 - Use separate parameters for short_context length and exit_message length #1617
- Expose
targetObjectandtargetMethodinAbstractMethodInvokingDelegator#1786
🐞 Bug fixes
- Switching incrementers causes jobs to have old job parameters #4073
- Missing setter for strict field in
DelimitedBuilder#809
📔 Documentation
🔨 Tasks
- Add Automatic-Module-Name to
MANIFEST.MFin all components #867
❤️ Contributors
Thank you to all the contributors who worked on this release:
@IlyaNerd, @ParadiseCHOI, @benelog, @rwinch, @cppwfs and @sjh836
v5.1.0-M2
⭐ New features
- Add cursor-based
ItemReaderfor MongoDB #4323 - Add support for bulk inserts in
MongoItemWriter#4149 - Provide accessors in
MongoItemWriterto facilitate extensions #3973
🚀 Enhancements
- Add
java.util.concurrent.ConcurrentHashMapto the trusted classes list inJackson2ExecutionContextStringSerializer#4407 - Add
java.sql.Dateto the trusted classes list inJackson2ExecutionContextStringSerializer#4407 - Auto-detect the class/interface to be mocked #4426
🐞 Bug fixes
- Concurrent execution of
FlowJobmay causeFlowExecutionException#4092
🔨 Tasks
- Rename
MongoItemReadertoMongoPagingItemReader#4341 - Deprecate jobRepository method in
JobBuilderHelper&StepBuilderHelper#4326
❤️ Contributors
Thank you to all the contributors who worked on this release!
v5.0.3
🐞 Bug fixes
- Incorrect drop statements in SQLServer DDL script #4373
- Invalid migration script for H2 #4390
- Concurrent execution of FlowJob may cause FlowExecutionException #4092
🚀 Enhancements
- Auto-detect the class/interface to be mocked #4426
- Add
java.util.concurrent.ConcurrentHashMapto the trusted classes list inJackson2ExecutionContextStringSerializer#4407 - Add
java.sql.Dateto the trusted classes list inJackson2ExecutionContextStringSerializer#4407
📔 Documentation
- Incorrect Javadoc in
SimpleStepBuilder#4402 - Document the type and name of the surrounding job in
JobLauncherTestUtils#launchStep#3825 - Fix typo in
SimpleMailMessageItemWriterJavadoc #4381 - Fix javadoc errors and warnings #1624
🔨 Tasks
- Build failure when the default charset of the JVM is not
UTF-8#4417
🆙 Dependency Upgrades
- Spring Framework: 6.0.11
- Spring Retry: 2.0.2
- Spring AMQP: 3.0.8
- Spring Data: 3.0.9
- Spring Integration: 6.0.7
- Spring Kafka: 3.0.10
- Spring LDAP: 3.0.5
- Micrometer: 1.10.10
❤️ Contributors
Thank you to all the contributors who worked on this release!
Full change log: v5.0.2...v5.0.3
v4.3.9
🐞 Bug fixes
- Incorrect retrieval of job parameters in
SimpleJobExplorer#getJobExecutions#4246 - Concurrent execution of FlowJob may cause
FlowExecutionException#4092
🚀 Enhancements
- Slow Query in
JdbcJobInstanceDao.getLastJobInstance()#4024 - Allow
StaxEventItemReaderto auto-detect the input file encoding #4101
📔 Documentation
🔨 Dependency Upgrades
- Spring Framework: 5.3.29
- Spring Retry: 1.3.4
- Spring AMQP: 2.3.16
- Spring Data: 2.7.15
- Spring Integration: 5.5.18
- Spring Kafka: 2.9.11
- Spring LDAP: 2.4.1
- Micrometer: 1.9.14
❤️ Contributors
We would like to thank all contributors who helped in shipping this release!
v5.1.0-M1
⭐ New features
- Add support for Virtual Threads #4399
- Add setter for
ObservationConventionin StepBuilder/JobBuilder #4401 - Add synchronized decorators for non-stream item readers/writers #4368
- Add option to clear the persistence context in
JpaItemWriter#804
🚀 Enhancements
- Public access to
AbstractItemCountingItemStreamItemReader.getCurrentItemCount#1639
🐞 Bug fixes
- Invalid migration script for H2 #4390
- Incorrect drop statements in SQLServer DDL script #4373
SplitBuilder.add(Flow)causes hung execution in some cases #3857- Incorrect thread usage in
SynchronizedItemStreamReaderTests#837
🔨 Dependency upgrades
- Spring Framework 6.1.0-M2
- Spring Integration 6.2.0-M1
- Spring Data 3.2.0-M1
- Spring LDAP 3.2.0-M1
- Micrometer 1.12.0-M1
📔 Documentation
- Incorrect Javadoc in
SimpleStepBuilder#4402 - Document the type and name of the surrounding job in
JobLauncherTestUtils#launchStep#3825 - Fix typo in
SimpleMailMessageItemWriterJavadoc #4381 - Fix javadoc errors and warnings #1624
🔨 Tasks
- Build failure when the default charset of the JVM is not UTF-8 #4417
❤️ Contributors
Thank you to all the contributors who worked on this release!
v5.0.2
⭐ New features
- Allow
StaxEventItemReaderto auto-detect the input file encoding #4101
🚀 Enhancements
- Disable Docker-based tests when Docker is not available #4360
JobParametersshould useLinkedHashMapinstead ofHashMap#4179- Slow Query in
JdbcJobInstanceDao.getLastJobInstance()#4024 - Make
KafkaItemWriterextensible and document its thread-safety #3970 - Upgrade to Mockito 5 #4366
- Enhance switch statements #4365
- Change visibility of properties in
JdbcPagingItemReaderBuilder#4331 - Reduce use of deprecated APIs #4334
- Add SafeVarargs annotations #4335
🐞 Bug fixes
- Incorrect v5 migration script for SQLServer #4349
- Implement
equalsandhashCodeinChunkclass #4314 - Incorrect retrieval of job parameters in
SimpleJobExplorer#getJobExecutions#4246
📔 Documentation
- Fix
BATCH_STEP_EXECUTIONDDL #4356 - Fix for the XML/Java switch regression #4355
- Documentation Update to scalability.adoc #4338
- Fix tiny misspelling in the sybase integration test comments #4313
- Missing instruction about accessing historical data in the migration guide #4352
- Document Thread Safety of item readers and writers #3646
- Missing DDL migration script related to
BATCH_STEP_EXECUTIONtable in v5 migration guide #4332 - Incorrect type of date/time fields in documentation #4324
- Asciidoctor errors #4168
🔨 Tasks
- Forks fail on GitHub Actions Continuous Inspection Build #4346
- Intermittent failure in
AsynchronousTests#testRollback#4095 - Intermittent failure in
ConcurrentTransactionAwareProxyTestson windows #3847
🆙 Dependency Upgrades
- Spring Framework: 6.0.9
- Spring Retry: 2.0.1
- Spring AMQP: 3.0.4
- Spring Data: 3.0.6
- Spring Integration: 6.0.5
- Spring Kafka: 3.0.7
- Spring LDAP: 3.0.3
- Micrometer: 1.10.7
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Buzzardo, @Ditscheridou, @cppwfs, @hpoettker, @jamesrwoodruff, @kajsa, and @viviennes7
Full change log: v5.0.1...v5.0.2