Spring Batch Versions Save

Spring Batch is a framework for writing batch applications using Java and Spring

v5.1.1

2 months ago

:star: New features

  • Add JobRegistrySmartInitializingSingleton #4521

:lady_beetle: Bug fixes

  • Incorrect error message in JobOperatorFactoryBean #4528
  • DefaultJobParametersConverter throws java.lang.ArrayIndexOutOfBoundsException if input is empty string #4505
  • JobRepository.deleteJobInstance() Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4382
  • Incorrect step configuration when setting the taskExecutor before faultTolerant() #4438
  • Incorrect deprecation in MongoPagingItemReader #4552

:rocket: Enhancements

  • Check dirty flag of step execution context before update in inner loop #4503

:notebook_with_decorative_cover: Documentation

  • Incorrect Type of getter in Documentation for JobParameters#getDouble #4526
  • Broken link to Spring Batch docs #4498
  • UI Aligment Issue - Spring Batch Version Number in Docs #4534

🆙 Dependency Upgrades

  • Spring Framework: 6.1.4
  • Spring Retry: 2.0.5
  • Spring Integration: 6.2.2
  • Spring Data: 3.2.3
  • Spring AMQP: 3.1.2
  • Spring Kafka: 3.1.2
  • Micrometer: 1.12.3

:heart: Contributors

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


Full change log: https://github.com/spring-projects/spring-batch/compare/v5.1.0...v5.1.1

v5.0.5

2 months ago

:lady_beetle: Bug fixes

  • Incorrect error message in JobOperatorFactoryBean #4528
  • DefaultJobParametersConverter throws java.lang.ArrayIndexOutOfBoundsException if input is empty string #4505
  • JobRepository.deleteJobInstance() Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4382
  • Incorrect step configuration when setting the taskExecutor before faultTolerant() #4438

:rocket: Enhancements

  • Check dirty flag of step execution context before update in inner loop #4503

:notebook_with_decorative_cover: Documentation

  • Incorrect Type of getter in Documentation for JobParameters#getDouble #4526

🆙 Dependency Upgrades

  • Spring Framework: 6.0.17
  • Spring Retry: 2.0.5
  • Spring AMQP: 3.0.11
  • Spring Kafka: 3.0.14

:heart: Contributors

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


Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.4...v5.0.5

v5.0.4

5 months ago

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

:rocket: Enhancements

  • Inaccurate exception message in SimpleJobRepository #4025
  • Remove unnecessary expressions in AsyncItemWriter #4009

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

:heart: Contributors

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


Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.3...v5.0.4

v5.1.0

5 months ago

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

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

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

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

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

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

:heart: 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: https://github.com/spring-projects/spring-batch/compare/v5.0.3...v5.1.0

4.3.10

5 months ago

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

6 months ago

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

:lady_beetle: Bug fixes

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

:notebook_with_decorative_cover: Documentation

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

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

:heart: Contributors

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

@hpoettker @cppwfs @jwillebrands

v5.1.0-M3

7 months ago

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

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

:lady_beetle: Bug fixes

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

:notebook_with_decorative_cover: Documentation

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

:hammer: Tasks

  • Add Automatic-Module-Name to MANIFEST.MF in all components #867

:heart: Contributors

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

@IlyaNerd, @ParadiseCHOI, @benelog, @rwinch, @cppwfs and @sjh836

v5.1.0-M2

8 months ago

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

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

:lady_beetle: Bug fixes

  • Concurrent execution of FlowJob may cause FlowExecutionException #4092

:hammer: Tasks

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

:heart: Contributors

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

v5.0.3

8 months ago

:lady_beetle: Bug fixes

  • Incorrect drop statements in SQLServer DDL script #4373
  • Invalid migration script for H2 #4390
  • Concurrent execution of FlowJob may cause FlowExecutionException #4092

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

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

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

:heart: Contributors

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


Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.2...v5.0.3

4.3.9

8 months ago

🐞 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!