Skip to content

Commit e5a7271

Browse files
authored
Support Java 21 (#995)
1 parent dcd5cc9 commit e5a7271

File tree

70 files changed

+423
-240
lines changed

Some content is hidden

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

70 files changed

+423
-240
lines changed

.github/workflows/ci.yml

Lines changed: 64 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -14,39 +14,26 @@ jobs:
1414
timeout-minutes: 15
1515

1616
steps:
17-
- name: Set up JDK 8
17+
- name: Set up JDKs
1818
uses: actions/setup-java@v3
1919
with:
20-
distribution: 'temurin'
21-
java-version: 8
22-
23-
- name: Prepare JDK8 env var
24-
shell: bash
25-
run: echo "JDK8=$JAVA_HOME" >> $GITHUB_ENV
26-
27-
- name: Set up JDK 20
28-
uses: actions/setup-java@v3
29-
with:
30-
distribution: 'temurin'
31-
java-version: 20
32-
33-
- name: Prepare JDK20 env var
34-
shell: bash
35-
run: echo "JDK20=$JAVA_HOME" >> $GITHUB_ENV
36-
37-
- name: Set up JDK 17
38-
uses: actions/setup-java@v3
39-
with:
40-
distribution: 'temurin'
41-
java-version: 17
20+
distribution: ${{ vars.JDK_DISTRIBUTION }}
21+
java-version: |
22+
${{ vars.OLDEST_JDK_VERSION }}
23+
${{ vars.LATEST_JDK_VERSION }}
24+
${{ vars.LATEST_LTS_JDK_VERSION }}
4225
4326
- name: Checkout
4427
uses: actions/checkout@v4
4528

46-
- name: Assemble and Check
29+
- name: Set up Gradle
4730
uses: gradle/[email protected]
48-
with:
49-
arguments: javaToolchains assemble check
31+
32+
- name: Assemble and Check
33+
run: >
34+
./gradlew
35+
-Porg.gradle.java.installations.fromEnv=JAVA_HOME_${{ vars.OLDEST_JDK_VERSION }}_X64,JAVA_HOME_${{ vars.LATEST_JDK_VERSION }}_X64
36+
javaToolchains assemble check
5037
5138
- name: Upload reports
5239
if: failure()
@@ -64,66 +51,51 @@ jobs:
6451
timeout-minutes: 15
6552

6653
steps:
67-
- name: Set up JDK 8
68-
uses: actions/setup-java@v3
69-
with:
70-
distribution: 'temurin'
71-
java-version: 8
72-
73-
- name: Prepare JDK8 env var
74-
shell: bash
75-
run: echo "JDK8=$JAVA_HOME" >> $GITHUB_ENV
76-
77-
- name: Set up JDK 20
78-
uses: actions/setup-java@v3
79-
with:
80-
distribution: 'temurin'
81-
java-version: 20
82-
83-
- name: Prepare JDK20 env var
84-
shell: bash
85-
run: echo "JDK20=$JAVA_HOME" >> $GITHUB_ENV
86-
87-
- name: Set up JDK 17
54+
- name: Set up JDKs
8855
uses: actions/setup-java@v3
8956
with:
90-
distribution: 'temurin'
91-
java-version: 17
57+
distribution: ${{ vars.JDK_DISTRIBUTION }}
58+
java-version: |
59+
${{ vars.OLDEST_JDK_VERSION }}
60+
${{ vars.LATEST_JDK_VERSION }}
61+
${{ vars.LATEST_LTS_JDK_VERSION }}
9262
9363
- name: Checkout
9464
uses: actions/checkout@v4
9565

96-
- name: Test with Java 8
97-
uses: gradle/[email protected]
98-
with:
99-
arguments: |
100-
-Pdriver=${{ matrix.driver }}
101-
-PtestJavaLangVersion=8
102-
javaToolchains
103-
integration-test-java:test
104-
integration-test-kotlin:test
105-
106-
- name: Test with Java 17 using JPMS
107-
uses: gradle/[email protected]
108-
with:
109-
arguments: |
110-
-Pdriver=${{ matrix.driver }}
111-
-PtestJavaLangVersion=17
112-
-PtestUseModule=true
113-
javaToolchains
114-
integration-test-java:test
115-
integration-test-java-additional:test
116-
117-
- name: Test with Java 20 using JPMS
66+
- name: Set up Gradle
11867
uses: gradle/[email protected]
119-
with:
120-
arguments: |
121-
-Pdriver=${{ matrix.driver }}
122-
-PtestJavaLangVersion=20
123-
-PtestUseModule=true
124-
javaToolchains
125-
integration-test-java:test
126-
integration-test-java-additional:test
68+
69+
- name: Test with the oldest JDK
70+
run: >
71+
./gradlew
72+
-Pdriver=${{ matrix.driver }}
73+
-PtestJavaLangVersion=${{ vars.OLDEST_JDK_VERSION }}
74+
-Porg.gradle.java.installations.fromEnv=JAVA_HOME_${{ vars.OLDEST_JDK_VERSION }}_X64,JAVA_HOME_${{ vars.LATEST_JDK_VERSION }}_X64
75+
javaToolchains
76+
integration-test-java:test
77+
integration-test-kotlin:test
78+
79+
- name: Test with the latest JDK using JPMS
80+
run: >
81+
./gradlew
82+
-Pdriver=${{ matrix.driver }}
83+
-PtestJavaLangVersion=${{ vars.LATEST_JDK_VERSION }}
84+
-Porg.gradle.java.installations.fromEnv=JAVA_HOME_${{ vars.OLDEST_JDK_VERSION }}_X64,JAVA_HOME_${{ vars.LATEST_JDK_VERSION }}_X64
85+
-PtestUseModule=true
86+
javaToolchains
87+
integration-test-java:test
88+
integration-test-java-additional:test
89+
90+
- name: Test with the latest LTS JDK using JPMS
91+
run: >
92+
./gradlew
93+
-Pdriver=${{ matrix.driver }}
94+
-PtestJavaLangVersion=${{ vars.LATEST_LTS_JDK_VERSION }}
95+
-PtestUseModule=true
96+
javaToolchains
97+
integration-test-java:test
98+
integration-test-java-additional:test
12799
128100
- name: Upload reports
129101
if: failure()
@@ -140,44 +112,31 @@ jobs:
140112
timeout-minutes: 30
141113

142114
steps:
143-
- name: Set up JDK 8
115+
- name: Set up JDKs
144116
uses: actions/setup-java@v3
145117
with:
146-
distribution: 'temurin'
147-
java-version: 8
148-
149-
- name: Prepare JDK8 env var
150-
shell: bash
151-
run: echo "JDK8=$JAVA_HOME" >> $GITHUB_ENV
152-
153-
- name: Set up JDK 20
154-
uses: actions/setup-java@v3
155-
with:
156-
distribution: 'temurin'
157-
java-version: 20
158-
159-
- name: Prepare JDK20 env var
160-
shell: bash
161-
run: echo "JDK20=$JAVA_HOME" >> $GITHUB_ENV
162-
163-
- name: Set up JDK 17
164-
uses: actions/setup-java@v3
165-
with:
166-
distribution: 'temurin'
167-
java-version: 17
118+
distribution: ${{ vars.JDK_DISTRIBUTION }}
119+
java-version: |
120+
${{ vars.OLDEST_JDK_VERSION }}
121+
${{ vars.LATEST_JDK_VERSION }}
122+
${{ vars.LATEST_LTS_JDK_VERSION }}
168123
169124
- name: Checkout
170125
uses: actions/checkout@v4
171126

172-
- name: Publish packages
127+
- name: Set up Gradle
173128
uses: gradle/[email protected]
129+
130+
- name: Publish packages
174131
env:
175132
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.SIGNING_KEY }}
176133
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.SIGNING_PASSWORD }}
177134
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.OSSRH_USERNAME }}
178135
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.OSSRH_PASSWORD }}
179-
with:
180-
arguments: javaToolchains publishToSonatype closeAndReleaseSonatypeStagingRepository
136+
run: >
137+
./gradlew
138+
-Porg.gradle.java.installations.fromEnv=JAVA_HOME_${{ vars.OLDEST_JDK_VERSION }}_X64,JAVA_HOME_${{ vars.LATEST_JDK_VERSION }}_X64
139+
javaToolchains publishToSonatype closeAndReleaseSonatypeStagingRepository
181140
182141
- name: Upload reports
183142
if: failure()

.github/workflows/codeql-analysis.yml

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,23 @@ jobs:
1919
with:
2020
languages: java
2121

22-
- name: Set up JDK 8
22+
- name: Set up JDKs
2323
uses: actions/setup-java@v3
2424
with:
25-
distribution: 'temurin'
26-
java-version: 8
25+
distribution: ${{ vars.JDK_DISTRIBUTION }}
26+
java-version: |
27+
${{ vars.OLDEST_JDK_VERSION }}
28+
${{ vars.LATEST_JDK_VERSION }}
29+
${{ vars.LATEST_LTS_JDK_VERSION }}
2730
28-
- name: Prepare JDK8 env var
29-
shell: bash
30-
run: echo "JDK8=$JAVA_HOME" >> $GITHUB_ENV
31-
32-
- name: Set up JDK 17
33-
uses: actions/setup-java@v3
34-
with:
35-
distribution: 'temurin'
36-
java-version: 17
31+
- name: Set up Gradle
32+
uses: gradle/[email protected]
3733

3834
- name: Build
39-
uses: gradle/[email protected]
40-
with:
41-
arguments: assemble check
35+
run: >
36+
./gradlew
37+
-Porg.gradle.java.installations.fromEnv=JAVA_HOME_${{ vars.OLDEST_JDK_VERSION }}_X64,JAVA_HOME_${{ vars.LATEST_JDK_VERSION }}_X64
38+
assemble check
4239
4340
- name: Perform CodeQL Analysis
4441
uses: github/codeql-action/analyze@v2

.github/workflows/release.yml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ jobs:
3636
if: github.event.inputs.version == null
3737
run: echo "RELEASE_VERSION=${{ steps.candidate-version.outputs.result }}" >> $GITHUB_ENV
3838

39-
- name: Set up JDK 17
39+
- name: Set up the latest LTS JDK
4040
uses: actions/setup-java@v3
4141
with:
42-
distribution: 'temurin'
43-
java-version: 17
42+
distribution: ${{ vars.JDK_DISTRIBUTION }}
43+
java-version: ${{ vars.LATEST_LTS_JDK_VERSION }}
4444

4545
- name: Checkout
4646
uses: actions/checkout@v4
@@ -52,10 +52,14 @@ jobs:
5252
git config --global user.name "github-actions[bot]"
5353
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
5454
55-
- name: Release ${{ env.RELEASE_VERSION }}
55+
- name: Set up Gradle
5656
uses: gradle/[email protected]
57-
with:
58-
arguments: release -Prelease.releaseVersion=${{ env.RELEASE_VERSION }}
57+
58+
- name: Release ${{ env.RELEASE_VERSION }}
59+
run: >
60+
./gradlew
61+
-Prelease.releaseVersion=${{ env.RELEASE_VERSION }}
62+
release
5963
6064
- name: Upload reports
6165
if: failure()

.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.1-zulu
3+
java=21-zulu

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ Major versions
205205
| Java 18 | | v |
206206
| Java 19 | | v |
207207
| Java 20 | | v |
208+
| Java 21 | | v |
208209

209210
Backers & Sponsors
210211
------------------

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ subprojects {
117117

118118
spotless {
119119
java {
120-
googleJavaFormat("1.12.0")
120+
googleJavaFormat("1.17.0")
121121
}
122122
kotlin {
123123
ktlint("0.48.2")

doma-core/src/main/java/org/seasar/doma/AccessLevel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ public enum AccessLevel {
1818
this.modifier = modifier;
1919
}
2020

21-
/** @return the modifier's name */
21+
/**
22+
* @return the modifier's name
23+
*/
2224
public String getModifier() {
2325
return modifier;
2426
}

doma-core/src/main/java/org/seasar/doma/AnnotateWith.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@
5555
@Retention(RetentionPolicy.RUNTIME)
5656
public @interface AnnotateWith {
5757

58-
/** @return the {@link Annotation} array. */
58+
/**
59+
* @return the {@link Annotation} array.
60+
*/
5961
Annotation[] annotations();
6062
}

doma-core/src/main/java/org/seasar/doma/Annotation.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,14 @@
1010
@Retention(RetentionPolicy.RUNTIME)
1111
public @interface Annotation {
1212

13-
/** @return the location where the annotation is specified. */
13+
/**
14+
* @return the location where the annotation is specified.
15+
*/
1416
AnnotationTarget target();
1517

16-
/** @return the annotation class that this annotation represents. */
18+
/**
19+
* @return the annotation class that this annotation represents.
20+
*/
1721
Class<? extends java.lang.annotation.Annotation> type();
1822

1923
/**

doma-core/src/main/java/org/seasar/doma/BatchDelete.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@
4747
@DaoMethod
4848
public @interface BatchDelete {
4949

50-
/** @return whether the annotated method is mapped to an SQL file. */
50+
/**
51+
* @return whether the annotated method is mapped to an SQL file.
52+
*/
5153
boolean sqlFile() default false;
5254

5355
/**
@@ -91,6 +93,8 @@
9193
*/
9294
boolean suppressOptimisticLockException() default false;
9395

94-
/** @return the output format of SQL logs. */
96+
/**
97+
* @return the output format of SQL logs.
98+
*/
9599
SqlLogType sqlLog() default SqlLogType.FORMATTED;
96100
}

0 commit comments

Comments
 (0)