Skip to content

Commit 9ed56eb

Browse files
authored
Merge branch 'spring-projects:main' into main
2 parents b77ee89 + 299951c commit 9ed56eb

File tree

42 files changed

+172
-188
lines changed

Some content is hidden

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

42 files changed

+172
-188
lines changed

.github/dco.yml

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
require:
2+
members: false

.github/workflows/ci-boot.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
matrix:
1515
os: [ubuntu-latest]
1616
java: [ 17 ]
17-
boot: [ 3.1.10, 3.2.0, 3.2.1, 3.2.2, 3.2.3 ]
17+
boot: [ 3.3.6, 3.4.0 ]
1818
fail-fast: false
1919

2020
steps:
@@ -43,7 +43,7 @@ jobs:
4343
*/*/build/reports
4444
- name: Upload Build Logs
4545
if: ${{ failure() }}
46-
uses: actions/upload-artifact@v4
46+
uses: actions/upload-artifact@v4.4.3
4747
with:
4848
name: buildlogs-${{ matrix.boot }}-${{ matrix.java }}
4949
path: build/buildlogs.tar.gz

.github/workflows/ci.yml

+12-15
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,18 @@ jobs:
1212

1313
# build and test, then upload logs if failure
1414
build:
15-
runs-on: ${{ matrix.os }}
16-
strategy:
17-
matrix:
18-
os: [ubuntu-latest]
19-
java: [ 17 ]
20-
fail-fast: false
15+
runs-on: ubuntu-latest
2116

2217
steps:
23-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@v4.2.2
2419
- name: Setup JDK
25-
uses: actions/setup-java@v4
20+
uses: actions/setup-java@v4.7.0
2621
with:
2722
distribution: adopt
28-
java-version: ${{ matrix.java }}
23+
java-version: 17
2924
cache: gradle
3025
- name: Build with Gradle
31-
run: ./gradlew clean build
26+
run: ./gradlew build
3227
env:
3328
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
3429
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
@@ -45,7 +40,7 @@ jobs:
4540
*/*/build/reports
4641
- name: Upload Build Logs
4742
if: ${{ failure() }}
48-
uses: actions/upload-artifact@v2
43+
uses: actions/upload-artifact@v4.6.0
4944
with:
5045
name: buildlogs
5146
path: build/buildlogs.tar.gz
@@ -55,15 +50,15 @@ jobs:
5550
needs: build
5651
runs-on: ubuntu-latest
5752
steps:
58-
- uses: actions/checkout@v4
59-
- uses: actions/setup-java@v4
53+
- uses: actions/checkout@v4.2.2
54+
- uses: actions/setup-java@v4.7.0
6055
with:
6156
distribution: adopt
6257
java-version: 17
6358
cache: gradle
64-
- uses: jfrog/setup-jfrog-cli@v4
59+
- uses: jfrog/setup-jfrog-cli@v4.5.6
6560
with:
66-
version: 2.52.10
61+
version: 2.73.2
6762
env:
6863
JF_ENV_SPRING: ${{ secrets.JF_ARTIFACTORY_SPRING }}
6964

@@ -72,6 +67,8 @@ jobs:
7267
# modify default build name and number as we don't like how those
7368
# gets used from action defaults.
7469
- name: Configure JFrog Cli
70+
env:
71+
JFROG_CLI_SERVER_ID: "repo.spring.io"
7572
run: |
7673
jf gradlec \
7774
--use-wrapper \

.github/workflows/mongodb.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
tar -zc --ignore-failed-read --file build/buildlogs.tar.gz */build/reports */*/build/reports
4545
- name: Upload Build Logs
4646
if: ${{ failure() }}
47-
uses: actions/upload-artifact@v4
47+
uses: actions/upload-artifact@v4.4.3
4848
with:
4949
name: buildlogs
5050
path: build/buildlogs.tar.gz

.github/workflows/pr.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
*/*/build/reports
3737
- name: Upload Build Logs
3838
if: ${{ failure() }}
39-
uses: actions/upload-artifact@v2
39+
uses: actions/upload-artifact@v4.4.3
4040
with:
4141
name: buildlogs
4242
path: build/buildlogs.tar.gz

.github/workflows/redis.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
tar -zc --ignore-failed-read --file build/buildlogs.tar.gz */build/reports */*/build/reports
4545
- name: Upload Build Logs
4646
if: ${{ failure() }}
47-
uses: actions/upload-artifact@v4
47+
uses: actions/upload-artifact@v4.4.3
4848
with:
4949
name: buildlogs
5050
path: build/buildlogs.tar.gz

.github/workflows/smoke.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
tar -zc --ignore-failed-read --file build/buildlogs.tar.gz */build/reports */*/build/reports
3939
- name: Upload Build Logs
4040
if: ${{ failure() }}
41-
uses: actions/upload-artifact@v4
41+
uses: actions/upload-artifact@v4.4.3
4242
with:
4343
name: buildlogs
4444
path: build/buildlogs.tar.gz

CONTRIBUTING.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ Is there already an issue that addresses your concern? Do a bit of searching in
3434
# Discuss non-trivial contribution ideas with committers
3535
If you are considering anything more than correcting a typo or fixing a minor bug , please discuss it on the GitHub issues. We are happy to provide guidance but please spend an hour or two researching the subject on your own including searching the forums for prior discussions.
3636

37-
# Sign the Contributor License Agreement
38-
If you have not previously done so, please fill out and submit the [Pivotal CLA form](https://cla.pivotal.io).
39-
When you've completed the web form, that's it and your ready for pull request.
37+
# Sign-off commits according to the Developer Certificate of Origin
4038

41-
When issuing a new pull reques, our bot also verifies that you have signed a CLA. Bot will ask you to sign it if it doesn't exist.
39+
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).
40+
41+
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).
4242

4343
# Create your branch from master
4444
Create your topic branch to be submitted as a pull request from master. The Spring team will consider your pull request for backporting on a case-by-case basis; you don't need to worry about submitting anything for backporting.

buildSrc/build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ java {
1010
repositories {
1111
gradlePluginPortal()
1212
mavenCentral()
13-
maven { url 'https://repo.spring.io/plugins-release/' }
13+
maven { url "https://repo.spring.io/milestone" }
1414
maven { url "https://repo.spring.io/snapshot" }
15+
maven { url 'https://repo.spring.io/plugins-release/' }
1516
}
1617

1718
ext {

gradle.properties

+8-9
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
1-
#Mon Jun 19 10:33:34 UTC 2023
21
version=4.0.1-SNAPSHOT
3-
springBootVersion=3.1.10
2+
springBootVersion=3.5.0-SNAPSHOT
3+
springShellVersion=3.4.1-SNAPSHOT
4+
45
jakartaPersistenceVersion=3.1.0
5-
kryoVersion=4.0.2
6-
springCloudClusterVersion=1.0.2.RELEASE
7-
springShellVersion=1.1.0.RELEASE
8-
eclipseEmfXmiVersion=2.11.1-v20150805-0538
6+
kryoVersion=4.0.3
7+
eclipseEmfXmiVersion=2.11.1
98
eclipseUml2CommonVersion=2.0.0-v20140602-0749
10-
eclipseEmfCommonVersion=2.11.0-v20150805-0538
9+
eclipseEmfCommonVersion=2.11.0
1110
eclipseUml2TypesVersion=2.0.0-v20140602-0749
12-
eclipseEmfEcoreVersion=2.11.1-v20150805-0538
11+
eclipseEmfEcoreVersion=2.11.2
1312
eclipseUml2UmlVersion=5.0.0-v20140602-0749
1413
xcuratorVersion=2.11.1
1514
curatorVersion=5.5.0
1615
springAsciidoctorBackends=0.0.5
1716
awaitilityVersion=3.1.6
18-
reactorBlockHoundVersion=1.0.4.RELEASE
17+
reactorBlockHoundVersion=1.0.10.RELEASE
1918
findbugsVersion=3.0.2
2019
gradleEnterpriseVersion=3.16.2
2120
springGeConventionsVersion=0.0.15
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
44
networkTimeout=10000
55
zipStoreBase=GRADLE_USER_HOME
66
zipStorePath=wrapper/dists

spring-statemachine-build-tests/src/test/java/org/springframework/statemachine/buildtests/EndSmokeTests.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
1717

1818
import static org.assertj.core.api.Assertions.assertThat;
1919

20+
import org.junit.jupiter.api.Disabled;
2021
import org.junit.jupiter.api.Test;
2122
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
2223
import org.springframework.context.annotation.Bean;
@@ -33,6 +34,7 @@
3334

3435
public class EndSmokeTests extends AbstractBuildTests {
3536

37+
@Disabled("This test fails intermittently") // FIXME check and fix intermittent failure
3638
@Test
3739
@SuppressWarnings("unchecked")
3840
public void testEndState() throws Exception {

spring-statemachine-core/src/test/java/org/springframework/statemachine/action/StateDoActivityActionTests.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2024 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -22,6 +22,7 @@
2222

2323
import java.util.concurrent.TimeUnit;
2424

25+
import org.junit.jupiter.api.Disabled;
2526
import org.junit.jupiter.api.Test;
2627
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
2728
import org.springframework.context.annotation.Bean;
@@ -291,6 +292,7 @@ public void testStateDoActionCancelledWithConfigSetting() throws Exception {
291292
assertThat(testActionS2.interruptedLatch.await(2, TimeUnit.SECONDS)).isTrue();
292293
}
293294

295+
@Disabled("This test fails intermittently") // FIXME check and fix intermittent failure
294296
@Test
295297
public void testStateDoActionNotCancelledWithConfigTimeout() throws Exception {
296298
context.register(Config6.class);

spring-statemachine-platform/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ dependencies {
1212
api "log4j:log4j:$log4jVersion"
1313
api "jakarta.persistence:jakarta.persistence-api:$jakartaPersistenceVersion"
1414
api "com.esotericsoftware:kryo-shaded:$kryoVersion"
15-
api "org.springframework.shell:spring-shell:$springShellVersion"
15+
api "org.springframework.shell:spring-shell-core:$springShellVersion"
1616
api "org.eclipse.uml2:uml:$eclipseUml2UmlVersion"
1717
api "org.eclipse.uml2:types:$eclipseUml2TypesVersion"
1818
api "org.eclipse.uml2:common:$eclipseUml2CommonVersion"

spring-statemachine-platform/spring-statemachine-platform.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies {
1313
constraints {
1414
api "com.google.code.findbugs:jsr305:$findbugsVersion"
1515
api "com.esotericsoftware:kryo-shaded:$kryoVersion"
16-
api "org.springframework.shell:spring-shell:$springShellVersion"
16+
api "org.springframework.shell:spring-shell-core:$springShellVersion"
1717
api "jakarta.persistence:jakarta.persistence-api:$jakartaPersistenceVersion"
1818
api "org.eclipse.uml2:uml:$eclipseUml2UmlVersion"
1919
api "org.eclipse.uml2:types:$eclipseUml2TypesVersion"

spring-statemachine-samples/cdplayer/spring-statemachine-samples-cdplayer.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies {
88
management platform(project(":spring-statemachine-platform"))
99
implementation project(':spring-statemachine-samples-common')
1010
implementation project(':spring-statemachine-core')
11-
implementation 'org.springframework.shell:spring-shell'
11+
implementation 'org.springframework.shell:spring-shell-core'
1212
testImplementation(testFixtures(project(':spring-statemachine-core')))
1313
testImplementation 'io.projectreactor:reactor-test'
1414
testImplementation 'org.assertj:assertj-core'

spring-statemachine-samples/cdplayer/src/main/java/demo/cdplayer/Application.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2015-2019 the original author or authors.
2+
* Copyright 2015-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,10 +21,10 @@
2121
import java.lang.annotation.Target;
2222
import java.util.Map;
2323

24+
import org.springframework.boot.SpringApplication;
2425
import org.springframework.context.annotation.Bean;
2526
import org.springframework.context.annotation.Configuration;
2627
import org.springframework.messaging.support.MessageBuilder;
27-
import org.springframework.shell.Bootstrap;
2828
import org.springframework.statemachine.ExtendedState;
2929
import org.springframework.statemachine.StateContext;
3030
import org.springframework.statemachine.action.Action;
@@ -308,8 +308,8 @@ public void execute(StateContext<States, Events> context) {
308308
}
309309
//end::snippetL[]
310310

311-
public static void main(String[] args) throws Exception {
312-
Bootstrap.main(args);
311+
public static void main(String[] args) {
312+
SpringApplication.run(Application.class, args);
313313
}
314314

315315
}

spring-statemachine-samples/cdplayer/src/main/java/demo/cdplayer/CdPlayerCommands.java

+15-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2015 the original author or authors.
2+
* Copyright 2015-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -19,26 +19,24 @@
1919
import java.util.Date;
2020

2121
import org.springframework.beans.factory.annotation.Autowired;
22-
import org.springframework.shell.core.CommandMarker;
23-
import org.springframework.shell.core.annotation.CliCommand;
24-
import org.springframework.shell.core.annotation.CliOption;
25-
import org.springframework.stereotype.Component;
22+
import org.springframework.shell.command.annotation.Command;
23+
import org.springframework.shell.command.annotation.Option;
2624

27-
@Component
28-
public class CdPlayerCommands implements CommandMarker {
25+
@Command
26+
public class CdPlayerCommands {
2927

3028
@Autowired
3129
private CdPlayer cdPlayer;
3230

3331
@Autowired
3432
private Library library;
3533

36-
@CliCommand(value = "cd lcd", help = "Prints CD player lcd info")
34+
@Command(command = "cd lcd", description = "Prints CD player lcd info")
3735
public String lcd() {
3836
return cdPlayer.getLdcStatus();
3937
}
4038

41-
@CliCommand(value = "cd library", help = "List user CD library")
39+
@Command(command = "cd library", description = "List user CD library")
4240
public String library() {
4341
SimpleDateFormat format = new SimpleDateFormat("mm:ss");
4442
StringBuilder buf = new StringBuilder();
@@ -53,8 +51,8 @@ public String library() {
5351
return buf.toString();
5452
}
5553

56-
@CliCommand(value = "cd load", help = "Load CD into player")
57-
public String load(@CliOption(key = {"", "index"}) int index) {
54+
@Command(command = "cd load", description = "Load CD into player")
55+
public String load(@Option(longNames = {"", "index"}) int index) {
5856
StringBuilder buf = new StringBuilder();
5957
try {
6058
Cd cd = library.getCollection().get(index);
@@ -66,32 +64,32 @@ public String load(@CliOption(key = {"", "index"}) int index) {
6664
return buf.toString();
6765
}
6866

69-
@CliCommand(value = "cd play", help = "Press player play button")
67+
@Command(command = "cd play", description = "Press player play button")
7068
public void play() {
7169
cdPlayer.play();
7270
}
7371

74-
@CliCommand(value = "cd stop", help = "Press player stop button")
72+
@Command(command = "cd stop", description = "Press player stop button")
7573
public void stop() {
7674
cdPlayer.stop();
7775
}
7876

79-
@CliCommand(value = "cd pause", help = "Press player pause button")
77+
@Command(command = "cd pause", description = "Press player pause button")
8078
public void pause() {
8179
cdPlayer.pause();
8280
}
8381

84-
@CliCommand(value = "cd eject", help = "Press player eject button")
82+
@Command(command = "cd eject", description = "Press player eject button")
8583
public void eject() {
8684
cdPlayer.eject();
8785
}
8886

89-
@CliCommand(value = "cd forward", help = "Press player forward button")
87+
@Command(command = "cd forward", description = "Press player forward button")
9088
public void forward() {
9189
cdPlayer.forward();
9290
}
9391

94-
@CliCommand(value = "cd back", help = "Press player back button")
92+
@Command(command = "cd back", description = "Press player back button")
9593
public void back() {
9694
cdPlayer.back();
9795
}

0 commit comments

Comments
 (0)