Skip to content

Releases: spring-projects/spring-batch

v6.0.0-M1

23 Jul 14:04
817a997
Compare
Choose a tag to compare
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 under core.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 in SimpleJobOperator #4817
  • Remove JobExplorer bean registration from the default batch configuration #4825
  • Remove unnecessary reflection in RemoteChunkHandlerFactoryBean #4839
  • Rename SimpleJobOperator to TaskExecutorJobOperator #4834
  • Rename JobRepositoryFactoryBean to JdbcJobRepositoryFactoryBean #4829
  • FlatFileItemReaderBuilder : raise check exception on build #4757
  • Make JobOperator extend JobLauncher #4832
  • Make JobRepository extend JobExplorer #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 with JobRepository in RemoteStepExecutionAggregator #4928
  • Replace usage of JobExplorer with JobRepository in SystemCommandTasklet #4927
  • Replace usage of JobLauncher with JobOperator in JobLaunchingGateway and JobLaunchingMessageHandler #4924
  • Replace usage of JobLauncher with JobOperator in JobStep #4923
  • Replace usage of JobExplorer with JobRepository in StepExecutionRequestHandler #4918
  • Rename JobLauncherTestUtils to JobOperatorTestUtils #4920
  • Rename JobExplorerFactoryBean to JdbcJobExplorerFactoryBean #4846
  • Deprecate StepRunner #4921
  • Deprecate modular job configuration through EnableBatchProcessing #4866
  • Remove usage of JobExplorer in BatchIntegrationConfiguration #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

v5.2.2

19 Mar 15:33
503adc2
Compare
Choose a tag to compare

🐞 Bug fixes

  • SynchronizeStatus in MongoJobExecutionDao is not upgrading the status of the JobExecution #4760
  • @SpringBatchTest with JUnit @Nested triggers new test context creation #4738
  • ExecutionContext dirty flag does not remain true when null is put for a non-existent key #4692
  • ExecutionContext dirty flag is reset by a new put #4685
  • MultiResourceItemWriter creates files with varying line count #1722
  • Fix index creation statements in MongoDB DDL script #4758
  • Attempt to close all delegate readers even when some fail #4764
  • Attempt to close all delegate writers even when some fail #4750

🚀 Enhancements

  • Add AOT runtime hints for infrastructure artifacts #4785
  • Add AOT runtime hints for core listeners #4769
  • Use Files.delete() for better error reporting #4775
  • Fix variable usage in ScriptItemProcessorTests and include script engine test dependencies #4678
  • Add @FunctionalInterface to ChunkProcessor #4773

📔 Documentation

  • Update usage of deprecated StepExecutionListenerSupport in documention #4784
  • Fix typo in Javadocs of FlatFileItemWriterBuilder#name(String) #4781
  • Fix incorrect Javadocs in remote partitioning setup builders #4778
  • Fix wrong statement in Javadoc of SimplePartitioner #4772
  • Fix typo in intercepting-execution.adoc #4766
  • Remove outdated AssertFile usage in section "Validating Output Files" of the reference documentation #4754

🆙 Dependency Upgrades

  • Spring Framework: 6.2.4
  • Spring Retry: 2.0.11
  • Micrometer: 1.14.5
  • Spring Integration: 6.4.3
  • Spring AMQP: 3.2.4
  • Spring Kafka: 3.3.4
  • Spring Data: 3.4.4
  • Spring Ldap: 3.2.11

❤️ Contributors

Thank you to all the contributors who contributed to this release:

@charlie881007, @GGHDMS, @neoludo, @elimelec, @hpoettker, @pongdangx2, @quaff, @scordio, @yeonnex, and @yoseplee


Full change log: v5.2.1...v5.2.2

v5.1.3

19 Dec 03:00
814f686
Compare
Choose a tag to compare

Heads-up: ❗This is the last OSS release of the 5.1.x line ❗Please check the support page.

⭐ New features

  • Add DatabaseType POSTGRES for the product name EnterpriseDB #4627

🚀 Enhancements

  • Bad performance of GET_LAST_STEP_EXECUTION query on DB2 with large STEP_EXECUTION table #4657
  • Missing @FunctionalInterface in JobKeyGenerator #4613

🐞 Bug fixes

  • Different behavior when interrupting a job, depending on the parallel flow order #3939
  • MongoPagingItemReader never reset page number #1086
  • Job restart after stop fails #1287
  • Wrong column types in JdbcStepExecutionDao #4648

📔 Documentation

  • Grammatical error in restart.adoc #4600
  • Typo in architecture doc #4607
  • Typo in the documentation chapter Spring Batch Integration #4649
  • Missing documentation about MultiResourceItemWriter not creating empty files when no data goes through delegates #4645
  • Missing note about not scoping Step beans with Job scope #3900
  • Unclear documentation about wildcard usage to select input files #4707
  • Regression in Javadoc deployment path with 5.1.2 #4604

🆙 Dependency Upgrades

  • Spring Framework: 6.1.16
  • Spring Retry: 2.0.11
  • Micrometer: 1.12.12
  • Spring Integration: 6.2.11
  • Spring AMQP: 3.1.8
  • Spring Kafka: 3.1.10
  • Spring Data: 3.2.12
  • Spring Ldap: 3.2.9

❤️ Contributors

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

v5.2.1

18 Dec 20:39
a8a458f
Compare
Choose a tag to compare

🐞 Bug fixes

  • JobExecution#getJobExecution(@Nullable Long executionId) returns null when using MongoDB as JobExplorer #4722
  • Different behavior when interrupting a job, depending on the parallel flow order #3939
  • MongoPagingItemReader never reset page number #1086
  • DerbyPagingQueryProvider remaining pages query is not correct #1253
  • Job restart after stop fails #1287

🚀 Enhancements

  • Update DerbyPagingQueryProvider for Derby 10.7 and above #1673

📔 Documentation

  • Missing note about not scoping Step beans with Job scope #3900
  • Repeating 'the the' exists #4615
  • Unclear documentation about wildcard usage to select input files #4707
  • Incorrect class name and grammatical error in docs whats-new #4720
  • Fix link section #4696
  • Error in Migration guide #4695
  • Incorrect link and closing tag for listeners in documentation #4610

🆙 Dependency Upgrades

  • Spring Framework: 6.2.1
  • Spring Retry: 2.0.11
  • Micrometer: 1.14.2
  • Spring Integration: 6.4.1
  • Spring AMQP: 3.2.1
  • Spring Kafka: 3.3.1
  • Spring Data: 3.4.1
  • Spring Ldap: 3.2.9

🔨 Tasks

  • Deprecate SqlWindowingPagingQueryProvider #4733

❤️ Contributors

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

@Seungpang, @Solodye, @ngocnhan-tran1996, @uli-f, and @xeounxzxu

v5.2.0

21 Nov 08:42
ade546b
Compare
Choose a tag to compare

⭐ New features

  • Add support for MongoDB as JobRepository #877
  • Introduce a resourceless job repository implementation #4679
  • Add adapters for Java functional interfaces #4672
  • Add ability to customize the job parameters converter in the default batch configuration #4650
  • Add CompositeItemReader analogous to CompositeItemWriter and CompositeItemProcessor #757
  • Allow dependent steps to start concurrently #2044
  • Add blocking queue item reader/writer to enable implementing the staged event-driven architecture in batch jobs #2350
  • Add support for data classes in JdbcCursorItemReaderBuilder & JdbcPagingItemReaderBuilder #4578
  • Add support for query hints in JPA item readers #4479
  • Add possibility to configure line separator in RecursiveCollectionLineAggregator #4594
  • Add JobRegistrySmartInitializingSingleton #4521
  • Add DatabaseType POSTGRES for the product name EnterpriseDB #4627
  • Revisit the mechanism of job registration #4547

🐞 Bug fixes

  • Incorrect bean configuration in DefaultBatchConfiguration #4543
  • BeanPostProcessorChecker.postProcessAfterInitialization WARNING after upgrade spring-framework-6.1.0 #4489
  • Possible duplicate state transitions in flow definition #3674
  • Order of Transition Elements Still Does Not completely adhere to documentation #3996
  • Memory leak in MessageChannelPartitionHandler when polling the database #4598
  • ListItemWriter<T>::getWrittenItems has bad wildcard return type #4576
  • SimpleBinaryBufferedReaderFactory misses line endings #811
  • StepExecution.getEndTime() returns null in StepExecutionListener.afterStep() #3846
  • Default value for ignoreWarnings in JdbcCursorItemReaderBuilder does not align with documentation #4570
  • Remote partitioning doesn't work if you're using graalvm #4564
  • SystemCommandTasklet does not propagate errors #4483
  • Incorrect Chunk property value in implementation of ItemWriter write method #4560
  • Incorrect step configuration when setting the taskExecutor before faultTolerant() #4438
  • Incorrect deprecation in MongoPagingItemReader #4552
  • JobRepository.deleteJobInstance() Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4382
  • DefaultJobParametersConverter throws java.lang.ArrayIndexOutOfBoundsException if input is empty string #4505
  • Wrong column types in JdbcStepExecutionDao #4648
  • MongoStepExecutionDao returns an different stepExecution if a job has multiple steps spring-projects-experimental/spring-batch-experimental/issues/3

🚀 Enhancements

  • Bad performance of GET_LAST_STEP_EXECUTION query on DB2 with large STEP_EXECUTION table #4657
  • Use Threadlocal.remove() instead of Threadlocal.set(null) #4601
  • Performance issue in DefaultFieldSet due to the usage of SimpleDateFormat #1694
  • Improve Error Messages in JobParametersBuilder methods #4581
  • Implement jumpToItem in JsonItemReader #4557
  • Maintain similar ordering of elements between DefaultStateTransitionComparator and FlowJobBuilder #4527
  • Avoid collection copying #4553
  • Make util classes to follow code style guide #4545
  • Use annotation @Override consistently #4512
  • Check dirty flag of step execution context before update in inner loop #4503
  • Missing @FunctionalInterface in JobKeyGenerator #4613
  • Proper default value for skipLimit #4661

📔 Documentation

  • Flow order priority does not match documented behavior #4456
  • Incorrect link to batch reference documentation on project page #4637
  • Typo in architecture doc #4607
  • Grammatical error in restart.adoc #4600
  • Incorrect link in appendix #4595
  • Missing information about error handling in ChunkListeners #4384
  • Improve Javadoc regarding the sort order in RepositoryItemReader #4462
  • Fix code sample that uses deprecated StepBuilderFactory #4582
  • Misleading documentation on ItemWriteListener #4400
  • Incorrect code example in documentation #4550
  • Reference Documentation Uses Deprecated Class StepExecutionListenerSupport #4538
  • Incorrect Type of getter in Documentation for JobParameters#getDouble #4526
  • UI Aligment Issue - Spring Batch Version Number in Docs #4534
  • Missing documentation about MultiResourceItemWriter not creating empty files when no data goes through delegates #4645
  • Typo in the documentation chapter Spring Batch Integration #4649

🆙 Dependency Upgrades

  • Spring Framework: 6.2.0
  • Spring Retry: 2.0.10
  • Micrometer: 1.14.1
  • Spring Integration: 6.4.0
  • Spring AMQP: 3.2.0
  • Spring Kafka: 3.3.0
  • Spring Data: 3.4.0
  • Spring Ldap: 3.2.8

🔨 Tasks

  • Deprecate the usage of LobHandler #4588
  • Deprecate SystemPropertyInitializer #4680
  • Remove deprecated APIs scheduled for removal in v5.2.0 #4398
  • Regression in javadocs deployment script #4511

❤️ Contributors

Many thanks to all contributors who worked on this release!


Full change log: v5.1.2...v5.2.0

v5.2.0-RC1

24 Oct 00:42
0911e89
Compare
Choose a tag to compare
v5.2.0-RC1 Pre-release
Pre-release

⭐ New features

  • Allow Subclasses in the CompositeItemReader #4682

🐞 Bug fixes

🚀 Enhancements

  • Missing @FunctionalInterface in JobKeyGenerator #4613

📔 Documentation

  • Missing documentation about MultiResourceItemWriter not creating empty files when no data goes through delegates #4645
  • Typo in the documentation chapter Spring Batch Integration #4649

🆙 Dependency Upgrades

  • Spring Framework: 6.2.0-RC2
  • Spring Retry: 2.0.10
  • Micrometer: 1.14.0-RC1
  • Spring Integration: 6.4.0-RC1
  • Spring AMQP: 3.2.0-RC1
  • Spring Kafka: 3.3.0-RC1
  • Spring Data: 3.4.0-RC1
  • Spring Ldap: 3.2.7

❤️ Contributors

Many thanks to all contributors who worked on this release!


Full change log: v5.2.0-M2...v5.2.0-RC1

v5.2.0-M2

11 Oct 22:56
8319c54
Compare
Choose a tag to compare
v5.2.0-M2 Pre-release
Pre-release

⭐ New features

  • Add support for MongoDB as JobRepository #877

  • Introduce a resourceless job repository implementation #4679

  • Add adapters for Java functional interfaces #4672

  • Add ability to customize the job parameters converter in the default batch configuration #4650

  • Add DatabaseType POSTGRES for the product name EnterpriseDB #4627

  • Simple CompositeItemReader analogous to CompositeItemWriter and CompositeItemProcessor #757

  • Allow dependent steps to start concurrently #2044

  • Add blocking queue item reader/writer to enable implementing the staged event-driven architecture in batch jobs #2350

🚀 Enhancements

  • Bad performance of GET_LAST_STEP_EXECUTION query on DB2 with large STEP_EXECUTION table #4657

🔨 Tasks

  • Deprecate the usage of LobHandler #4588
  • Deprecate SystemPropertyInitializer #4680

❤️ Contributors

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


Full change log: v5.2.0-M1...v5.2.0-M2

v5.2.0-M1

18 Sep 08:34
eae2ef6
Compare
Choose a tag to compare
v5.2.0-M1 Pre-release
Pre-release

⭐ New features

  • Add support for data classes in JdbcCursorItemReaderBuilder & JdbcPagingItemReaderBuilder #4578
  • Add support for query hints in JPA item readers #4479
  • Add possibility to configure line separator in RecursiveCollectionLineAggregator #4594
  • Revisit the mechanism of job registration #4547
  • Add JobRegistrySmartInitializingSingleton #4521

🐞 Bug fixes

  • Incorrect bean configuration in DefaultBatchConfiguration #4543
  • BeanPostProcessorChecker.postProcessAfterInitialization WARNING after upgrade spring-framework-6.1.0 #4489
  • Possible duplicate state transitions in flow definition #3674
  • Order of Transition Elements Still Does Not completely adhere to documentation #3996
  • Memory leak in MessageChannelPartitionHandler when polling the database #4598
  • ListItemWriter<T>::getWrittenItems has bad wildcard return type #4576
  • SimpleBinaryBufferedReaderFactory misses line endings #811
  • StepExecution.getEndTime() returns null in StepExecutionListener.afterStep() #3846
  • Default value for ignoreWarnings in JdbcCursorItemReaderBuilder does not align with documentation #4570
  • Remote partitioning doesn't work if you're using graalvm #4564
  • SystemCommandTasklet does not propagate errors #4483
  • Incorrect Chunk property value in implementation of ItemWriter write method #4560
  • Incorrect step configuration when setting the taskExecutor before faultTolerant() #4438
  • Incorrect deprecation in MongoPagingItemReader #4552
  • JobRepository.deleteJobInstance() Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4382
  • DefaultJobParametersConverter throws java.lang.ArrayIndexOutOfBoundsException if input is empty string #4505

🚀 Enhancements

  • Use Threadlocal.remove() instead of Threadlocal.set(null) #4601
  • Performance issue in DefaultFieldSet due to the usage of SimpleDateFormat #1694
  • Improve Error Messages in JobParametersBuilder methods #4581
  • Implement jumpToItem in JsonItemReader #4557
  • Maintain similar ordering of elements between DefaultStateTransitionComparator and FlowJobBuilder #4527
  • Avoid collection copying #4553
  • Make util classes to follow code style guide #4545
  • Use annotation @Override consistently #4512
  • Check dirty flag of step execution context before update in inner loop #4503

📔 Documentation

  • Flow order priority does not match documented behavior #4456
  • Incorrect link to batch reference documentation on project page #4637
  • Typo in architecture doc #4607
  • Grammatical error in restart.adoc #4600
  • Incorrect link in appendix #4595
  • Missing information about error handling in ChunkListeners #4384
  • Improve Javadoc regarding the sort order in RepositoryItemReader #4462
  • Fix code sample that uses deprecated StepBuilderFactory #4582
  • Misleading documentation on ItemWriteListener #4400
  • Incorrect code example in documentation #4550
  • Reference Documentation Uses Deprecated Class StepExecutionListenerSupport #4538
  • Incorrect Type of getter in Documentation for JobParameters#getDouble #4526
  • UI Aligment Issue - Spring Batch Version Number in Docs #4534

🆙 Dependency Upgrades

  • Spring Framework: 6.2.0-RC1
  • Spring Retry: 2.0.9
  • Micrometer: 1.14.0-M3
  • Spring Integration: 6.4.0-M3
  • Spring AMQP: 3.2.0-M3
  • Spring Kafka: 3.3.0-M3
  • Spring Data: 3.4.0-M1
  • Spring Ldap: 3.2.6

🔨 Tasks

  • Remove deprecated APIs scheduled for removal in v5.2.0 #4398
  • Regression in javadocs deployment script #4511

❤️ Contributors

Many thanks to all contributors who worked on this release!


Full change log: v5.1.2...v5.2.0-M1

v5.1.2

22 May 11:45
a8f8d0b
Compare
Choose a tag to compare

🐞 Bug fixes

  • Incorrect Chunk property value in implementation of ItemWriter write method #4560
  • SystemCommandTasklet does not propagate errors #4483
  • Remote partitioning doesn't work if you're using graalvm #4564
  • SimpleBinaryBufferedReaderFactory misses line endings #811
  • Memory leak in MessageChannelPartitionHandler when polling the database #4598

🚀 Enhancements

  • Improve Error Messages in JobParametersBuilder methods #4581

📔 Documentation

  • Reference Documentation Uses Deprecated Class StepExecutionListenerSupport #4538
  • Incorrect code example in documentation #4550
  • Misleading documentation on ItemWriteListener #4400
  • Code sample uses deprecated StepBuilderFactory #4582
  • Typo in java-config.adoc #4591
  • Incorrect link in appendix #4595

🆙 Dependency Upgrades

  • Spring Framework: 6.1.7
  • Spring Retry: 2.0.6
  • Micrometer: 1.12.6
  • Spring Integration: 6.2.5
  • Spring AMQP: 3.1.5
  • Spring Kafka: 3.1.5
  • Spring Data: 3.2.6
  • Spring Ldap: 3.2.3

❤️ Contributors

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


Full change log: v5.1.1...v5.1.2

v5.0.6

22 May 08:24
a79e42f
Compare
Choose a tag to compare

🐞 Bug fixes

  • Incorrect Chunk property value in implementation of ItemWriter write method #4560
  • SystemCommandTasklet does not propagate errors #4483
  • Remote partitioning doesn't work if you're using graalvm #4564
  • SimpleBinaryBufferedReaderFactory misses line endings #811
  • Memory leak in MessageChannelPartitionHandler when polling the database #4598

🚀 Enhancements

  • Improve Error Messages in JobParametersBuilder methods #4581

📔 Documentation

  • Reference Documentation Uses Deprecated Class StepExecutionListenerSupport #4538
  • Incorrect code example in documentation #4550
  • Misleading documentation on ItemWriteListener #4400
  • Code sample uses deprecated StepBuilderFactory #4582
  • Typo in java-config.adoc #4591

🆙 Dependency Upgrades

  • Spring Framework: 6.0.20
  • Spring Retry: 2.0.6
  • Spring AMQP: 3.0.14
  • Spring Kafka: 3.0.17

❤️ Contributors

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


Full change log: v5.0.5...v5.0.6

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy