Skip to content

Commit f673745

Browse files
committed
Merge branch 'main' into 3757-unique-step-names
# Conflicts: # spring-batch-core/src/test/java/org/springframework/batch/core/job/builder/FlowJobBuilderTests.java
2 parents 0c3e028 + f888ebb commit f673745

File tree

297 files changed

+7257
-5368
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

297 files changed

+7257
-5368
lines changed

.github/dco.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
require:
2+
members: false

.github/workflows/continuous-inspection.yml

Lines changed: 0 additions & 32 deletions
This file was deleted.

.github/workflows/continuous-integration.yml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
name: CI/CD build
22

33
on:
4+
workflow_dispatch:
45
push:
56
branches: [ "main" ]
67

@@ -53,5 +54,5 @@ jobs:
5354
working-directory: spring-batch-docs/target
5455
run: |
5556
unzip spring-batch-$PROJECT_VERSION-javadocs.zip
56-
ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST cd $DOCS_PATH && mkdir -p $PROJECT_VERSION/api
57-
scp -i $HOME/.ssh/key -r api $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$PROJECT_VERSION/api
57+
ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST "cd $DOCS_PATH && mkdir -p $PROJECT_VERSION"
58+
scp -i $HOME/.ssh/key -r api $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$PROJECT_VERSION

.github/workflows/documentation-upload.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ jobs:
5555
working-directory: spring-batch-docs/target
5656
run: |
5757
unzip spring-batch-$RELEASE_VERSION-javadocs.zip
58-
ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST cd $DOCS_PATH && mkdir -p $RELEASE_VERSION/api
59-
scp -i $HOME/.ssh/key -r api $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$RELEASE_VERSION/api
58+
ssh -i $HOME/.ssh/key $DOCS_USERNAME@$DOCS_HOST "cd $DOCS_PATH && mkdir -p $RELEASE_VERSION"
59+
scp -i $HOME/.ssh/key -r api $DOCS_USERNAME@$DOCS_HOST:$DOCS_PATH/$RELEASE_VERSION
6060
6161
unzip spring-batch-$RELEASE_VERSION-schemas.zip
6262
scp -i $HOME/.ssh/key batch/*.xsd $DOCS_USERNAME@$DOCS_HOST:$BATCH_SCHEMA_PATH

CONTRIBUTING.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ about how to report issues.
2626
Not sure what a *pull request* is, or how to submit one? Take a look at the excellent [GitHub help documentation][] first.
2727
Please create a new issue *before* submitting a pull request unless the change is truly trivial, e.g. typo fixes, removing compiler warnings, etc.
2828

29-
### Sign the contributor license agreement
29+
### Sign-off commits according to the Developer Certificate of Origin
3030

31-
If you have not previously done so, please fill out and submit the [Contributor License Agreement](https://cla.pivotal.io/sign/spring).
31+
All commits must include a Signed-off-by trailer at the end of each commit message to indicate that the contributor agrees to the [Developer Certificate of Origin](https://developercertificate.org).
32+
33+
For additional details, please refer to the blog post [Hello DCO, Goodbye CLA: Simplifying Contributions to Spring](https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring).
3234

3335
### Fork the Repository
3436

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
# Latest news
2+
3+
* December 18, 2024: [Spring Batch 5.1.3 and 5.2.1 available now](https://spring.io/blog/2024/12/18/spring-batch-5-1-3-and-5-2-1-available-now)
4+
* November 24, 2024: [Bootiful Spring Boot 3.4: Spring Batch](https://spring.io/blog/2024/11/24/bootiful-34-batch)
5+
* November 20, 2024: [Spring Batch 5.2.0 goes GA!](https://spring.io/blog/2024/11/20/spring-batch-5-2-0-goes-ga)
6+
17
<img align="right" src="spring-batch-docs/modules/ROOT/assets/images/spring-batch.png" width="200" height="200">
28

39
# Spring Batch [![build status](https://github.com/spring-projects/spring-batch/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/spring-projects/spring-batch/actions/workflows/continuous-integration.yml)
@@ -222,4 +228,4 @@ Please see our [code of conduct](https://github.com/spring-projects/.github/blob
222228

223229
# License
224230

225-
Spring Batch is Open Source software released under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html).
231+
Spring Batch is Open Source software released under the [Apache 2.0 license](https://www.apache.org/licenses/LICENSE-2.0.html).

pom.xml

Lines changed: 61 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
designed to enable the development of robust batch applications vital
99
for the daily operations of enterprise systems. Spring Batch is part of
1010
the Spring Portfolio.</description>
11-
<version>5.2.0-SNAPSHOT</version>
11+
<version>5.2.2-SNAPSHOT</version>
1212
<packaging>pom</packaging>
1313
<url>https://projects.spring.io/spring-batch</url>
1414

@@ -61,95 +61,94 @@
6161
<java.version>17</java.version>
6262

6363
<!-- production dependencies -->
64-
<spring-framework.version>6.1.4-SNAPSHOT</spring-framework.version>
65-
<spring-retry.version>2.0.5-SNAPSHOT</spring-retry.version>
66-
<spring-integration.version>6.2.2-SNAPSHOT</spring-integration.version>
67-
<micrometer.version>1.12.3-SNAPSHOT</micrometer.version>
64+
<spring-framework.version>6.2.1</spring-framework.version>
65+
<spring-retry.version>2.0.11</spring-retry.version>
66+
<spring-integration.version>6.4.1</spring-integration.version>
67+
<micrometer.version>1.14.2</micrometer.version>
6868

6969
<!-- optional production dependencies -->
70-
<spring-data-commons.version>3.2.3-SNAPSHOT</spring-data-commons.version>
71-
<spring-data-jpa.version>3.2.3-SNAPSHOT</spring-data-jpa.version>
72-
<spring-data-redis.version>3.2.3-SNAPSHOT</spring-data-redis.version>
73-
<spring-data-mongodb.version>4.2.3-SNAPSHOT</spring-data-mongodb.version>
74-
<spring-kafka.version>3.1.2-SNAPSHOT</spring-kafka.version>
75-
<spring-amqp.version>3.1.2-SNAPSHOT</spring-amqp.version>
76-
<spring-ldap.version>3.2.2-SNAPSHOT</spring-ldap.version>
70+
<spring-data-commons.version>3.4.1</spring-data-commons.version>
71+
<spring-data-jpa.version>3.4.1</spring-data-jpa.version>
72+
<spring-data-redis.version>3.4.1</spring-data-redis.version>
73+
<spring-data-mongodb.version>4.4.1</spring-data-mongodb.version>
74+
<spring-kafka.version>3.3.1</spring-kafka.version>
75+
<spring-amqp.version>3.2.1</spring-amqp.version>
76+
<spring-ldap.version>3.2.9</spring-ldap.version>
7777

78-
<jackson.version>2.15.3</jackson.version>
79-
<avro.version>1.11.3</avro.version>
80-
<gson.version>2.10.1</gson.version>
81-
<hibernate-core.version>6.3.1.Final</hibernate-core.version>
82-
<jakarta.annotation-api.version>2.1.1</jakarta.annotation-api.version>
83-
<jakarta.mail-api.version>2.1.2</jakarta.mail-api.version>
78+
<jackson.version>2.18.2</jackson.version>
79+
<avro.version>1.12.0</avro.version>
80+
<gson.version>2.11.0</gson.version>
81+
<hibernate-core.version>6.6.3.Final</hibernate-core.version>
82+
<jakarta.annotation-api.version>3.0.0</jakarta.annotation-api.version>
83+
<jakarta.mail-api.version>2.1.3</jakarta.mail-api.version>
8484
<jakarta.jms-api.version>3.1.0</jakarta.jms-api.version>
85-
<jakarta.validation-api.version>3.0.2</jakarta.validation-api.version>
85+
<jakarta.validation-api.version>3.1.0</jakarta.validation-api.version>
8686
<jakarta.persistence-api.version>3.1.0</jakarta.persistence-api.version>
87-
<neo4j-ogm-core.version>4.0.8</neo4j-ogm-core.version>
88-
<mongodb-driver-sync.version>4.11.1</mongodb-driver-sync.version>
89-
<junit-jupiter.version>5.10.1</junit-jupiter.version>
87+
<neo4j-ogm-core.version>4.0.13</neo4j-ogm-core.version>
88+
<mongodb-driver.version>5.2.1</mongodb-driver.version>
89+
<junit-jupiter.version>5.11.4</junit-jupiter.version>
9090

9191
<!-- provided dependencies -->
9292
<jsr305.version>3.0.2</jsr305.version>
9393

9494
<!-- test dependencies -->
95-
<micrometer-tracing.version>1.2.3-SNAPSHOT</micrometer-tracing.version>
95+
<micrometer-tracing.version>1.4.1</micrometer-tracing.version>
9696

9797
<xstream.version>1.4.20</xstream.version>
9898
<junit.version>4.13.2</junit.version>
9999
<junit-vintage-engine.version>${junit-jupiter.version}</junit-vintage-engine.version>
100-
<hamcrest.version>2.2</hamcrest.version>
101-
<assertj.version>3.24.2</assertj.version>
102-
<mockito.version>5.7.0</mockito.version>
103-
<xmlunit.version>2.9.1</xmlunit.version>
104-
<commons-io.version>2.15.0</commons-io.version>
105-
<commons-dbcp2.version>2.11.0</commons-dbcp2.version>
106-
<slf4j.version>2.0.9</slf4j.version>
107-
<hsqldb.version>2.7.2</hsqldb.version>
108-
<h2.version>2.2.224</h2.version>
109-
<sqlite.version>3.44.0.0</sqlite.version>
110-
<derby.version>10.16.1.1</derby.version>
111-
<hana.version>2.18.13</hana.version>
112-
<artemis.version>2.31.2</artemis.version>
113-
<jaxb-core.version>4.0.4</jaxb-core.version>
114-
<log4j.version>2.22.0</log4j.version>
115-
<hibernate-validator.version>8.0.1.Final</hibernate-validator.version>
116-
<jakarta.el-api.version>5.0.1</jakarta.el-api.version>
100+
<hamcrest.version>3.0</hamcrest.version>
101+
<assertj.version>3.26.3</assertj.version>
102+
<mockito.version>5.14.2</mockito.version>
103+
<xmlunit.version>2.10.0</xmlunit.version>
104+
<commons-io.version>2.18.0</commons-io.version>
105+
<commons-dbcp2.version>2.13.0</commons-dbcp2.version>
106+
<slf4j.version>2.0.16</slf4j.version>
107+
<hsqldb.version>2.7.4</hsqldb.version>
108+
<h2.version>2.3.232</h2.version>
109+
<sqlite.version>3.47.1.0</sqlite.version>
110+
<derby.version>10.16.1.1</derby.version> <!-- FIXME build failure with 10.17.1.0 -->
111+
<hana.version>2.21.11</hana.version>
112+
<artemis.version>2.38.0</artemis.version>
113+
<jaxb-core.version>4.0.5</jaxb-core.version>
114+
<log4j.version>2.24.3</log4j.version>
115+
<hibernate-validator.version>8.0.2.Final</hibernate-validator.version>
116+
<jakarta.el-api.version>6.0.1</jakarta.el-api.version>
117117
<jakarta.el.version>4.0.2</jakarta.el.version>
118118
<jakarta.inject-api.version>2.0.1</jakarta.inject-api.version>
119-
<jakarta.xml.bind-api.version>4.0.1</jakarta.xml.bind-api.version>
120-
<angus-mail.version>2.0.2</angus-mail.version>
121-
<woodstox-core.version>6.5.1</woodstox-core.version>
122-
<aspectj.version>1.9.20.1</aspectj.version>
123-
<mysql-connector-j.version>8.2.0</mysql-connector-j.version>
124-
<mariadb-java-client.version>3.3.0</mariadb-java-client.version>
125-
<postgresql.version>42.7.0</postgresql.version>
126-
<db2.version>11.5.8.0</db2.version>
127-
<oracle.version>19.21.0.0</oracle.version>
119+
<jakarta.xml.bind-api.version>4.0.2</jakarta.xml.bind-api.version>
120+
<angus-mail.version>2.0.3</angus-mail.version>
121+
<woodstox-core.version>7.1.0</woodstox-core.version>
122+
<aspectj.version>1.9.22.1</aspectj.version>
123+
<mysql-connector-j.version>9.1.0</mysql-connector-j.version>
124+
<mariadb-java-client.version>3.5.1</mariadb-java-client.version>
125+
<postgresql.version>42.7.4</postgresql.version>
126+
<db2.version>11.5.9.0</db2.version>
127+
<oracle.version>19.24.0.0</oracle.version>
128128
<sqlserver.version>11.2.3.jre17</sqlserver.version>
129129
<jtds.version>1.3.1</jtds.version>
130-
<testcontainers.version>1.19.3</testcontainers.version>
131-
<jsonassert.version>1.5.1</jsonassert.version>
130+
<testcontainers.version>1.20.4</testcontainers.version>
131+
<jsonassert.version>1.5.3</jsonassert.version>
132132

133133
<!-- samples dependencies -->
134134
<spring-rabbit.version>${spring-amqp.version}</spring-rabbit.version>
135135
<quartz.version>2.3.2</quartz.version>
136136
<prometheus_pushgateway.version>0.16.0</prometheus_pushgateway.version>
137-
<groovy.version>3.0.19</groovy.version>
137+
<groovy.version>3.0.22</groovy.version>
138138

139139
<!-- documentation dependencies -->
140140
<io.spring.maven.antora-version>0.0.4</io.spring.maven.antora-version>
141141

142142
<!-- plugin versions -->
143-
<maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version>
144-
<maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
145-
<maven-failsafe-plugin.version>3.1.2</maven-failsafe-plugin.version>
146-
<maven-javadoc-plugin.version>3.6.0</maven-javadoc-plugin.version>
147-
<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
148-
<jacoco-maven-plugin.version>0.8.10</jacoco-maven-plugin.version>
149-
<flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
150-
<maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version>
151-
<maven-assembly-plugin.version>3.6.0</maven-assembly-plugin.version>
152-
<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
143+
<maven-compiler-plugin.version>3.13.0</maven-compiler-plugin.version>
144+
<maven-surefire-plugin.version>3.5.0</maven-surefire-plugin.version>
145+
<maven-failsafe-plugin.version>3.5.0</maven-failsafe-plugin.version>
146+
<maven-javadoc-plugin.version>3.10.0</maven-javadoc-plugin.version>
147+
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
148+
<flatten-maven-plugin.version>1.6.0</flatten-maven-plugin.version>
149+
<maven-deploy-plugin.version>3.1.3</maven-deploy-plugin.version>
150+
<maven-assembly-plugin.version>3.7.1</maven-assembly-plugin.version>
151+
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
153152
<spring-javaformat-maven-plugin.version>0.0.39</spring-javaformat-maven-plugin.version>
154153
</properties>
155154

@@ -325,32 +324,6 @@
325324
</build>
326325

327326
<profiles>
328-
<profile>
329-
<id>test-coverage</id>
330-
<build>
331-
<plugins>
332-
<plugin>
333-
<groupId>org.jacoco</groupId>
334-
<artifactId>jacoco-maven-plugin</artifactId>
335-
<version>${jacoco-maven-plugin.version}</version>
336-
<executions>
337-
<execution>
338-
<id>prepare-agent</id>
339-
<goals>
340-
<goal>prepare-agent</goal>
341-
</goals>
342-
</execution>
343-
<execution>
344-
<id>report</id>
345-
<goals>
346-
<goal>report</goal>
347-
</goals>
348-
</execution>
349-
</executions>
350-
</plugin>
351-
</plugins>
352-
</build>
353-
</profile>
354327
<profile>
355328
<id>artifactory-staging</id>
356329
<distributionManagement>

spring-batch-bom/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.springframework.batch</groupId>
66
<artifactId>spring-batch</artifactId>
7-
<version>5.2.0-SNAPSHOT</version>
7+
<version>5.2.2-SNAPSHOT</version>
88
</parent>
99
<artifactId>spring-batch-bom</artifactId>
1010
<packaging>pom</packaging>

spring-batch-core/pom.xml

Lines changed: 58 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.springframework.batch</groupId>
66
<artifactId>spring-batch</artifactId>
7-
<version>5.2.0-SNAPSHOT</version>
7+
<version>5.2.2-SNAPSHOT</version>
88
</parent>
99
<artifactId>spring-batch-core</artifactId>
1010
<packaging>jar</packaging>
@@ -96,6 +96,51 @@
9696
<version>${aspectj.version}</version>
9797
<optional>true</optional>
9898
</dependency>
99+
<dependency>
100+
<groupId>org.springframework.data</groupId>
101+
<artifactId>spring-data-mongodb</artifactId>
102+
<version>${spring-data-mongodb.version}</version>
103+
<optional>true</optional>
104+
<exclusions>
105+
<exclusion>
106+
<groupId>org.slf4j</groupId>
107+
<artifactId>slf4j-api</artifactId>
108+
</exclusion>
109+
<exclusion>
110+
<groupId>org.mongodb</groupId>
111+
<artifactId>mongodb-driver-core</artifactId>
112+
</exclusion>
113+
<exclusion>
114+
<groupId>org.mongodb</groupId>
115+
<artifactId>mongodb-driver-sync</artifactId>
116+
</exclusion>
117+
<exclusion>
118+
<groupId>org.springframework</groupId>
119+
<artifactId>spring-expression</artifactId>
120+
</exclusion>
121+
<exclusion>
122+
<groupId>org.springframework.data</groupId>
123+
<artifactId>spring-data-commons</artifactId>
124+
</exclusion>
125+
</exclusions>
126+
</dependency>
127+
<dependency>
128+
<groupId>org.springframework.data</groupId>
129+
<artifactId>spring-data-commons</artifactId>
130+
<version>${spring-data-commons.version}</version>
131+
</dependency>
132+
<dependency>
133+
<groupId>org.mongodb</groupId>
134+
<artifactId>mongodb-driver-core</artifactId>
135+
<version>${mongodb-driver.version}</version>
136+
<optional>true</optional>
137+
</dependency>
138+
<dependency>
139+
<groupId>org.mongodb</groupId>
140+
<artifactId>mongodb-driver-sync</artifactId>
141+
<version>${mongodb-driver.version}</version>
142+
<optional>true</optional>
143+
</dependency>
99144

100145
<!-- test dependencies -->
101146
<dependency>
@@ -128,6 +173,12 @@
128173
<version>${testcontainers.version}</version>
129174
<scope>test</scope>
130175
</dependency>
176+
<dependency>
177+
<groupId>org.testcontainers</groupId>
178+
<artifactId>mongodb</artifactId>
179+
<version>${testcontainers.version}</version>
180+
<scope>test</scope>
181+
</dependency>
131182
<dependency>
132183
<groupId>org.mariadb.jdbc</groupId>
133184
<artifactId>mariadb-java-client</artifactId>
@@ -199,6 +250,12 @@
199250
<artifactId>sqlite-jdbc</artifactId>
200251
<version>${sqlite.version}</version>
201252
<scope>test</scope>
253+
<exclusions>
254+
<exclusion>
255+
<groupId>org.slf4j</groupId>
256+
<artifactId>slf4j-api</artifactId>
257+
</exclusion>
258+
</exclusions>
202259
</dependency>
203260
<dependency>
204261
<groupId>com.h2database</groupId>

0 commit comments

Comments
 (0)