Skip to content

Releases: spring-projects/spring-batch

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

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