Commit Graph

6018 Commits

Author SHA1 Message Date
Mahmoud Ben Hassine
8aa1becd41 Update "what's new" section for 5.0.0-RC2 release 2022-11-09 14:44:23 +01:00
Mahmoud Ben Hassine
0a048f31c3 Fix typo in exception message 2022-11-09 10:18:35 +01:00
Mahmoud Ben Hassine
2edd4006d2 Change the return type of counting methods in various DAOs from int to long
This is required for job repository/explorer implementations
that use the Long type to count records in the database.

Resolves #4227
2022-11-08 22:06:16 +01:00
Mahmoud Ben Hassine
919f73e78c Remove the SQL Server sequence incrementer in favor of the one provided by Spring Framework 2022-11-08 21:15:49 +01:00
Mahmoud Ben Hassine
1cb172b5e5 Remove the MariaDB sequence incrementer in favor of the one provided by Spring Framework 2022-11-08 21:15:40 +01:00
Mahmoud Ben Hassine
881c79c3e4 Align dependencies with JakartaEE 10 2022-11-08 20:40:43 +01:00
Mahmoud Ben Hassine
1527593a36 Refine contribution #4218
* Update Javadoc of SpringBatchTest about job autowiring
* Apply Spring code style conventions
2022-11-08 13:45:13 +01:00
Henning Poettker
3bb7ce532b Improve @SpringBatchTest to autowire the job under test in JobLauncherTestUtils if it is unique
Issue #4218
2022-11-08 13:16:36 +01:00
Mahmoud Ben Hassine
621ec92586 Add Micrometer counter for job launches
Resolves #4226
2022-11-08 12:28:43 +01:00
Mahmoud Ben Hassine
d444a8abaf Make the MeterRegistry used by Micrometer configurable
Resolves #4224
2022-11-08 08:33:28 +01:00
Mahmoud Ben Hassine
d889f84735 Remove the static configuration of Micrometer's observation registry
Resolves #4222
2022-11-08 07:48:45 +01:00
Mahmoud Ben Hassine
051e0220fc Add native resource hint for MariaDB DDL script
Related to #3891
2022-11-04 13:24:47 +01:00
Mahmoud Ben Hassine
bc92c4a1da Add native reflection hints for Job/Step contexts 2022-11-04 11:21:37 +01:00
Mahmoud Ben Hassine
5da133ac36 Make ObservationRegistry non final in BatchMetrics
This makes it possible to assign a pre-configured
ObservationRegistry (by Spring Boot for instance)
in BatchMetrics
2022-10-25 17:43:32 +02:00
Mahmoud Ben Hassine
eda046414f Fix typo in method name in DefaultBatchConfiguration 2022-10-25 16:45:50 +02:00
Mahmoud Ben Hassine
524e9564c0 Add full support for MariaDB
This commit adds full support for MariaDB as
a job repository and removes the code that
treats it as MySQL.

Resolves #3891
Resolves #4217
2022-10-25 11:11:57 +02:00
Mahmoud Ben Hassine
724cc97ed6 Update Spring dependencies to latest snapshots 2022-10-20 02:12:23 +02:00
Spring Builds
24283a8a1f [artifactory-release] Next development version 2022-10-19 23:57:21 +00:00
Spring Builds
adde7d764e [artifactory-release] Release version 5.0.0-RC1 2022-10-19 23:57:18 +00:00
Mahmoud Ben Hassine
35c7eabc5c Update documentation for 5.0.0-RC1 release 2022-10-19 22:02:32 +02:00
Mahmoud Ben Hassine
78ad9867ed Update dependencies for 5.0.0-RC1 release 2022-10-19 22:01:58 +02:00
Henning Poettker
15ef22284a Update MySQL Connector/J and use new Maven coordinates 2022-10-19 17:16:20 +02:00
Mahmoud Ben Hassine
0b694117eb Add Spring Batch version in the execution context
Resolves #4215
2022-10-19 16:48:08 +02:00
Mahmoud Ben Hassine
866fe37eb0 Exclude Jackson from transitive dependencies 2022-10-19 11:28:54 +02:00
Mahmoud Ben Hassine
d55a091654 Remove Gemfire support in Spring Batch
Based on the decision to discontinue the support
of Spring Data for Apache Geode [1], this commit
removes the support for Geode in Spring Batch.

The code will be moved to the spring-batch-extensions
repository as a community-driven effort.

[1]: https://github.com/spring-projects/spring-data-geode#notice

Resolves #4214
2022-10-18 12:31:09 +02:00
Mahmoud Ben Hassine
de567e8c6f Fix JavaBean setter collision
This commit changes the name of the overloaded
setter for isolationLevelForCreate to remove
ambiguity in setter selection by Spring Framework.

Resolves #4213
2022-10-18 11:46:02 +02:00
Mahmoud Ben Hassine
05f6d136c6 Fix link to spring-batch.xsd in spring.schemas 2022-10-18 11:18:09 +02:00
Mahmoud Ben Hassine
34f3ec5bc9 Update Spring dependencies to latest snapshots 2022-10-13 12:52:39 +02:00
Spring Builds
58c760b3ef [artifactory-release] Next development version 2022-10-13 10:34:01 +00:00
Spring Builds
87f3644667 [artifactory-release] Release version 5.0.0-M8 2022-10-13 10:33:58 +00:00
Mahmoud Ben Hassine
b27e28b4b2 Update dependencies for 5.0.0-M8 release 2022-10-13 11:51:09 +02:00
Mahmoud Ben Hassine
dd823fa474 Update documentation for 5.0.0-M8 release 2022-10-13 11:50:41 +02:00
Mahmoud Ben Hassine
bd9d0d90d6 Deprecate internal classes related to concurrency in TaskExecutorRepeatTemplate
Related to #3949
Related to #3950
Related to #3951
2022-10-12 19:00:40 +02:00
Mahmoud Ben Hassine
1ff04d532d Deprecate throttle limit in TaskExecutorRepeatTemplate
Resolves #2218
2022-10-12 18:57:18 +02:00
Mahmoud Ben Hassine
157d7a3a20 Deprecate ItemStreamSupport in favor of using default methods in the ItemStream interface 2022-10-12 18:55:46 +02:00
Mahmoud Ben Hassine
668c614ed9 Add default methods in ItemStream interface 2022-10-12 18:55:06 +02:00
Mahmoud Ben Hassine
30cee99578 Remove unused constructor in SkipWrapper
This constructor does not make sense as it
does not accept the skipped item.
2022-10-12 18:53:52 +02:00
Mahmoud Ben Hassine
87e69f3e87 Deprecate Classifier
This annotation is not used or introspected
by production code.
2022-10-12 18:51:08 +02:00
Mahmoud Ben Hassine
219fd7f2e2 Deprecate DelegateStep 2022-10-12 18:50:13 +02:00
Mahmoud Ben Hassine
bef2588207 Deprecate DataSourceInitializer 2022-10-12 18:49:31 +02:00
Mahmoud Ben Hassine
f185fd1598 Deprecate JobRegistryBackgroundJobRunner 2022-10-12 18:49:31 +02:00
Mahmoud Ben Hassine
26c39cbbae Refine contribution #3967
Related to #752
2022-10-12 17:23:58 +02:00
Philippe Truche
746c919372 Support command as array of strings
setCommand now supports passing in an array of strings. When a single
string is supplied, it is tokenized by the Runtime#exec method. When an
array of strings is supplied, the array is supplied as is to the
Runtime#exec method in which case no tokenization takes place.

Resolves #752
2022-10-12 16:36:30 +02:00
Mahmoud Ben Hassine
4eefb1d287 Refine contribution #3972
Related to #3955
2022-10-12 15:37:45 +02:00
Stefano Cordio
eccea800fb Add CommandRunner and JvmCommandRunner in SystemCommandTasklet
This improves the testability of `SystemCommandTasklet` when the
target command is not available during test execution.

Resolves #3955
2022-10-12 14:56:07 +02:00
Mahmoud Ben Hassine
6fbbeb8e5b Fix timestamp precision in schema-derby.sql
Related to 81728c00ed
2022-10-12 08:38:27 +02:00
Mahmoud Ben Hassine
d66372a0fb Fix timestamp precision in schema-hsqldb-extended.sql
Related to 81728c00ed
2022-10-12 08:06:13 +02:00
Mahmoud Ben Hassine
81728c00ed Increase the value of fractional seconds precision in timestamp columns
This commit increases the value of fractional seconds precision to 9
for database providers that support a value higher than 6 (which is the
default value for most database providers).

The reason for this change is that a `java.time.LocalDateTime` has a
FSP of 9, and a round trip to the database as a `java.sql.Timestamp`
results in data loss at the FSP level.

Here is an example in JdbcStepExecutionDaoTests#testSaveAndGetExecution:

```
assertStepExecutionsAreEqual:318
   expected: <2022-10-12T03:42:01.305896170>
   but was:  <2022-10-12T03:42:01.305896>
```

Some DB providers like MySQL [1], Postgresql [2], SAP HANA [3],
SQLServer [4] and SyBase [5] do not support FSP up to 9.

[1]: https://dev.mysql.com/doc/refman/8.0/en/datetime.html
[2]: https://www.postgresql.org/docs/current/datatype-datetime.html
[3]: https://help.sap.com/docs/SAP_HANA_PLATFORM/4fe29514fd584807ac9f2a04f6754767/3f81ccc7e35d44cbbc595c7d552c202a.html?version=2.0.02&locale=en-US
[4]: https://learn.microsoft.com/en-us/sql/t-sql/data-types/datetime-transact-sql?view=sql-server-ver16
[5]: https://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/iqrefbb587.htm
2022-10-12 07:14:05 +02:00
Mahmoud Ben Hassine
5c92623785 Fix Timestamp to LocalDateTime conversion in Job/Step execution DAOs
Persisting a LocalDateTime as a Timestamp with `Timestamp.valueOf(LocalDateTime)`
and retrieving it with `ResultSet#getObject(index, LocalDateTime.class)` seems
to result in a data loss at the millisecond fraction level.

This commit changes the usage of `ResultSet#getObject(index, LocalDateTime.class)`
to `ResultSet#getTimestamp(index).toLocalDateTime()`.

A round trip to the database with `Timestamp.valueOf(LocalDateTime)` and
`Timestamp.toLocalDateTime()` should not result in a data loss.
2022-10-12 06:46:05 +02:00
Henning Poettker
220de61f75 Remove un-used code for jump-to-item queries 2022-10-11 22:10:59 +02:00