Skip to content

Releases: spring-projects/spring-batch

v5.0.0

24 Nov 04:38
Compare
Choose a tag to compare

Please refer to the migration guide for more details about upgrade instructions.

⭐ New Features

  • Upgrade minimum Java version to 17 #3994
  • Add setter with a strongly typed parameter for the transaction isolation level type #4032
  • Add getDataSource method to DefaultBatchConfigurer #3872
  • Add Micrometer Observation API usage #4065
  • Integrate SAP Hana as supported Spring Batch database #1087
  • Create Maven BOM for Spring Batch modules #1097
  • Allow Lambdas to be passed as item processors in Java DSL #4061
  • Best to distinguish CreateTime and StartTime in StepExecution #4049
  • Make charset configurable in JdbcExecutionContextDao #795
  • Add FunctionalInterface annotation where appropriate #4107
  • Add FieldExtractor implementation for Java records #4159
  • Configure the right FieldExtractor based on the type of items in FlatFileItemWriterBuilder #4161
  • Configure the right FieldSetMapper based on the type of items in FlatFileItemReaderBuilder #4160
  • Change transaction manager type to JdbcTransactionManager in default batch configuration #4126
  • Add support to customize transaction attributes #4195
  • Add support to configure the transaction manager in SimpleJobOperator #1078
  • Add support to configure the transaction manager in SimpleJobExplorer #1307
  • Revisit the configuration of infrastructure beans with @EnableBatchProcessing #3942
  • Add native-image support for AbstractJobRepositoryFactoryBean #4144
  • Add native hints for Spring Batch #4187
  • Use the Chunk API consistently #3954
  • Parameter types improvement #2122
  • Support Java 8 Dates for Job Parameters #1035
  • Improve testability of SystemCommandTasklet #3955
  • String array command with SystemCommandTasklet #752
  • Add Spring Batch version in the execution context #4215
  • Add native reflection hints for StepContext and JobContext #4228
  • Add Micrometer counter for job launches in JobLauncher #4226
  • Add full support for MariaDB as a separate product #3891
  • Auto-configure SimpleJobOperator with EnableBatchProcessing and DefaultBatchConfiguration #3941
  • Add method getJobInstance in JobExplorer/JobRepository/JobOperator #3930

🚀 Enhancements

  • Remove the unconditional exposure of the transaction manager as a bean #3981
  • SQL Server Auto-generated Schema - TEXT data type deprecated: #864
  • Deprecate support classes implementing interfaces with default methods #3925
  • Add default methods in interfaces #3924
  • JobParameter must not accept null values #3913
  • FlatFileItemWriter now uses charset to determine default encoding #3910
  • FlatFileItemReader and FlatFileItemWriter don't have the same default encoding #1154
  • Avoid string conversion in ExecutionContextSerializer tests #3986
  • Make ScopeConfiguration publicly accessible #3958
  • In JOB_PARAMS table DATE_VAL column is updated incorrectly Like "1/1/1970 1:00:00.000000 AM" instead to the current date #1577
  • Use default methods in TestExecutionListener #3909
  • refactor: simplify boolean expression #3945
  • Remove Reflection from StepScopeTestExecutionListener #3908
  • Replace deprecated TransactionSynchronizationAdapter #3874
  • Remove double brace initialization #3868
  • Fix some raw types #3803
  • Don't call wrapper constructors directly #3800
  • Replace Assert.assertThat with MatcherAssert.assertThat #3804
  • Replace #initMocks with MockitoRule #3805
  • Refactor deprecated extractDatabaseMetaData #3873
  • Simplify GET_LAST_STEP_EXECUTION #3997
  • Make countStepExecutions access batch_job_execution only once #3876
  • Adjust h2 schema to work with v2.0.x #4043
  • Adjust H2PagingQueryProvider to work with v2.x #4047
  • Require spring-jdbc in core module #4048
  • Rename setJobIncrementer to setJobInstanceIncrementer in JdbcJobInstanceDao #3929
  • Rename schema-oracle10g to schema-oracle #1057
  • Constructors with var args/Lists #686
  • Remove benign [WARNINGS] from batch build #4066
  • MongoItemReader#setSort check its argument #4014
  • Collection's empty data check using CollectionUtils.isEmpty #4021
  • Add @Nullable to StepExecution::endTime #4034
  • Remove SQLLite Batch database tables before starting tests #4063
  • Add @Nullable where appropriate in JobExecution and StepExecution #4077
  • Change default encoding to UTF-8 in JdbcExecutionContextDao #3983
  • Add java.util.UUID to the trusted classes list in Jackson2ExecutionContextStringSerializer #4110
  • AbstractFileItemWriter should support java.nio #756
  • Make JUnit4 dependency optional in spring-batch-test #4033
  • Replace deprecated IntegrationFlows #4155
  • Rename SimpleJobLauncher to TaskExecutorJobLauncher #4123
  • Reduce use of deprecated APIs #4120
  • Migrate tests to JUnit Jupiter #4166
  • Remove the dependency to JUnit in AssertFile #4112
  • Can't wrap JobRepository in a tracing representation #3899
  • Improve JobBuilder and StepBuilder APIs with regards to setting mandatory properties #4192
  • Deprecate Job/Step builder factories #4188
  • Revisit the default behaviour of job parameters conversion #3960
  • Change DefaultExecutionContextSerializer to produce Base64 #4122
  • Revisit the default configuration of ExecutionContextSerializer with EnableBatchProcessing #4140
  • Update MySQL Connector/J and use new Maven coordinates #4211
  • Improve @SpringBatchTest to autowire the job under test in JobLauncherTestUtils if it is unique #4218
  • Improve Micrometer's meter registry customization #4224
  • Improve Micrometer's observation registry customization #4222
  • IllegalArgumentException thrown from afterPropertiesSet where IllegalStateException would be more appropriate #2244
  • Open ChunkMessageChannelItemWriter for extension #952
  • Change JobBuilerHelper#enhance parameter type to AbstractJob #4231
  • Change StepBuilerHelper#enhance parameter type to AbstractStep #4220
  • Sorting in JdbcJobExecutionDao.GET_RUNNING_EXECUTIONS makes no sense #3987

🐞 Bug fixes

  • StepExecution counts integer overflow #3650
  • Deadlock accessing creating a job on sqlserver when multiple jobs start at once #1448
  • Oracle Error on creating new Batch Job #1127
  • Oracle clustered environment with cached sequences can lead to Spring Batch thinking new job already exists #2000
  • Batch sequences generate unordered ids, which results in unordered instances returned by JobExplorer #1422
  • DefaultBatchConfigurer warns about the lack of TransactionManager provided, yet offers no way to supply it #763
  • No pom.xml for published artifacts for 5.0.0-SNAPSHOT #4028
  • Map.of() cannot be deserialized #4036
  • FixedLengthTokenizer wrong tokenization with UTF-8 extended characters #3714
  • Inconsistent default encoding in FlatFileItemReader and FlatFileItemWriter #1154
  • StaxEventItemWriter.unclosedHeaderCallbackElements prevents new job execution #4044
  • Circular reference error when autowiring JobBuilderFactory #3991
  • NPE when creating MongoItemReader using a builder without specifying sorting #4082
  • Unable to build the project without an internet connection #4152
  • Add missing initialized flag set to FlowJob #4142
  • Unable to register an annotation-based StepExecutionListener in a fault-tolerant step #4137
  • Fix tests catching nested exceptions #4136
  • Unable to read XML data without spring-tx in the classpath #4132
  • Maven surefire uses wrong provider for Spring Batch Core #4121
  • Lost transactionAttribute when using chaining StepBuilder #3686
  • ItemReadListener not being correctly registered after adding a StepExecutionListener #773
  • Cannot subclass final class com.sun.proxy.$Proxy202 #793
  • StepBuilderFactory Only Supports Listener Annotations, Not Listener Interfaces #1098
  • JobRepositoryTestUtils should work against the JobRepository interface #4070
  • The test datasource should not be autowired in JobRepositoryTestUtils #4178
  • The job under test should not be autowired in JobLauncherTestUtils #1237
  • RepositoryItemReader#setRepository is broken in 5.0.0-M4 #4164
  • Fix non-nullable columns in MySQL migration for Spring Batch 4.3 #4145
  • Incorrect transaction manager configuration in BatchConfigurer #4191
  • Inconsistent transaction manager configuration between XML and Java config styles #4130
  • Fix link to spring-batch.xsd in spring.schemas 05f6d13
  • Duplicated job execution for single job instance. #3788
  • JobRepositoryTestUtils#removeJobExecutions() Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4242
  • Calling JobExplorer outside of a transaction logs warnings about the isolation Level not being applied #4230
  • Incorrect deprecation of ItemStreamSupport #4238
  • Execution context deserialization failure in AOT mode on second job run #4239
  • JobOperator#stop can not stop JobExecution correctly in some cases #4064
  • BatchStatus#isRunning() is not consistent with JobExplorer#findRunningJobExecutions(String) or JobExecution#isRunning() #1483
  • JobRepository#getJobNames() always returns empty list #4229
  • SpringBatchTest does not work ootb with SpringBoot ...
Read more

v5.0.0-RC2

09 Nov 14:55
Compare
Choose a tag to compare
v5.0.0-RC2 Pre-release
Pre-release

⭐ New Features

  • Add native reflection hints for StepContext and JobContext #4228
  • Add Micrometer counter for job launches in JobLauncher #4226
  • Add full support for MariaDB as a separate product #3891

🚀 Enhancements

  • Improve @SpringBatchTest to autowire the job under test in JobLauncherTestUtils if it is unique #4218
  • Improve Micrometer's meter registry customization #4224
  • Improve Micrometer's observation registry customization #4222

Deprecations and API changes

  • Change return type of counting methods in various DAOs from int to long #4227

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-RC4
  • Upgrade to Spring Data 2022.0.0-RC2
  • Upgrade to Spring Integration 6.0.0-RC2
  • Upgrade to Spring AMQP 3.0.0-RC1
  • Upgrade to Spring for Apache Kafka 3.0.0-RC2
  • Upgrade to Spring Retry 2.0.0-RC2
  • Upgrade to Micrometer 1.10.0

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Change log: 5.0.0-RC1...5.0.0-RC2

v5.0.0-RC1

20 Oct 00:08
Compare
Choose a tag to compare
v5.0.0-RC1 Pre-release
Pre-release

⭐ New Features

  • Add Spring Batch version in the execution context #4215

🚀 Enhancements

  • Update MySQL Connector/J and use new Maven coordinates #4211

🐞 Bug fixes

  • Fix link to spring-batch.xsd in spring.schemas 05f6d13

Deprecations and API changes

  • Remove support for Gemfire #4214
  • Change setter name for isolationLevelForCreate in AbstractJobRepositoryFactoryBean #4213

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-RC1
  • Upgrade to Spring Data 2022.0.0-RC1
  • Upgrade to Spring Integration 6.0.0-RC1
  • Upgrade to Spring AMQP 3.0.0-RC1
  • Upgrade to Spring for Apache Kafka 3.0.0-RC1
  • Upgrade to Spring Retry 2.0.0-RC2
  • Upgrade to Micrometer 1.10.0-RC1

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Change log: 5.0.0-M8...5.0.0-RC1

v5.0.0-M8

13 Oct 10:39
Compare
Choose a tag to compare
v5.0.0-M8 Pre-release
Pre-release

⭐ New Features

  • Improve testability of SystemCommandTasklet #3955
  • String array command with SystemCommandTasklet #752

🚀 Enhancements

  • Change DefaultExecutionContextSerializer to produce Base64 #4122
  • Revisit the default configuration of ExecutionContextSerializer with EnableBatchProcessing #4140

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-RC1
  • Upgrade to Spring Data 2022.0.0-M6
  • Upgrade to Spring Integration 6.0.0-M5
  • Upgrade to Spring AMQP 3.0.0-M4
  • Upgrade to Spring for Apache Kafka 3.0.0-M6
  • Upgrade to Spring Retry 2.0.0-M1
  • Upgrade to Micrometer 1.10.0-RC1

Deprecations and API changes

  • Deprecate throttle limit in favour of using similar features in TaskExecutor implementations #2218

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Change log: 5.0.0-M7...5.0.0-M8

v5.0.0-M7

05 Oct 04:25
Compare
Choose a tag to compare
v5.0.0-M7 Pre-release
Pre-release

⭐ New Features

  • Parameter types improvement #2122
  • Support Java 8 Dates for Job Parameters #1035

🚀 Enhancements

  • Revisit the default behaviour of job parameters conversion #3960

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-M6
  • Upgrade to Spring Data 2022.0.0-M6
  • Upgrade to Spring Integration 6.0.0-M5
  • Upgrade to Spring AMQP 3.0.0-M4
  • Upgrade to Spring for Apache Kafka 3.0.0-M6
  • Upgrade to Spring Retry 2.0.0-M1
  • Upgrade to Micrometer 1.10.0-M6

📔 Documentation

  • Fix minor example in job.adoc #4199
  • Incorrect reference to SimpleJdbcTemplate in reference documentation #4197
  • Improve documentation of scoped beans definition #1502

Deprecations and API changes

  • Remove ParameterType enumeration #3960
  • Deprecate JobParameters#toProperties #3960
  • Deprecate JobParametersBuilder#addParameter #3960
  • The method JobParameter#getType now returns T instead of Object

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Change log: 5.0.0-M6...5.0.0-M7

v4.3.7

22 Sep 07:26
Compare
Choose a tag to compare

🐞 Bug fixes

  • Unable to register an annotation-based StepExecutionListener in a fault-tolerant step #4137
  • Unable to read XML data without spring-tx in the classpath #4132
  • Add missing initialized flag set to FlowJob #4142
  • Fix non-nullable columns in MySQL migration for Spring Batch 4.3 #4145

🚀 Enhancements

  • Declare dependency on jettison as optional #4196

📔 Documentation

  • Improve documentation of scoped beans definition #1502
  • Incorrect reference to SimpleJdbcTemplate in reference documentation #4197

🔨 Dependency Upgrades

  • Spring Framework: 5.3.23
  • Spring Retry: 1.3.3
  • Spring AMQP: 2.3.16
  • Spring Data: 2.5.12
  • Spring Integration: 5.5.15
  • Spring Kafka: 2.7.14
  • Spring LDAP: 2.3.8.RELEASE
  • Micrometer: 1.8.10

❤️ Contributors

We would like to thank all contributors who helped in shipping this release!

v5.0.0-M6

21 Sep 19:23
Compare
Choose a tag to compare
v5.0.0-M6 Pre-release
Pre-release

⭐ New Features

  • Add support to customize transaction attributes #4195
  • Add support to configure the transaction manager in SimpleJobOperator #1078
  • Add support to configure the transaction manager in SimpleJobExplorer #1307
  • Revisit the configuration of infrastructure beans with @EnableBatchProcessing #3942
  • Add native-image support for AbstractJobRepositoryFactoryBean #4144
  • Add native hints for Spring Batch #4187

🚀 Enhancements

  • Can't wrap JobRepository in a tracing representation #3899
  • Improve JobBuilder and StepBuilder APIs with regards to setting mandatory properties #4192
  • Deprecate Job/Step builder factories #4188

🐞 Bug Fixes

  • Incorrect transaction manager configuration in BatchConfigurer #4191
  • Inconsistent transaction manager configuration between XML and Java config styles #4130

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-M6
  • Upgrade to Spring Data 2022.0.0-M6
  • Upgrade to Spring Integration 6.0.0-M5
  • Upgrade to Spring AMQP 3.0.0-M4
  • Upgrade to Spring for Apache Kafka 3.0.0-M6
  • Upgrade to Spring Retry 2.0.0-M1
  • Upgrade to Micrometer 1.10.0-M5

Deprecations and API changes

  • Deprecate JobBuilderFactory and StepBuilderFactory support #4188
  • Removal of BatchConfigurer and DefaultBatchConfigurer #3942
  • Removal of SimpleBatchConfiguration and ModularBatchConfiguration #3942

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Change log: 5.0.0-M5...5.0.0-M6

v5.0.0-M5

24 Aug 18:01
Compare
Choose a tag to compare
v5.0.0-M5 Pre-release
Pre-release

🚀 Enhancements

  • Migrate tests to JUnit Jupiter #4166
  • Remove the dependency to JUnit in AssertFile #4112

🐞 Bug Fixes

  • JobRepositoryTestUtils should work against the JobRepository interface #4070
  • The test datasource should not be autowired in JobRepositoryTestUtils #4178
  • The job under test should not be autowired in JobLauncherTestUtils #1237
  • RepositoryItemReader#setRepository is broken in 5.0.0-M4 #4164
  • Fix non-nullable columns in MySQL migration for Spring Batch 4.3 #4145

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-M5
  • Upgrade to Spring Data 2022.0.0-M5
  • Upgrade to Spring Integration 6.0.0-M4
  • Upgrade to Spring AMQP 3.0.0-M3
  • Upgrade to Spring for Apache Kafka 3.0.0-M5
  • Upgrade to Micrometer 1.10.0-M4
  • Upgrade to Hibernate 6.1.2.Final

📔 Documentation

  • Update reference documentation to use the Spring Asciidoctor Backend #3865

Deprecations and API changes

  • Deprecate Hibernate support #4150
  • Deprecate AssertFile #4181
  • Use the Chunk API consistently #3954

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Changelog: 5.0.0-M4...5.0.0-M5

v5.0.0-M4

21 Jul 09:04
Compare
Choose a tag to compare
v5.0.0-M4 Pre-release
Pre-release

⭐ New Features

  • Add FunctionalInterface annotation where appropriate #4107
  • Add FieldExtractor implementation for Java records #4159
  • Configure the right FieldExtractor based on the type of items in FlatFileItemWriterBuilder #4161
  • Configure the right FieldSetMapper based on the type of items in FlatFileItemReaderBuilder #4160
  • Change transaction manager type to JdbcTransactionManager in default batch configuration #4126

🚀 Enhancements

  • Replace deprecated IntegrationFlows #4155
  • Rename SimpleJobLauncher to TaskExecutorJobLauncher #4123
  • Reduce use of deprecated APIs #4120

🐞 Bug Fixes

  • Unable to build the project without an internet connection #4152
  • Add missing initialized flag set to FlowJob #4142
  • Unable to register an annotation-based StepExecutionListener in a fault-tolerant step #4137
  • Fix tests catching nested exceptions #4136
  • Unable to read XML data without spring-tx in the classpath #4132
  • Maven surefire uses wrong provider for Spring Batch Core #4121
  • Lost transactionAttribute when using chaining StepBuilder #3686
  • ItemReadListener not being correctly registered after adding a StepExecutionListener #773
  • Cannot subclass final class com.sun.proxy.$Proxy202 #793
  • StepBuilderFactory Only Supports Listener Annotations, Not Listener Interfaces #1098

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-M5
  • Upgrade to Spring Data 2022.0.0-M5
  • Upgrade to Spring Integration 6.0.0-M4
  • Upgrade to Spring AMQP 3.0.0-M3
  • Upgrade to Spring for Apache Kafka 3.0.0-M5
  • Upgrade to Micrometer 1.10.0-M3
  • Upgrade to Hibernate 6.1.1.Final

📔 Documentation

  • Add package-info.java to integration #4141
  • Editing pass #4163
  • Javadoc editing #4158
  • Improve Javadocs #4129

❤️ Contributors

We'd like to thank all the contributors who worked on this release!


Full Changelog: 5.0.0-M3...5.0.0-M4

v5.0.0-M3

19 May 01:54
Compare
Choose a tag to compare
v5.0.0-M3 Pre-release
Pre-release

⭐ Features

  • Create Maven BOM for Spring Batch modules #1097
  • Allow Lambdas to be passed as item processors in Java DSL #4061
  • Best to distinguish CreateTime and StartTime in StepExecution #4049
  • Make charset configurable in JdbcExecutionContextDao #795

🚀 Enhancements

  • Add @Nullable where appropriate in JobExecution and StepExecution #4077
  • Change default encoding to UTF-8 in JdbcExecutionContextDao #3983
  • Add java.util.UUID to the trusted classes list in Jackson2ExecutionContextStringSerializer #4110
  • AbstractFileItemWriter should support java.nio #756
  • Make JUnit4 dependency optional in spring-batch-test #4033

🐞 Bug fixes

  • FixedLengthTokenizer wrong tokenization with UTF-8 extended characters #3714
  • Inconsistent default encoding in FlatFileItemReader and FlatFileItemWriter #1154
  • StaxEventItemWriter.unclosedHeaderCallbackElements prevents new job execution #4044
  • Circular reference error when autowiring JobBuilderFactory #3991
  • NPE when creating MongoItemReader using a builder without specifying sorting #4082

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-M4
  • Upgrade to Spring Data 2022.0.0-M4
  • Upgrade to Spring Integration 6.0.0-M3
  • Upgrade to Spring AMQP 3.0.0-M3
  • Upgrade to Spring for Apache Kafka 3.0.0-M4
  • Upgrade to Micrometer 1.10.0-M2

📔 Documentation

  • Incorrect documentation in "4.6.6 Abort a job" section #4037
  • Editing pass for Javdocs #4096 #4090
  • Editing pass for reference docs #4083
  • Fix Javadoc of SpringBatchTest annotation #4102

❤️ Contributors

We'd like to thank all contributors who helped in making this release possible!


Full Changelog: 5.0.0-M2...5.0.0-M3