fix(deps): update dependency org.springframework.batch:spring-batch-core to v5
This MR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
org.springframework.batch:spring-batch-core (source) |
4.2.4.RELEASE -> 5.1.2
|
Release Notes
spring-projects/spring-batch (org.springframework.batch:spring-batch-core)
v5.1.2
:lady_beetle: 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: https://github.com/spring-projects/spring-batch/compare/v5.1.1...v5.1.2
v5.1.1
⭐ New features
- Add
JobRegistrySmartInitializingSingleton
#4521
:lady_beetle: Bug fixes
- Incorrect error message in
JobOperatorFactoryBean
#4528 -
DefaultJobParametersConverter
throwsjava.lang.ArrayIndexOutOfBoundsException
if input is empty string #4505 -
JobRepository.deleteJobInstance()
Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4382 - Incorrect step configuration when setting the taskExecutor before
faultTolerant()
#4438 - Incorrect deprecation in
MongoPagingItemReader
#4552
🚀 Enhancements
- Check dirty flag of step execution context before update in inner loop #4503
📔 Documentation
- Incorrect Type of getter in Documentation for
JobParameters#getDouble
#4526 - Broken link to Spring Batch docs #4498
- UI Aligment Issue - Spring Batch Version Number in Docs #4534
🆙 Dependency Upgrades
- Spring Framework: 6.1.4
- Spring Retry: 2.0.5
- Spring Integration: 6.2.2
- Spring Data: 3.2.3
- Spring AMQP: 3.1.2
- Spring Kafka: 3.1.2
- Micrometer: 1.12.3
❤ Contributors
Thank you to all the contributors who worked on this release!
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.1.0...v5.1.1
v5.1.0
⭐ New features
- Add support for Virtual Threads #4399
- Add synchronized decorators for non-stream item readers/writers #4368
- Add option to clear the persistence context in
JpaItemWriter
#804 - Add cursor-based
ItemReader
for MongoDB #4323 - Add support for bulk inserts in
MongoItemWriter
#4149 - Provide accessors in
MongoItemWriter
to facilitate extensions #3973 - Add item reader for Redis #4446
- Add item writer for Redis #3957
- Add ability to start a job flow definition with a decider #4411
- Add support to specify the database type through
EnableBatchProcessing
#4320 - Auto-configure
JobRegistryBeanPostProcessor
withEnableBatchProcessing
andDefaultBatchConfiguration
#4245 - Add support for Java Date and Time API types serialization in
Jackson2ExecutionContextStringSerializer
#3952 - Add option to provide a custom
JobKeyGenerator
inJdbcJobInstanceDao
#3926 - Access to update counts in
JdbcBatchItemWriter
#3829 - Add setter for
ObservationConvention
inStepBuilder
/JobBuilder
#4401
🚀 Enhancements
- Public access to
AbstractItemCountingItemStreamItemReader.getCurrentItemCount
#1639 - Add
java.util.concurrent.ConcurrentHashMap
to the trusted classes list inJackson2ExecutionContextStringSerializer
#4407 - Add
java.sql.Date
to the trusted classes list inJackson2ExecutionContextStringSerializer
#4407 - Auto-detect the class/interface to be mocked #4426
- Inaccurate exception message in
SimpleJobRepository
#4025 - Expose the internal map in
ExecutionContext
as read-only #4004 - Add support for quotes in
DelimitedLineAggregator
#1139 - Provide better error message in
StaxEventItemReader
ifResource
does not exist #1171 - Add getters for DAOs in
SimpleJobExplorer
#1598 - Use separate parameters for short_context length and exit_message length #1617
- Expose
targetObject
andtargetMethod
inAbstractMethodInvokingDelegator
#1786 - Create versions of samples using Java configuration #3663
- Improve the issue reporting process #4329
- Replace deprecated
RetryListenerSupport
#4453 - Use more
SynchronizedItemReader
in tests #4452 - Take care of some deprecations #4454
:lady_beetle: Bug fixes
- Invalid migration script for H2 #4390
- Incorrect drop statements in SQLServer DDL script #4373
-
SplitBuilder.add(Flow)
causes hung execution in some cases #3857 - Incorrect thread usage in
SynchronizedItemStreamReaderTests
#837 - Concurrent execution of
FlowJob
may causeFlowExecutionException
#4092 - Switching incrementers causes jobs to have old job parameters #4073
- Missing setter for strict field in
DelimitedBuilder
#809 -
DefaultJobParametersExtractor
no longer copies keys fromJobParameters
when not contained inExecutionContext
#4458 - job scope bean doesn't cleanup in unit test #1288
-
NullPointerException
inRepeatTemplate#doHandle()
whenunwrapIfRethrown()
returns null if logging in DEBUG #1123 - Starting a flow with
Flow#next
makes the first step execute twice #4432
📔 Documentation
- Incorrect Javadoc in
SimpleStepBuilder
#4402 - Document the type and name of the surrounding job in
JobLauncherTestUtils#launchStep
#3825 - Fix typo in
SimpleMailMessageItemWriter
Javadoc #4381 - Fix javadoc errors and warnings #1624
- Migrate documentation to Antora #4422
- Ambiguous description of "Configuring a JobRepository" #4333
- Add Two minutes tutorial to the
README
#4329 - Update the Getting started guide #4329
- Broken code samples in reference documentation for Job/Step beans with v5 API #4406
- Improve developer experience for conditional flows #4460
- Incorrect Javadoc in
DefaultFieldSet
andDefaultFieldSetFactory
#4494 - Incorrect JavaDoc for Methods returning
JobFlowBuilder
inJobBuilder
#4415 - Update documentation about serializable keys in the execution context #4457
- Improve configuration style toggle in documentation #4357
- Improve the getting started experience with Spring Batch #4329
- Reinstate and Update FAQ page #3878
- Outdated Meta-data ERD #4358
- Documentation unclear on how to replace deprecated
AbstractTaskletStepBuilder#throttleLimit
#4389
🔨 Tasks
- Build failure when the default charset of the JVM is not UTF-8 #4417
- Rename
MongoItemReader
toMongoPagingItemReader
#4341 - Deprecate jobRepository method in
JobBuilderHelper
&StepBuilderHelper
#4326 - Add Automatic-Module-Name to
MANIFEST.MF
in all components #867 - Deprecate overrides of
StepBuilderHelper#repository
for removal #4495
🔨 Dependency upgrades
- Spring Framework 6.1.0
- Spring Integration 6.2.0
- Spring Data 3.2.0
- Spring LDAP 3.2.0
- Spring AMQP 3.1.0
- Spring Kafka 3.1.0
- Micrometer 1.12.0
❤ Contributors
Thank you to all the contributors who worked on this release!
@IlyaNerd, @ParadiseCHOI, @benelog, @rwinch, @cppwfs, @sjh836, @hpoettker, @jwillebrands, @hwan33, @bio-engineer, @injae-kim, @morenomjc, @LichKing-lee, @santfirax, @acktsap, @sukanth, @seonwoo960000, @robertmcnees, @cgrings, @juchanei, @lsq27, @scordio, @CNJingo, @woniper, @pranavjandu
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.3...v5.1.0
v5.0.6
:lady_beetle: 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: https://github.com/spring-projects/spring-batch/compare/v5.0.5...v5.0.6
v5.0.5
:lady_beetle: Bug fixes
- Incorrect error message in
JobOperatorFactoryBean
#4528 -
DefaultJobParametersConverter
throwsjava.lang.ArrayIndexOutOfBoundsException
if input is empty string #4505 -
JobRepository.deleteJobInstance()
Fails with Foreign Key Constraint Violation if Job Executions have Step Executions #4382 - Incorrect step configuration when setting the taskExecutor before
faultTolerant()
#4438
🚀 Enhancements
- Check dirty flag of step execution context before update in inner loop #4503
📔 Documentation
- Incorrect Type of getter in Documentation for
JobParameters#getDouble
#4526
🆙 Dependency Upgrades
- Spring Framework: 6.0.17
- Spring Retry: 2.0.5
- Spring AMQP: 3.0.11
- Spring Kafka: 3.0.14
❤ Contributors
Thank you to all the contributors who worked on this release!
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.4...v5.0.5
v5.0.4
:lady_beetle: Bug fixes
- Starting a flow with
Flow#next
makes the first step execute twice #4432 -
DefaultJobParametersExtractor
no longer copies keys fromJobParameters
when not contained inExecutionContext
#4458 - job scope bean doesn't cleanup in unit test #1288
-
NullPointerException
inRepeatTemplate#doHandle()
whenunwrapIfRethrown()
returns null if logging in DEBUG #1123
🚀 Enhancements
- Inaccurate exception message in
SimpleJobRepository
#4025 - Remove unnecessary expressions in
AsyncItemWriter
#4009
📔 Documentation
- Documentation unclear on how to replace deprecated
AbstractTaskletStepBuilder#throttleLimit
#4389 - Outdated Meta-data ERD #4358
- Incorrect JavaDoc for Methods returning
JobFlowBuilder
inJobBuilder
#4415 - Incorrect Javadoc in
DefaultFieldSet
andDefaultFieldSetFactory
#4494 - Update documentation about serializable keys in the execution context #4457
🆙 Dependency Upgrades
- Spring Framework: 6.0.14
- Spring Retry: 2.0.4
- Spring AMQP: 3.0.10
- Spring Data: 3.0.12
- Spring Integration: 6.0.9
- Spring Kafka: 3.0.13
- Spring LDAP: 3.0.6
- Micrometer: 1.10.13
❤ Contributors
Thank you to all the contributors who worked on this release!
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.3...v5.0.4
v5.0.3
:lady_beetle: Bug fixes
- Incorrect drop statements in SQLServer DDL script #4373
- Invalid migration script for H2 #4390
- Concurrent execution of FlowJob may cause FlowExecutionException #4092
🚀 Enhancements
- Auto-detect the class/interface to be mocked #4426
- Add
java.util.concurrent.ConcurrentHashMap
to the trusted classes list inJackson2ExecutionContextStringSerializer
#4407 - Add
java.sql.Date
to the trusted classes list inJackson2ExecutionContextStringSerializer
#4407
📔 Documentation
- Incorrect Javadoc in
SimpleStepBuilder
#4402 - Document the type and name of the surrounding job in
JobLauncherTestUtils#launchStep
#3825 - Fix typo in
SimpleMailMessageItemWriter
Javadoc #4381 - Fix javadoc errors and warnings #1624
🔨 Tasks
- Build failure when the default charset of the JVM is not
UTF-8
#4417
🆙 Dependency Upgrades
- Spring Framework: 6.0.11
- Spring Retry: 2.0.2
- Spring AMQP: 3.0.8
- Spring Data: 3.0.9
- Spring Integration: 6.0.7
- Spring Kafka: 3.0.10
- Spring LDAP: 3.0.5
- Micrometer: 1.10.10
❤ Contributors
Thank you to all the contributors who worked on this release!
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.2...v5.0.3
v5.0.2
⭐ New features
- Allow
StaxEventItemReader
to auto-detect the input file encoding #4101
🚀 Enhancements
- Disable Docker-based tests when Docker is not available #4360
-
JobParameters
should useLinkedHashMap
instead ofHashMap
#4179 - Slow Query in
JdbcJobInstanceDao.getLastJobInstance()
#4024 - Make
KafkaItemWriter
extensible and document its thread-safety #3970 - Upgrade to Mockito 5 #4366
- Enhance switch statements #4365
- Change visibility of properties in
JdbcPagingItemReaderBuilder
#4331 - Reduce use of deprecated APIs #4334
- Add SafeVarargs annotations #4335
:lady_beetle: Bug fixes
- Incorrect v5 migration script for SQLServer #4349
- Implement
equals
andhashCode
inChunk
class #4314 - Incorrect retrieval of job parameters in
SimpleJobExplorer#getJobExecutions
#4246
📔 Documentation
- Fix
BATCH_STEP_EXECUTION
DDL #4356 - Fix for the XML/Java switch regression #4355
- Documentation Update to scalability.adoc #4338
- Fix tiny misspelling in the sybase integration test comments #4313
- Missing instruction about accessing historical data in the migration guide #4352
- Document Thread Safety of item readers and writers #3646
- Missing DDL migration script related to
BATCH_STEP_EXECUTION
table in v5 migration guide #4332 - Incorrect type of date/time fields in documentation #4324
- Asciidoctor errors #4168
🔨 Tasks
- Forks fail on GitHub Actions Continuous Inspection Build #4346
- Intermittent failure in
AsynchronousTests#testRollback
#4095 - Intermittent failure in
ConcurrentTransactionAwareProxyTests
on windows #3847
🆙 Dependency Upgrades
- Spring Framework: 6.0.9
- Spring Retry: 2.0.1
- Spring AMQP: 3.0.4
- Spring Data: 3.0.6
- Spring Integration: 6.0.5
- Spring Kafka: 3.0.7
- Spring LDAP: 3.0.3
- Micrometer: 1.10.7
❤ Contributors
Thank you to all the contributors who worked on this release:
@Buzzardo, @Ditscheridou, @cppwfs, @hpoettker, @jamesrwoodruff, @kajsa, and @viviennes7
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.1...v5.0.2
v5.0.1
🐞 Bug fixes
- Missing AOT Hint for JobOperator in Batch 5.0.0 #4248
- Missing AOT hints for for types associated with remote chunking #4307
- @StepScope not working when XML namespace activated #3936
- Incorrect API contract of JobRepository.deleteJobInstance #4250
- SimpleJobRepository.deleteJobExecution does not follow API contract #4249
- Inconsistent state validation rules between RepositoryItemReader and RepositoryItemReaderBuilder #4276
- ClassCastException in RepositoryItemReader when using Slice instead of Page #4115
- Disable BatchTestContextCustomizer after AOT processing #4286
- Outdated contract of APIs accepting job parameters as String #4301
- ArrayIndexOutOfBoundsException when invoke SimpleJobOperator.start #4253
- Cannot run job with LocalDate(Time) job parameters #4257
- Illegal argument exception when querying running jobs with Date() parameter #4270
- ConversionFailedException when using java.util.Date job parameter #4297
- Incorrect handling of default parameter type in JsonJobParametersConverter #4299
- Incorrect handling of file deletion in File-based writers #4203
- Incorrect notNull assertion on parameter type in JobParameter #4263
- Invalid Oracle migration script in 5.0 #4271
- Invalid Postgresql migration script in 5.0 #4260
🚀 Enhancements
- High memory consumption during long running jobs #3790
- Use batch inserts for job parameters #3867
- Add default component name in constructor of AvroItemReader #4285
- Implement equals and hashCode in Chunk class #4296
- Add final modifier to fields of RunIdIncrementer and Job/Step BuilderFactory APIs #4143
- Use ExecutionContext map constructor #3985
- Optimize ExitStatus#addExitDescription #3979
- Spring 6.0.1 and newer requires/prefers compilation with "-parameters" #4258
- Remove unused method #4256
📔 Documentation
- Incorrect version in Javadoc's since tag of DefaultBatchConfiguration #4312
- Indent of Javadoc codes are mixed #4234
- Fix typos in Javadocs #4295
- Incorrect reference to AbstractJobTests in documentation #4182
- Architecture html docs are missing diagrams #4268
- Changes to BATCH_JOB_EXECUTION_PARAMS are incorrectly specified in the migration guide #4259
- Fix double "before" typo #4281
- Incorrect code samples in reference documentation #4262
- Fix typo tnew to new in adoc files #4283
🆙 Dependency Upgrades
- Spring Framework: 6.0.5
- Spring Retry: 2.0.0
- Spring AMQP: 3.0.2
- Spring Data: 3.0.2
- Spring Integration: 6.0.3
- Spring Kafka: 3.0.3
- Spring LDAP: 3.0.1
- Micrometer: 1.10.4
🔨 Tasks
- Move build process to Github Actions #4128
- Incorrect deployment descriptor of spring-batch-docs in Artifactory #4109
- Deprecate JobOperator.start(String, String) #4304
- Deprecate MetaDataInstanceFactory#createJobExecution #4303
- Intermittent failure in TaskExecutorRepeatTemplateAsynchronousTests #3866
- Intermittent failure in FaultTolerantStepFactoryBeanRollbackTests.testMultithreadedSkipInWriter #1278
- Add "v" prefix to git tag names #4183
❤ ️ Contributors
We would like to thank all contributors who helped in shipping this release!
Full change log: https://github.com/spring-projects/spring-batch/compare/v5.0.0...v5.0.1
v5.0.0
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
andStartTime
inStepExecution
#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 inFlatFileItemWriterBuilder
#4161 - Configure the right
FieldSetMapper
based on the type of items inFlatFileItemReaderBuilder
#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
andJobContext
#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 inJobExecution
andStepExecution
#4077 - Change default encoding to UTF-8 in
JdbcExecutionContextDao
#3983 - Add
java.util.UUID
to the trusted classes list inJackson2ExecutionContextStringSerializer
#4110 -
AbstractFileItemWriter
should support java.nio #756 - Make JUnit4 dependency optional in
spring-batch-test
#4033 - Replace deprecated
IntegrationFlows
#4155 - Rename
SimpleJobLauncher
toTaskExecutorJobLauncher
#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
andStepBuilder
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
withEnableBatchProcessing
#4140 - Update MySQL Connector/J and use new Maven coordinates #4211
- Improve
@SpringBatchTest
to autowire the job under test inJobLauncherTestUtils
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
andFlatFileItemWriter
#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 theJobRepository
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 #4233
🔨 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
- Deprecate Hibernate support #4150
- Deprecate
AssertFile
#4181 - Deprecate
JobBuilderFactory
andStepBuilderFactory
support #4188 - Removal of
BatchConfigurer
andDefaultBatchConfigurer
#3942 - Removal of
SimpleBatchConfiguration
andModularBatchConfiguration
#3942 - Remove
ParameterType
enumeration #3960 - Deprecate
JobParameters#toProperties
#3960 - Deprecate JobParametersBuilder#addParameter #3960
- The method
JobParameter#getType
now returnsT
instead ofObject
- Deprecate throttle limit in favour of using similar features in
TaskExecutor
implementations #2218 - Remove support for Gemfire #4214
- Change setter name for isolationLevelForCreate in AbstractJobRepositoryFactoryBean #4213
- Change return type of counting methods in various DAOs from int to long #4227
🔨 Dependency Upgrades
- Upgrade to Spring Framework 6.0.1
- Upgrade to Spring Data 2022.0.0
- Upgrade to Spring Integration 6.0.0
- Upgrade to Spring AMQP 3.0.0
- Upgrade to Spring for Apache Kafka 3.0.0
- Upgrade to Micrometer 1.10.1
📔 Documentation
- Editing of the job edit changes #3918
- Add EPUB output in documentation #3920
- Restore the dynamic ToC #4019
- 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
- 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 - Add package-info.java to integration #4141
- Editing pass #4163
- Javadoc editing #4158
- Improve Javadocs #4129
- Update reference documentation to use the Spring Asciidoctor Backend #3865
- Fix minor example in job.adoc #4199
- Incorrect reference to SimpleJdbcTemplate in reference documentation #4197
- Improve documentation of scoped beans definition #1502
- Headline in Spring Batch 5.0 Migration Guide contains typo #4240
❤ ️ Contributors
We'd like to thank all contributors who helped in making this release possible!
v4.3.10
Important
🐞 Bug fixes
-
NullPointerException
inRepeatTemplate#doHandle()
whenunwrapIfRethrown()
returns null if logging in DEBUG #1123 - Job scoped bean doesn't cleanup in unit test #1288
📔 Documentation
- Update documentation about serializable keys in the execution context #4457
- Incorrect JavaDoc for Methods returning
JobFlowBuilder
inJobBuilder
#4415 - Incorrect Javadoc in
DefaultFieldSet
andDefaultFieldSetFactory
#4494 - Regression with the CSS styles and JS toggle in the reference documentation of 4.3.x #4437
🔨 Tasks
- Upgrade to gradle 6.9.4
- Switch to
spring-asciidoctor-backends
for documentation
🔨 Dependency Upgrades
- Spring Framework: 5.3.31
- Spring Retry: 1.3.4
- Spring AMQP: 2.3.16
- Spring Data: 2.7.18
- Spring Integration: 5.5.20
- Spring Kafka: 2.9.13
- Spring LDAP: 2.4.1
- Micrometer: 1.9.17
❤ ️ Contributors
We would like to thank all contributors who helped in shipping this release!
v4.3.9
🐞 Bug fixes
- Incorrect retrieval of job parameters in
SimpleJobExplorer#getJobExecutions
#4246 - Concurrent execution of FlowJob may cause
FlowExecutionException
#4092
🚀 Enhancements
- Slow Query in
JdbcJobInstanceDao.getLastJobInstance()
#4024 - Allow
StaxEventItemReader
to auto-detect the input file encoding #4101
📔 Documentation
- Incorrect Javadoc in
SimpleStepBuilder
#4402 - Fix typo in
SimpleMailMessageItemWriter
Javadoc #4381
🔨 Dependency Upgrades
- Spring Framework: 5.3.29
- Spring Retry: 1.3.4
- Spring AMQP: 2.3.16
- Spring Data: 2.7.15
- Spring Integration: 5.5.18
- Spring Kafka: 2.9.11
- Spring LDAP: 2.4.1
- Micrometer: 1.9.14
❤ ️ Contributors
We would like to thank all contributors who helped in shipping this release!
v4.3.8
🐞 Bug fixes
- JobOperator#stop can not stop JobExecution correctly in some cases #4064
- ClassCastException in RepositoryItemReader when using Slice instead of Page #4115
- Inconsistent state validation rules between RepositoryItemReader and RepositoryItemReaderBuilder #4276
- @StepScope not working when XML namespace activated #3936
- Incorrect handling of file deletion in File-based writers #4203
🚀 Enhancements
- Optimize ExitStatus#addExitDescription #3979
- High memory consumption during long running jobs #3790
📔 Documentation
- Fix minor example in job.adoc #4199
- Incorrect reference to AbstractJobTests in documentation #4182
🔨 Dependency Upgrades
- Spring Framework: 5.3.25
- Spring Retry: 1.3.4
- Spring AMQP: 2.3.16
- Spring Data: 2.7.8
- Spring Integration: 5.5.16
- Spring Kafka: 2.9.6
- Spring LDAP: 2.4.1
- Micrometer: 1.9.8
❤ ️ Contributors
We would like to thank all contributors who helped in shipping this release!
v4.3.7
🐞 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!
v4.3.6
🐞 Bug fixes
- Incorrect job restart with null parameters of type long/double #4087
-
SqlSyntaxErrorException
when creating tableBATCH_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 inJobExecution
andStepExecution
#4077 - Add
java.util.UUID
to the trusted classes list inJackson2ExecutionContextStringSerializer
#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!
v4.3.5
🐞 Bug fixes
🚀 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
v4.3.4
🐞 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.3.3
🐞 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.3.1
🐞 Bug fixes
- After restarting a failed job using
RunIdIncrementer
, all subsequent job launches throwClassCastException
#3799 - Use
isQuoteCharacter
instead of direct char comparison inDelimitedLineTokenizer
#682 - Incorrect behaviour of
RepositoryItemReader#jumpToItem()
on restart #1074 - Do not throw NPE for job instances without executions #3798
🚀 Enhancements
-
kafkaTemplate
inKafkaItemWriter
should beprotected
#3802
v4.3.0
⭐ New features
- Add support to use Java 14 records as items #3693
- Add
JpaCursorItemReader
implementation #901 - Add setter for
standalone
attribute inStaxEventItemWriter
#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 inJobLauncherTestUtils
#767 - Add
JobParametersIncrementer
implementation based on aDataFieldMaxValueIncrementer
#1521 - Add
SynchronizedItemStreamWriter
#842 - Add
beanRowMapper
method toJdbcPagingItemReaderBuilder
#819 - Add support for named queries in
JpaPagingItemReader
#1667 - Add support for annotation based
JobExecutionListener
in theJobBuilder
#817 - Meta-annotate
@SpringBatchTest
with@ExtendWith(SpringExtension.class)
#3647 - Set
proxyBeanMethods
to false onModularBatchConfiguration
andSimpleBatchConfiguration
#3715
🚀 Enhancements
- Add connection parameter to
AbstractCursorItemReader#cleanupOnClose
#735 -
BulkOperations
API Implementation for Remove Operations inMongoItemWriter
#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
useCrudRepository#saveAll
by default #3720 - Use
BulkOperations
API inMongoItemWriter
#3713 - Add ability to amend trusted classes in
Jackson2ExecutionContextStringSerializer
#3765 - Improve formatting of
IllegalArgumentException
message thrown byDefaultExecutionContextSerializer
#3636
🐞 Bug fixes
- Unable to set
partitionOffsets
inKafkaItemReaderBuilder
#3761 -
SimpleCompletionPolicy
should havegetChunkSize()
method #3738 - Unable to set
usePersist
parameter withJpaItemWriterBuilder
#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 withJdbcCursorItemReaderBuilder
#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 inScriptItemProcessor
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 callsetExecutionContextName()
#3681 -
FaultTolerantChunkProcessor
does not collect metrics likeSimpleChunkProcessor
#3664 -
FlatFileItemReaderBuilder
reports error "Only one LineTokenizer option may be configured" when none are. #3688 - Default value of comment prefix in
FlatFileItemReaderBuilder
is inconsistent withFlatFileItemReader
#753 - Empty String as delimiter is ignored #770
- Regression due to the fix of BATCH-2442 #775
-
FlatFileItemReaderBuilder
does not overrule comment prefixes in returnedFlatFileItemReader
#779 -
FlatFileItemWriterBuilder
requires aResource
#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.2.8.RELEASE
🐞 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.2.7.RELEASE
🐞 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.2.5.RELEASE
🐞 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 throwClassCastException
#3799 - Use
isQuoteCharacter
instead of direct char comparison inDelimitedLineTokenizer
#682 - Incorrect behaviour of
RepositoryItemReader#jumpToItem()
on restart #1074 - Do not throw NPE for job instances without executions #3798
🚀 Enhancements
-
kafkaTemplate
inKafkaItemWriter
should beprotected
#3802
📔 Documentation
- Fix typo in
spring-batch-intro.adoc
#3755
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.