As of v4, spring-jdbc was optional since
Spring Batch provided a Map-based job
repository.
In v5, the Map-based job repository has
been removed and the only option now is
the Jdbc-based implementation which requires
spring-jdbc.
Resolves#4048
Related to #3836
This commit removes the unconditional exposure of the transaction
manager as a bean in the application context. The transaction manager
is still taken from the BatchConfigurer and set where needed (ie on
JobRepository and StepBuilderFactory) as previously done,
but is not exposed anymore as a bean to prevent any clash with a user
defined transaction manager.
If no transaction manager is provided, a DataSourceTransactionManager
will be configured by default as required by batch (without being exposed
as a bean).
Resolves#816
* Upgrade to Jakarta EE 9
* Upgrade to Spring Framework 6
* Upgrade to Spring Integration 6
* Upgrade to Spring Data 3
* Upgrade to Spring AMQP 3
* Upgrade to Spring for Apache Kafka 3
LDIF support is still in progress waiting for the next
major version of Spring LDAP.
Closes#4027Closes#3656
Emulating sequences with tables causes deadlocks when running
multiple jobs at the same time. Sequences have been supported
in SQL Server since version 2012.
This commit replaces the usage of tables to emulate sequences
with real sequences. It also adds a new incrementer that is
based on sequences instead of tables.
Resolves#1448
The TEXT datatype has been deprecated since SQLServer 2017.
This commit updates the script to use the suggested
replacement, which is VARCHAR(MAX).
Resolves#864
The default table segment creation in Oracle is DEFERRED.
This means when Spring Batch tries to insert rows for the
first time, it will compete with the Oracle process that
tries to create segments lazily at the same time, which
leads to an error.
This commit changes the default table segment creation
to IMMEDIATE.
Resolves#1127
When using a hierarchy of Spring contexts, custom scopes
are not visible in child contexts. With this change, it is
now possible for users to import the configuration class
into child contexts and use job and step scope within them.
Issue #3958
Before this commit, SimpleJobExplorer#getLastJobExecution returned
the last job execution without fetching its step executions and
their execution contexts.
This commit fixes the implementation to load the entire object
graph as done in SimpleJobExplorer#getJobExecution.
Resolves#3943#3944
The schema version in JobParserWrongSchemaInRootTests-context.xml
has not been removed as it is used on purpose for
JobParserExceptionTests#testWrongSchemaInRoot.
Resolves#913
This commit removes the deprecated Map-based job repository
and job explorer implementations with their respective DAOs.
Using the `EnableBatchProcessing` annotation now requires a
datasource bean to be defined in the application context.
This will be reviewed as part of #3942.
This commit is a first pass that updates related tests to use
the JDBC-based job repository/explorer with an embedded database.
A second pass should be done to improve tests by caching/reusing
embedded databases if possible.
Issue #3836