Skip to content

Releases: spring-projects/spring-batch

v5.1.0

22 Nov 16:21
ebedd02
Compare
Choose a tag to compare

⭐ 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 ItemReader for MongoDB #4323
  • Add support for bulk inserts in MongoItemWriter #4149
  • Provide accessors in MongoItemWriter to 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 JobRegistryBeanPostProcessor with EnableBatchProcessing and DefaultBatchConfiguration #4245
  • Add support for Java Date and Time API types serialization in Jackson2ExecutionContextStringSerializer #3952
  • Add option to provide a custom JobKeyGenerator in JdbcJobInstanceDao #3926
  • Access to update counts in JdbcBatchItemWriter #3829
  • Add setter for ObservationConvention in StepBuilder/JobBuilder #4401

🚀 Enhancements

  • Public access to AbstractItemCountingItemStreamItemReader.getCurrentItemCount #1639
  • Add java.util.concurrent.ConcurrentHashMap to the trusted classes list in Jackson2ExecutionContextStringSerializer #4407
  • Add java.sql.Date to the trusted classes list in Jackson2ExecutionContextStringSerializer #4407
  • Auto-detect the class/interface to be mocked #4426
  • Inaccurate exception message in SimpleJobRepository #4025
  • Expose the internal map in ExecutionContext as read-only #4004
  • Add support for quotes in DelimitedLineAggregator #1139
  • Provide better error message in StaxEventItemReader if Resource does not exist #1171
  • Add getters for DAOs in SimpleJobExplorer #1598
  • Use separate parameters for short_context length and exit_message length #1617
  • Expose targetObject and targetMethod in AbstractMethodInvokingDelegator #1786
  • 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

  • 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 FlowJob may cause FlowExecutionException #4092
  • Switching incrementers causes jobs to have old job parameters #4073
  • Missing setter for strict field in DelimitedBuilder #809
  • DefaultJobParametersExtractor no longer copies keys from JobParameters when not contained in ExecutionContext #4458
  • job scope bean doesn't cleanup in unit test #1288
  • NullPointerException in RepeatTemplate#doHandle() when unwrapIfRethrown() returns null if logging in DEBUG #1123
  • Starting a flow with Flow#next makes 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 SimpleMailMessageItemWriter Javadoc #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 DefaultFieldSet and DefaultFieldSetFactory #4494
  • Incorrect JavaDoc for Methods returning JobFlowBuilder in JobBuilder #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 MongoItemReader to MongoPagingItemReader #4341
  • Deprecate jobRepository method in JobBuilderHelper & StepBuilderHelper #4326
  • Add Automatic-Module-Name to MANIFEST.MF in all components #867
  • Deprecate overrides of StepBuilderHelper#repository for 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

22 Nov 18:45
3d382c1
Compare
Choose a tag to compare

🐞 Bug fixes

  • Starting a flow with Flow#next makes the first step execute twice #4432
  • DefaultJobParametersExtractor no longer copies keys from JobParameters when not contained in ExecutionContext #4458
  • job scope bean doesn't cleanup in unit test #1288
  • NullPointerException in RepeatTemplate#doHandle() when unwrapIfRethrown() 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 JobFlowBuilder in JobBuilder #4415
  • Incorrect Javadoc in DefaultFieldSet and DefaultFieldSetFactory #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

22 Nov 10:33
Compare
Choose a tag to compare

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

  • NullPointerException in RepeatTemplate#doHandle() when unwrapIfRethrown() 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 JobFlowBuilder in JobBuilder #4415
  • Incorrect Javadoc in DefaultFieldSet and DefaultFieldSetFactory #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-backends for 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

18 Oct 14:41
3a9c468
Compare
Choose a tag to compare
v5.1.0-RC1 Pre-release
Pre-release

🚀 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

  • DefaultJobParametersExtractor no longer copies keys from JobParameters when not contained in ExecutionContext #4458

📔 Documentation

  • Add Two minutes tutorial to the README #4329
  • Update the Getting started guide #4329

🆙 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:

@hpoettker @cppwfs @jwillebrands

v5.1.0-M3

20 Sep 08:27
63a0393
Compare
Choose a tag to compare
v5.1.0-M3 Pre-release
Pre-release

⭐ 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 JobRegistryBeanPostProcessor with EnableBatchProcessing and DefaultBatchConfiguration #4245
  • Add support for Java Date and Time API types serialization in Jackson2ExecutionContextStringSerializer #3952
  • Add option to provide a custom JobKeyGenerator in JdbcJobInstanceDao #3926
  • Access to update counts in JdbcBatchItemWriter #3829

🚀 Enhancements

  • Inaccurate exception message in SimpleJobRepository #4025
  • Expose the internal map in ExecutionContext as read-only #4004
  • Add support for quotes in DelimitedLineAggregator #1139
  • Provide better error message in StaxEventItemReader if Resource does not exist #1171
  • Add getters for DAOs in SimpleJobExplorer #1598
  • Use separate parameters for short_context length and exit_message length #1617
  • Expose targetObject and targetMethod in AbstractMethodInvokingDelegator #1786

🐞 Bug fixes

  • Switching incrementers causes jobs to have old job parameters #4073
  • Missing setter for strict field in DelimitedBuilder #809

📔 Documentation

  • Migrate documentation to Antora #4422
  • Ambiguous description of "Configuring a JobRepository" #4333

🔨 Tasks

  • Add Automatic-Module-Name to MANIFEST.MF in 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

24 Aug 01:48
f4e9eea
Compare
Choose a tag to compare
v5.1.0-M2 Pre-release
Pre-release

⭐ New features

  • Add cursor-based ItemReader for MongoDB #4323
  • Add support for bulk inserts in MongoItemWriter #4149
  • Provide accessors in MongoItemWriter to facilitate extensions #3973

🚀 Enhancements

  • Add java.util.concurrent.ConcurrentHashMap to the trusted classes list in Jackson2ExecutionContextStringSerializer #4407
  • Add java.sql.Date to the trusted classes list in Jackson2ExecutionContextStringSerializer #4407
  • Auto-detect the class/interface to be mocked #4426

🐞 Bug fixes

  • Concurrent execution of FlowJob may cause FlowExecutionException #4092

🔨 Tasks

  • Rename MongoItemReader to MongoPagingItemReader #4341
  • Deprecate jobRepository method in JobBuilderHelper & StepBuilderHelper #4326

❤️ Contributors

Thank you to all the contributors who worked on this release!

v5.0.3

23 Aug 17:36
1c81b82
Compare
Choose a tag to compare

🐞 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.ConcurrentHashMap to the trusted classes list in Jackson2ExecutionContextStringSerializer #4407
  • Add java.sql.Date to the trusted classes list in Jackson2ExecutionContextStringSerializer #4407

📔 Documentation

  • Incorrect Javadoc in SimpleStepBuilder #4402
  • Document the type and name of the surrounding job in JobLauncherTestUtils#launchStep #3825
  • Fix typo in SimpleMailMessageItemWriter Javadoc #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

23 Aug 14:52
Compare
Choose a tag to compare

🐞 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 StaxEventItemReader to auto-detect the input file encoding #4101

📔 Documentation

  • Incorrect Javadoc in SimpleStepBuilder #4402
  • Fix typo in SimpleMailMessageItemWriter Javadoc #4381

🔨 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

19 Jul 09:16
b874b79
Compare
Choose a tag to compare
v5.1.0-M1 Pre-release
Pre-release

⭐ New features

  • Add support for Virtual Threads #4399
  • Add setter for ObservationConvention in 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 SimpleMailMessageItemWriter Javadoc #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

17 May 14:55
1266de6
Compare
Choose a tag to compare

⭐ New features

  • Allow StaxEventItemReader to auto-detect the input file encoding #4101

🚀 Enhancements

  • Disable Docker-based tests when Docker is not available #4360
  • JobParameters should use LinkedHashMap instead of HashMap #4179
  • Slow Query in JdbcJobInstanceDao.getLastJobInstance() #4024
  • Make KafkaItemWriter extensible 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 equals and hashCode in Chunk class #4314
  • Incorrect retrieval of job parameters in SimpleJobExplorer#getJobExecutions #4246

📔 Documentation

  • Fix BATCH_STEP_EXECUTION DDL #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_EXECUTION table 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 ConcurrentTransactionAwareProxyTests on 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