Skip to content

Commit f391a21

Browse files
committed
Update to Java 25
Updates the default Java language version to 25 with a target version of 17. Additionally: ------------------ - Updates the CI and CI-PR workflows to use Java 25 Liberica - Updates the check-samples.yml workflow to include Java 17, 21, and 25 Signed-off-by: onobc <[email protected]>
1 parent 67a149c commit f391a21

File tree

8 files changed

+67
-29
lines changed

8 files changed

+67
-29
lines changed

.github/workflows/check-samples.yml

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,12 @@ jobs:
4141
strategy:
4242
matrix:
4343
include:
44-
- javaVersion: 17
44+
- javaVersion: 25
45+
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
46+
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
47+
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
48+
samplesTarget: ':runAllSampleTests'
49+
- javaVersion: 24
4550
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
4651
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
4752
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
@@ -50,22 +55,30 @@ jobs:
5055
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
5156
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
5257
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
53-
samplesTarget: ':runAllSampleTests -x :spring-pulsar-sample-apps:sample-pulsar-functions:sample-signup-function:test'
58+
samplesTarget: ':runAllSampleTests'
5459
- javaVersion: 17
5560
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
5661
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
57-
pulsarVersion: "3.2.4"
62+
pulsarVersion: "${{ needs.prerequisites.outputs.pulsar_version }}"
63+
samplesTarget: ':runAllSampleTests'
64+
- javaVersion: 17
65+
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
66+
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
67+
pulsarVersion: "3.3.8"
5868
samplesTarget: ':runAllSampleTests'
5969
- javaVersion: 17
6070
springBootVersion: "${{ needs.prerequisites.outputs.boot_version }}"
6171
springPulsarVersion: "${{ needs.prerequisites.outputs.project_version }}"
62-
pulsarVersion: "4.1.0"
72+
pulsarVersion: "3.2.4"
6373
samplesTarget: ':runAllSampleTests'
6474
runs-on: ubuntu-latest
6575
if: needs.prerequisites.outputs.runjobs
6676
steps:
6777
- uses: actions/checkout@v5
6878
- uses: spring-io/spring-gradle-build-action@v2
79+
with:
80+
java-version: "${{ matrix.javaVersion }}"
81+
distribution: 'liberica'
6982
- name: Check samples project
7083
env:
7184
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos

.github/workflows/ci-pr.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ jobs:
3737
steps:
3838
- uses: actions/checkout@v5
3939
- uses: spring-io/spring-gradle-build-action@v2
40+
with:
41+
java-version: '25'
42+
distribution: 'liberica'
4043
- name: Check format (short circuit)
4144
run: |
4245
./gradlew checkFormat
@@ -70,6 +73,9 @@ jobs:
7073
steps:
7174
- uses: actions/checkout@v5
7275
- uses: spring-io/spring-gradle-build-action@v2
76+
with:
77+
java-version: '25'
78+
distribution: 'liberica'
7379
- name: Run integration tests
7480
run: |
7581
./gradlew integrationTest --rerun-tasks -DdownloadRabbitConnector=true --scan
@@ -90,6 +96,9 @@ jobs:
9096
steps:
9197
- uses: actions/checkout@v5
9298
- uses: spring-io/spring-gradle-build-action@v2
99+
with:
100+
java-version: '25'
101+
distribution: 'liberica'
93102
- name: Run all sample app tests
94103
env:
95104
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos

.github/workflows/ci.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,17 @@ jobs:
5757
else
5858
echo "result=true" >> $GITHUB_OUTPUT
5959
fi
60-
build_jdk_17:
61-
name: Build (JDK 17)
60+
build_jdk_25:
61+
name: Build (JDK 25)
6262
needs: [prerequisites]
6363
runs-on: ubuntu-latest
6464
if: needs.prerequisites.outputs.runjobs
6565
steps:
6666
- uses: actions/checkout@v5
6767
- uses: spring-io/spring-gradle-build-action@v2
68+
with:
69+
java-version: '25'
70+
distribution: 'liberica'
6871
- name: Build and run unit tests
6972
run: |
7073
./gradlew clean build -x integrationTest \
@@ -91,6 +94,9 @@ jobs:
9194
steps:
9295
- uses: actions/checkout@v5
9396
- uses: spring-io/spring-gradle-build-action@v2
97+
with:
98+
java-version: '25'
99+
distribution: 'liberica'
94100
- name: Run all sample app tests
95101
env:
96102
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos
@@ -107,19 +113,21 @@ jobs:
107113
-PspringBootVersion="$BOOT_VERSION" \
108114
-PsampleTests \
109115
:runAllSampleTests
110-
111116
scan:
112117
needs: [prerequisites]
113118
if: ${{ needs.prerequisites.outputs.runjobs && !contains(inputs.run-trivy-scan, 'false') }}
114119
uses: ./.github/workflows/trivy-scan.yml
115120
deploy_artifacts:
116121
name: Deploy Artifacts
117-
needs: [prerequisites, build_jdk_17, check_samples, scan]
122+
needs: [prerequisites, build_jdk_25, check_samples, scan]
118123
runs-on: ubuntu-latest
119124
if: ${{ needs.prerequisites.outputs.should_deploy_artifacts }}
120125
steps:
121126
- uses: actions/checkout@v5
122127
- uses: spring-io/spring-gradle-build-action@v2
128+
with:
129+
java-version: '25'
130+
distribution: 'liberica'
123131
- id: branch-name
124132
name: Extract Branch Name
125133
env:
@@ -196,11 +204,14 @@ jobs:
196204
197205
deploy_docs_antora:
198206
name: Deploy Antora Docs
199-
needs: [build_jdk_17, check_samples, scan]
207+
needs: [build_jdk_25, check_samples, scan]
200208
runs-on: ubuntu-latest
201209
steps:
202210
- uses: actions/checkout@v5
203211
- uses: spring-io/spring-gradle-build-action@v2
212+
with:
213+
java-version: '25'
214+
distribution: 'liberica'
204215
- name: Run Antora
205216
run: |
206217
./gradlew antora
@@ -239,6 +250,9 @@ jobs:
239250
with:
240251
token: ${{ secrets.GH_ACTIONS_REPO_TOKEN }}
241252
- uses: spring-io/spring-gradle-build-action@v2
253+
with:
254+
java-version: '25'
255+
distribution: 'liberica'
242256
- name: Wait for Milestone Artifacts
243257
if: ${{ contains(needs.prerequisites.outputs.project_version, '-RC') || contains(needs.prerequisites.outputs.project_version, '-M') }}
244258
env:

.sdkmanrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# Enable auto-env through the sdkman_auto_env config
22
# Add key=value pairs of SDKs to use below
3-
java=17.0.4-tem
3+
java=25-librca

buildSrc/src/main/java/org/springframework/pulsar/gradle/JavaConventionsPlugin.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import org.gradle.api.plugins.quality.Checkstyle;
3131
import org.gradle.api.plugins.quality.CheckstyleExtension;
3232
import org.gradle.api.plugins.quality.CheckstylePlugin;
33-
import org.gradle.api.tasks.bundling.Jar;
3433
import org.gradle.api.tasks.compile.JavaCompile;
3534
import org.gradle.api.tasks.javadoc.Javadoc;
3635
import org.gradle.api.tasks.testing.Test;
@@ -84,8 +83,6 @@
8483
*/
8584
public class JavaConventionsPlugin implements Plugin<Project> {
8685

87-
private static final String SOURCE_AND_TARGET_COMPATIBILITY = "17";
88-
8986
@Override
9087
public void apply(Project project) {
9188
project.getPlugins().withType(JavaBasePlugin.class, (java) -> {
@@ -117,7 +114,7 @@ private void configureSpringJavaFormat(Project project) {
117114
private void configureJavadocConventions(Project project) {
118115
project.getTasks().withType(Javadoc.class, (javadoc) -> {
119116
CoreJavadocOptions options = (CoreJavadocOptions) javadoc.getOptions();
120-
options.source("17");
117+
options.source("25");
121118
options.encoding("UTF-8");
122119
options.addStringOption("Xdoclint:none", "-quiet");
123120
});
@@ -148,17 +145,6 @@ private void configureTestConventions(Project project) {
148145
.add(JavaPlugin.TEST_RUNTIME_ONLY_CONFIGURATION_NAME, "org.junit.platform:junit-platform-launcher"));
149146
}
150147

151-
private String determineImplementationTitle(Project project, Set<String> sourceJarTaskNames,
152-
Set<String> javadocJarTaskNames, Jar jar) {
153-
if (sourceJarTaskNames.contains(jar.getName())) {
154-
return "Source for " + project.getName();
155-
}
156-
if (javadocJarTaskNames.contains(jar.getName())) {
157-
return "Javadoc for " + project.getName();
158-
}
159-
return project.getDescription();
160-
}
161-
162148
private void configureDependencyManagement(Project project) {
163149
ConfigurationContainer configurations = project.getConfigurations();
164150
Configuration dependencyManagement = configurations.create("dependencyManagement", (configuration) -> {

gradle/java-conventions.gradle

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ def toolchainVersion() {
22
if (project.hasProperty('testToolchain')) {
33
return project.property('testToolchain').toString().toInteger()
44
}
5-
return 17
5+
return 25
66
}
77

88
def linkHomepage() {
@@ -18,10 +18,20 @@ project.afterEvaluate {
1818
languageVersion = JavaLanguageVersion.of(toolchainVersion())
1919
}
2020
}
21-
tasks.withType(JavaCompile).configureEach {
21+
tasks.withType(JavaCompile.class)
22+
.matching(compileTask -> compileTask.getName().startsWith(JavaPlugin.COMPILE_JAVA_TASK_NAME)).configureEach {
2223
options.encoding = "UTF-8"
23-
options.compilerArgs.add("-parameters")
24-
options.compilerArgs.addAll(["-Werror", "-Xlint:unchecked", "-Xlint:rawtypes", "-Xlint:varargs"]);
24+
options.compilerArgs.addAll([
25+
"-parameters", "-Xlint:unchecked", "-Xlint:rawtypes", "-Xlint:varargs", "-Xlint:deprecation",
26+
"-Werror"])
27+
options.release.set(17)
28+
}
29+
tasks.withType(JavaCompile.class)
30+
.matching(compileTask -> compileTask.getName().startsWith(JavaPlugin.COMPILE_TEST_JAVA_TASK_NAME)
31+
|| compileTask.getName().equals("compileTestFixturesJava")).configureEach {
32+
options.encoding = "UTF-8"
33+
options.compilerArgs.addAll([
34+
"-parameters", "-Xlint:unchecked", "-Xlint:rawtypes", "-Xlint:varargs", "-Xlint:deprecation"])
2535
options.release.set(17)
2636
}
2737
jar {

gradle/libs.versions.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ caffeine = "3.2.2"
44
commons-compress = "1.26.2"
55
jackson = "2.20.0"
66
jspecify = "1.0.0"
7+
jsr305 = "3.0.2"
78
logback = "1.5.19"
89
micrometer = "1.16.0-M3"
910
micrometer-docs-gen = "1.0.4"
@@ -43,6 +44,7 @@ protobuf-plugin = "0.9.5"
4344
caffeine = { module = "com.github.ben-manes.caffeine:caffeine", version.ref = "caffeine" }
4445
jackson-bom = { module = "com.fasterxml.jackson:jackson-bom", version.ref = "jackson" }
4546
jspecify = { module = "org.jspecify:jspecify", version.ref = "jspecify" }
47+
jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
4648
logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
4749
micrometer-bom = { module = "io.micrometer:micrometer-bom", version.ref = "micrometer" }
4850
micrometer-docs-gen = { module = "io.micrometer:micrometer-docs-generator", version.ref = "micrometer-docs-gen" }

spring-pulsar-reactive/spring-pulsar-reactive.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,13 @@ dependencies {
2525
// unwanted transitive deps excluded
2626
exclude group: "org.apache.pulsar", module: "pulsar-client-reactive-adapter"
2727
}
28+
29+
compileOnly(libs.jsr305 ) // for Reactor
30+
2831
implementation 'com.fasterxml.jackson.core:jackson-core'
2932
implementation 'com.fasterxml.jackson.core:jackson-databind'
3033
implementation libs.jspecify
34+
3135
optional 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8'
3236
optional 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'
3337
optional 'com.fasterxml.jackson.datatype:jackson-datatype-joda'

0 commit comments

Comments
 (0)