github spring-projects/spring-batch v5.1.0

latest releases: v5.2.0-M1, v5.1.2, v5.0.6...
10 months ago

⭐ 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

Don't miss a new spring-batch release

NewReleases is sending notifications on new releases.