Skip to content

Releases: spring-projects/spring-batch

v4.3.6

18 May 15:55
Compare
Choose a tag to compare

🐞 Bug fixes

  • Incorrect job restart with null parameters of type long/double #4087
  • SqlSyntaxErrorException when creating table BATCH_JOB_EXECUTION with db2 v9 #4001
  • StaxEventItemWriter.unclosedHeaderCallbackElements prevents new job execution #4044
  • NPE when creating MongoItemReader using a builder without specifying sorting #4082

🚀 Enhancements

  • Add @Nullable where appropriate in JobExecution and StepExecution #4077
  • Add java.util.UUID to the trusted classes list in Jackson2ExecutionContextStringSerializer #4110

📔 Documentation

  • Incorrect documentation in "4.6.6 Abort a job" section #4037
  • Fix Javadoc of SpringBatchTest annotation #4102
  • Wrong size for BATCH_JOB_INSTANCE.JOB_KEY in Appendix A #4071

🔨 Dependency Upgrades

  • Spring Framework: 5.3.20
  • Spring Retry: 1.3.3
  • Spring AMQP: 2.3.16
  • Spring Data: 2.5.11
  • Spring Integration: 5.5.12
  • Spring Kafka: 2.7.14
  • Spring LDAP: 2.3.8.RELEASE
  • Micrometer: 1.7.12

❤️ Contributors

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

v5.0.0-M2

23 Mar 12:51
Compare
Choose a tag to compare
v5.0.0-M2 Pre-release
Pre-release

⭐ Features

  • Add Micrometer Observation API usage #4065
  • Integrate SAP Hana as supported Spring Batch database #1087

🚀 Enhancements

  • 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

🔨 Dependency Upgrades

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

📔 Documentation

  • Added missing docs for batch.core and batch.core.configuration packages #4068
  • Wrong size for BATCH_JOB_INSTANCE.JOB_KEY in Appendix A #4071
  • Fix typos in documentation #4010
  • Fix Javadoc of FaultTolerantChunkProvider #4029

❤️ Contributors

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

v4.3.5

23 Feb 16:29
Compare
Choose a tag to compare

🐞 Bug fixes

  • Adjust h2 schema to work with v2.0.x #4043
  • Adjust H2PagingQueryProvider to work with v2.x #4047

🚀 Enhancements

  • Simplify GET_LAST_STEP_EXECUTION #3997
  • Make countStepExecutions access batch_job_execution only once #3876
  • Add @Nullable to StepExecution::endTime #4034
  • Collection's empty data check using CollectionUtils.isEmpty #4021
  • Check arguments of MongoItemReader#setSort #4014

📔 Documentation

  • Add example for in-memory repository, with no deprecated classes #4016
  • Document default types of beans registered by EnableBatchProcessing annotation #3993
  • Fix Javadoc of FaultTolerantChunkProvider #4029
  • Fix typos in documentation #4010

v5.0.0-M1

19 Jan 14:23
Compare
Choose a tag to compare
v5.0.0-M1 Pre-release
Pre-release

This is the first milestone of Spring Batch 5.0. This milestone contains a number of breaking changes. Please refer to the migration guide for more details about upgrade instructions.

🚀 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

⭐ 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

🐞 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

🔨 Tasks

  • Favour jakarta over javax components #3656
  • Upgrade Spring dependencies to major versions #4027
  • Deprecate support for Neo4j #3956
  • Update maven wrapper version to 3.8.2 #3978
  • Clean up schema versions in XML files #913
  • Remove deprecated APIs #3836
  • Remove usage of deprecated APIs #3838
  • Remove SQLFire support #3839
  • Remove JSR-352 implementation #3894
  • Updated graceful shutdown sample by removing deprecated code #3916
  • Replaces deprecated interfaces #3971
  • Remove some deprecated APIs from tests #3962
  • CI builds against various database platforms #3092
  • OptimisticLockingFailureTests.testAsyncStopOfStartingJob fails intermittently #1121
  • Intermittent failure in ConcurrentTransactionTests on windows #3851
  • Intermittent failure in AsynchronousTests on windows #3852
  • FaultTolerantExceptionClassesTests testNoRollbackTaskletRollbackException fails intermittently #1117
  • Rename master branch to main #3879
  • Update build process to use Maven #3820

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 6.0.0-M2
  • Upgrade to Spring Data 2022.0.0-M1
  • Upgrade to Spring Integration 6.0.0-M1
  • Upgrade to Spring AMQP 3.0.0-M1
  • Upgrade to Spring for Apache Kafka 3.0.0-M1
  • Upgrade to Micrometer 2.0.0-M1

📔 Documentation

  • Editing of the job edit changes #3918
  • Add EPUB output in documentation #3920
  • Restore the dynamic ToC #4019

❤️ Contributors

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

v4.3.4

17 Nov 09:26
Compare
Choose a tag to compare

🐞 Bug fixes

  • Consider making JobParameters#getParameters() immutable #3980
  • JdbcPagingItemReader with sort key crashes in multithreaded step for empty query #3898
  • BatchTestContextCustomizer does not implement hashCode/equals, preventing context caching #3940
  • "IllegalArgumentException: Only 1 out of 2 arguments could be assigned" using MethodInvokingTaskletAdapter + NamedParameterJdbcTemplate #3794
  • Remove whitespace to support multiple execution statement #3861
  • SimpleJobExplorer#getLastJobExecution does not fetch step executions #3943
  • NPE in JDBC ItemReaders after changes in spring-jdbc's AbstractFallbackSQLExceptionTranslator #3968

📔 Documentation

  • Fix double "the" typo everywhere in source code #3977
  • Fix typos in the document for configuring steps #3965
  • Incorrect content in spring-batch-docs jar #3922
  • Duplicate entries in the documentation distribution file #3917

v4.2.8.RELEASE

17 Nov 13:56
Compare
Choose a tag to compare

🐞 Bug fixes

  • Consider making JobParameters#getParameters() immutable #3980
  • JdbcPagingItemReader with sort key crashes in multithreaded step for empty query #3898
  • BatchTestContextCustomizer does not implement hashCode/equals, preventing context caching #3940
  • "IllegalArgumentException: Only 1 out of 2 arguments could be assigned" using MethodInvokingTaskletAdapter + NamedParameterJdbcTemplate #3794
  • Remove whitespace to support multiple execution statement #3861
  • SimpleJobExplorer#getLastJobExecution does not fetch step executions #3943
  • NPE in JDBC ItemReaders after changes in spring-jdbc's AbstractFallbackSQLExceptionTranslator #3968

📔 Documentation

  • Fix double "the" typo everywhere in source code #3977
  • Fix typos in the document for configuring steps #3965
  • Incorrect content in spring-batch-docs jar #3922

v4.3.3

19 May 12:33
Compare
Choose a tag to compare

🐞 Bug fixes

  • SimpleJobRepository should ignore non-identifying JobParameters #1221
  • Setting item processor property with lambda error #3749
  • Override SimpleStepBuilder.faultTolerant() in FaultTolerantStepBuilder #3840
  • JdbcCursorItemReaderBuilder defaults verifyCursorPosition to false, but its Javadoc says the opposite #3893
  • org.springframework.batch.core.JobParameter.toString may return null #834
  • AvroItemWriter uses GenericDatumWriter instead of SpecificDatumWriter for type that extends SpecificRecordBase #3859

🚀 Enhancements

  • Replace the list used internally by the ListItemReader (ArrayList -> LinkedList) #3782

📔 Documentation

  • Improve code example in "Configuring and Running a Job" section #3888
  • Incorrect code examples in documentation #3889
  • Fix misused 'end()' in examples #3902
  • Fix typo in documentation #3907

v4.2.7.RELEASE

19 May 10:31
Compare
Choose a tag to compare

🐞 Bug fixes

  • SimpleJobRepository should ignore non-identifying JobParameters #1221
  • Setting item processor property with lambda error #3749
  • Override SimpleStepBuilder.faultTolerant() in FaultTolerantStepBuilder #3840
  • JdbcCursorItemReaderBuilder defaults verifyCursorPosition to false, but its Javadoc says the opposite #3893
  • org.springframework.batch.core.JobParameter.toString may return null #834
  • AvroItemWriter uses GenericDatumWriter instead of SpecificDatumWriter for type that extends SpecificRecordBase #3859

🚀 Enhancements

  • Replace the list used internally by the ListItemReader (ArrayList -> LinkedList) #3782

📔 Documentation

  • Improve code example in "Configuring and Running a Job" section #3888
  • Incorrect code examples in documentation #3889
  • Fix misused 'end()' in examples #3902

v4.3.2

18 Mar 08:10
Compare
Choose a tag to compare

🐞 Bug fixes

  • Incorrect value of kind attribute in spring-batch-3.0.xsd #1479
  • KafkaItemWriter should wait for results of kafkaTemplate.sendDefault call #3773
  • Incorrect usage of StringBuilder in TransactionAwareBufferedWriter #3745

🚀 Enhancements

  • Provide constructors for injection #3819
  • Jackson2ExecutionContextStringSerializer should trust result of Arrays.asList() by default #3830
  • Add java.sql.Timestamp to trusted classes in Jackson2ExecutionContextStringSerializer #3855
  • Added isXXXEnabled for logging statements #3814
  • Better sizes for StringBuilder #3813
  • Reduce the toCharArray overhead #3812

📔 Documentation

  • Fix javadoc on ItemReadListener interface #3815
  • Fix javadoc in ExitStatus #3811
  • chunk-oriented-processing and completion-policy inconsistent with documentation #1629
  • Regression in the "Configuring and Running a Job" section of the reference documentation #3848

v4.2.6.RELEASE

18 Mar 08:05
Compare
Choose a tag to compare

🐞 Bug fixes

  • Incorrect value of kind attribute in spring-batch-3.0.xsd #1479
  • KafkaItemWriter should wait for results of kafkaTemplate.sendDefault call #3773
  • Incorrect usage of StringBuilder in TransactionAwareBufferedWriter #3745

🚀 Enhancements

  • Provide constructors for injection #3819
  • Jackson2ExecutionContextStringSerializer should trust result of Arrays.asList() by default #3830
  • Add java.sql.Timestamp to trusted classes in Jackson2ExecutionContextStringSerializer #3855
  • Added isXXXEnabled for logging statements #3814
  • Better sizes for StringBuilder #3813
  • Reduce the toCharArray overhead #3812

📔 Documentation

  • Fix javadoc on ItemReadListener interface #3815
  • Fix javadoc in ExitStatus #3811
  • chunk-oriented-processing and completion-policy inconsistent with documentation #1629