Skip to content

Releases: spring-projects/spring-batch

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

v4.3.1

09 Dec 23:15
Compare
Choose a tag to compare

🐞 Bug fixes

  • After restarting a failed job using RunIdIncrementer, all subsequent job launches throw ClassCastException #3799
  • Use isQuoteCharacter instead of direct char comparison in DelimitedLineTokenizer #682
  • Incorrect behaviour of RepositoryItemReader#jumpToItem() on restart #1074
  • Do not throw NPE for job instances without executions #3798

🚀 Enhancements

  • kafkaTemplate in KafkaItemWriter should be protected #3802

v4.2.5.RELEASE

09 Dec 23:13
Compare
Choose a tag to compare

🐞 Bug fixes

  • Setting resource should be optional for JsonItemReaderBuilder #3731
  • Resource should be optional in StaxEventItemReaderBuilder #3736
  • StaxEventItemReaderBuilder failing to set name for Reader at build #3753
  • Job scoped steps can not be used within FlowBuilder #670
  • After restarting a failed job using RunIdIncrementer, all subsequent job launches throw ClassCastException #3799
  • Use isQuoteCharacter instead of direct char comparison in DelimitedLineTokenizer #682
  • Incorrect behaviour of RepositoryItemReader#jumpToItem() on restart #1074
  • Do not throw NPE for job instances without executions #3798

🚀 Enhancements

  • kafkaTemplate in KafkaItemWriter should be protected #3802

📔 Documentation

  • Fix typo in spring-batch-intro.adoc #3755

v4.3.0

30 Oct 08:22
Compare
Choose a tag to compare

⭐ New features

  • Add support to use Java 14 records as items #3693
  • Add JpaCursorItemReader implementation #901
  • Add setter for standalone attribute in StaxEventItemWriter #758
  • Add ability to start reading from a custom offset in KafkaItemReader #737
  • Add encoding parameter in StaxEventItemReader #807
  • Add job name tag to spring.batch.job.active metric #3750
  • Add getUniqueJobParametersBuilder() method in JobLauncherTestUtils #767
  • Add JobParametersIncrementer implementation based on a DataFieldMaxValueIncrementer #1521
  • Add SynchronizedItemStreamWriter #842
  • Add beanRowMapper method to JdbcPagingItemReaderBuilder #819
  • Add support for named queries in JpaPagingItemReader #1667
  • Add support for annotation based JobExecutionListener in the JobBuilder #817
  • Meta-annotate @SpringBatchTest with @ExtendWith(SpringExtension.class) #3647
  • Set proxyBeanMethods to false on ModularBatchConfiguration and SimpleBatchConfiguration #3715

🚀 Enhancements

  • Add connection parameter to AbstractCursorItemReader#cleanupOnClose #735
  • BulkOperations API Implementation for Remove Operations in MongoItemWriter #3737
  • StaxEventItemReader#isFragmentRootElementName method should be protected #1020
  • Let FlatFileItemReader comment detection logic be customizable #1134
  • Performance issues in SimpleJobRepository.getStepExecutionCount #3657
  • Slow SQL in JdbcStepExecutionDao on Postgres #3634
  • Improve TransactionAwareBufferedWriter efficiency #1166
  • Improve performance in JdbcStepExecutionDao #3710
  • Make RepositoryItemWriter use CrudRepository#saveAll by default #3720
  • Use BulkOperations API in MongoItemWriter #3713
  • Add ability to amend trusted classes in Jackson2ExecutionContextStringSerializer #3765
  • Improve formatting of IllegalArgumentException message thrown by DefaultExecutionContextSerializer #3636

🐞 Bug fixes

  • Unable to set partitionOffsets in KafkaItemReaderBuilder #3761
  • SimpleCompletionPolicy should have getChunkSize() method #3738
  • Unable to set usePersist parameter with JpaItemWriterBuilder #3655
  • MongoItemReaderBuilder shouldn't be throwing an error related to the limit in query when pageSize is provided #3673
  • MySQL does not support millisecond accuracy in timestamps #2202
  • JobLauncherTestUtils doesn't always launch new job instance because generated job parameters aren't unique #821
  • Unable to set connectionAutoCommit parameter with JdbcCursorItemReaderBuilder #3717
  • Incorrect Jackson configuration #3729
  • Setting resource should be optional for JsonItemReaderBuilder #3731
  • Resource should be optional in StaxEventItemReaderBuilder #3736
  • StaxEventItemReaderBuilder failing to set name for Reader at build #3753
  • Conditional (Java configured) steps cannot be scoped #857
  • Order of Transition Elements Does Not Adhere to Documentation #3638
  • AbstractSqlPagingQueryProvider Does Not Handle Whitespace Besides the Space Character When Removing Keywords #765
  • setScriptEvaluator method in ScriptItemProcessor removed in Spring Batch 4 #768
  • Incorrect error message when no FieldSetMapper is provided #766
  • AbstractCursorItemReader#doClose() method is not reentrant #868
  • The constructor of JsonItemReader should call setExecutionContextName() #3681
  • FaultTolerantChunkProcessor does not collect metrics like SimpleChunkProcessor #3664
  • FlatFileItemReaderBuilder reports error "Only one LineTokenizer option may be configured" when none are. #3688
  • Default value of comment prefix in FlatFileItemReaderBuilder is inconsistent with FlatFileItemReader #753
  • Empty String as delimiter is ignored #770
  • Regression due to the fix of BATCH-2442 #775
  • FlatFileItemReaderBuilder does not overrule comment prefixes in returned FlatFileItemReader #779
  • FlatFileItemWriterBuilder requires a Resource #887
  • List should be final in CompositeItemStream #1628
  • Job scoped steps can not be used within FlowBuilder #670

📔 Documentation

  • Fix typo in spring-batch-intro.adoc #3755
  • Add flag to show both configuration styles (Java and XML) in reference docs #572
  • Fix documentation of JobExecutionNotRunningException #3679
  • Updated spring-doc-resources version to 0.2.2
  • Incorrect reference to stop method in documentation #3643
  • Improve Javadoc of ItemProcessor regarding the nullability of input items #3648
  • Misleading code example in reference documentation #3692
  • The ItemProcessor section in reference docs should be a top level section #3644
  • Use local storage rather than a cookie #3653
  • Add flag to show both configuration styles (Java and XML) in reference docs #572
  • Upgrade versions of Asciidoctor #3703
  • Add micrometer metrics tags in reference documentation #3751
  • Add section in docs about how to disable batch metrics #3684
  • Document non-identifying job parameters #3633
  • Multiple Job unit testing with @SpringBatchTest #3699
  • Unable to use Job Scope beans in a multi-threaded or partitioned step #1335
  • Incorrect table name in Meta-Data Schema appendix #761
  • Incorrect description of AggregateItemReader in "Appendix A" #1793
  • It's unclear and confusing that using <skippable-exception-class> element #1061
  • Wording Fix: domain.adoc #814
  • Documentation: XSD specifies incorrect type for RetryPolicy #769
  • Fix dead link to Github in contribution guide #3642

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 5.3.0
  • Upgrade to Spring Data 2020.0.0
  • Upgrade to Spring Integration 5.4.0
  • Upgrade to Spring AMQP 2.3.0
  • Upgrade to Spring for Apache Kafka 2.6.2
  • Upgrade to micrometer 1.5.6

⚠️ Deprecations

  • Deprecate JobExecution#stop() #1605
  • Deprecate MultiResourceItemReader#getCurrentResource #3776
  • Deprecate AbstractNeo4jItemReader #3777
  • Deprecate org.springframework.batch.item.file.transform.Alignment enum #3778
  • Deprecate org.springframework.batch.item.xml.StaxUtils #3779
  • Deprecate the Map-based JobRepository/JobExplorer implementations #3780
  • Deprecate ScheduledJobParametersFactory #3781
  • Deprecate support for SqlFire database #815

❤️ Contributors

We'd like to thank all contributors who helped making this release possible! A special thank to @dimitrisli and @parikshitdutta
for their numerous contributions to this release!

v4.3.0-RC1

17 Sep 08:48
Compare
Choose a tag to compare
v4.3.0-RC1 Pre-release
Pre-release

⭐ New features

  • Add support for annotation based JobExecutionListener in the JobBuilder #817
  • Set proxyBeanMethods to false on ModularBatchConfiguration and SimpleBatchConfiguration #3715
  • Add setter for standalone attribute in StaxEventItemWriter #758
  • Add support to use Java 14 records as items #3693
  • Add JpaCursorItemReader implementation #901

🐞 Bug fixes

  • Unable to set partitionOffsets in KafkaItemReaderBuilder #3761

⚠️ Deprecations

  • Deprecate JobExecution#stop() #1605
  • Deprecate MultiResourceItemReader#getCurrentResource #3776
  • Deprecate AbstractNeo4jItemReader #3777
  • Deprecate org.springframework.batch.item.file.transform.Alignment enum #3778
  • Deprecate org.springframework.batch.item.xml.StaxUtils #3779
  • Deprecate the Map-based JobRepository/JobExplorer implementations #3780
  • Deprecate ScheduledJobParametersFactory #3781

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 5.3.0-RC1
  • Upgrade to Spring Data 2020.0.0-RC1
  • Upgrade to Spring Integration 5.4.0-M3
  • Upgrade to Spring AMQP 2.3.0-M3
  • Upgrade to Spring for Apache Kafka 2.6.1

v4.3.0-M2

13 Aug 08:05
Compare
Choose a tag to compare
v4.3.0-M2 Pre-release
Pre-release

⭐ New features

  • Add ability to start reading from a custom offset in KafkaItemReader #737
  • Add encoding parameter in StaxEventItemReader #807
  • Add job name tag to spring.batch.job.active metric #3750
  • Add getUniqueJobParametersBuilder() method in JobLauncherTestUtils #767
  • Add JobParametersIncrementer implementation based on a DataFieldMaxValueIncrementer #1521

🐞 Bug fixes

  • SimpleCompletionPolicy should have getChunkSize() method #3738

🚀 Enhancements

  • Add connection parameter to AbstractCursorItemReader#cleanupOnClose #735
  • BulkOperations API Implementation for Remove Operations in MongoItemWriter #3737
  • StaxEventItemReader#isFragmentRootElementName method should be protected #1020
  • Let FlatFileItemReader comment detection logic be customizable #1134

📔 Documentation

  • Fix typo in spring-batch-intro.adoc #3755
  • Updated spring-doc-resources version to 0.2.2

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 5.3.0-M2
  • Upgrade to Spring Data 2020.0.0-M2
  • Upgrade to Spring Integration 5.4.0-M2
  • Upgrade to Spring AMQP 2.3.0-M2
  • Upgrade to Spring for Apache Kafka 2.6.0-M1

v4.3.0-M1

26 Jun 19:40
Compare
Choose a tag to compare
v4.3.0-M1 Pre-release
Pre-release

⭐ New features

  • Add SynchronizedItemStreamWriter #842
  • Add beanRowMapper method to JdbcPagingItemReaderBuilder #819
  • Add support for named queries in JpaPagingItemReader #1667
  • Meta-annotate @SpringBatchTest with @ExtendWith(SpringExtension.class) #3647

🐞 Bug fixes

  • Unable to set usePersist parameter with JpaItemWriterBuilder #3655
  • MongoItemReaderBuilder shouldn't be throwing an error related to the limit in query when pageSize is provided #3673
  • MySQL does not support millisecond accuracy in timestamps #2202
  • JobLauncherTestUtils doesn't always launch new job instance because generated job parameters aren't unique #821
  • Unable to set connectionAutoCommit parameter with JdbcCursorItemReaderBuilder #3717
  • Incorrect Jackson configuration #3729

🚀 Enhancements

  • Performance issues in SimpleJobRepository.getStepExecutionCount #3657
  • Slow SQL in JdbcStepExecutionDao on Postgres #3634
  • Improve TransactionAwareBufferedWriter efficiency #1166
  • Improve performance in JdbcStepExecutionDao #3710
  • Make RepositoryItemWriter use CrudRepository#saveAll by default #3720
  • Use BulkOperations API in MongoItemWriter #3713

📔 Documentation

  • Incorrect reference to stop method in documentation #3643
  • Improve Javadoc of ItemProcessor regarding the nullability of input items #3648
  • Misleading code example in reference documentation #3692
  • The ItemProcessor section in reference docs should be a top level section #3644
  • Use local storage rather than a cookie #3653
  • Updated spring-doc-resources version to 0.2.1 #3700
  • Add flag to show both configuration styles (Java and XML) in reference docs #572
  • Upgrade versions of Asciidoctor #3703

🔨 Dependency Upgrades

  • Upgrade to Spring Framework 5.3.0-M1
  • Upgrade to Spring Data 2020.0.0-M1
  • Upgrade to Spring Integration 5.4.0-M1
  • Upgrade to Spring AMQP 2.3.0-M1
  • Upgrade to Spring for Apache Kafka 2.5.3.RELEASE

❤️ Contributors

We'd like to thank all contributors who helped making this release possible! A special thank to @parikshitdutta
for his numerous contributions to this release!