|
70 | 70 | default: docker-amd64-image |
71 | 71 | arg-line: |
72 | 72 | type: string |
73 | | - default: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow" |
| 73 | + default: "--add-opens=java.base/java.nio=ALL-UNNAMED" |
74 | 74 | executor: |
75 | 75 | name: << parameters.exe >> |
76 | 76 | maven-image: << parameters.maven-image >> |
|
91 | 91 | - run: |
92 | 92 | name: "Running tests" |
93 | 93 | command: | |
94 | | - mvn -B -U clean install -DargLine="@{argLine} << parameters.arg-line >>" |
| 94 | + # Append --sun-misc-unsafe-memory-access=allow only for JDK >= 23 |
| 95 | + JAVA_VERSION_RAW=$(java -version 2>&1 | awk -F\" '/version/ {print $2}') |
| 96 | + JAVA_MAJOR=$(echo "$JAVA_VERSION_RAW" | awk -F. '{print $1}') |
| 97 | + if [ "$JAVA_MAJOR" = "1" ]; then JAVA_MAJOR=$(echo "$JAVA_VERSION_RAW" | awk -F. '{print $2}'); fi |
| 98 | + # Normalize to numeric in case of early access (e.g., 25-ea) |
| 99 | + JAVA_MAJOR_NUM=$(echo "$JAVA_MAJOR" | sed 's/[^0-9].*$//') |
| 100 | + EXTRA_ARG_LINE="" |
| 101 | + if [ -n "$JAVA_MAJOR_NUM" ] && [ "$JAVA_MAJOR_NUM" -ge 23 ]; then |
| 102 | + EXTRA_ARG_LINE=" --sun-misc-unsafe-memory-access=allow" |
| 103 | + fi |
| 104 | + mvn -B -U clean install -DargLine="@{argLine} << parameters.arg-line >>${EXTRA_ARG_LINE}" |
95 | 105 | - save_cache: |
96 | 106 | name: Saving Maven Cache |
97 | 107 | key: *cache-key |
@@ -224,6 +234,14 @@ workflows: |
224 | 234 | parameters: |
225 | 235 | exe: [ docker-amd64-image, docker-arm64-image ] |
226 | 236 | maven-image: [ << pipeline.parameters.default-maven-image >>, "cimg/openjdk:17.0", "cimg/openjdk:21.0", "cimg/openjdk:25.0" ] |
| 237 | + arg-line: [ "--add-opens=java.base/java.nio=ALL-UNNAMED", "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow" ] |
| 238 | + exclude: |
| 239 | + - maven-image: << pipeline.parameters.default-maven-image >> |
| 240 | + arg-line: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow" |
| 241 | + - maven-image: "cimg/openjdk:17.0" |
| 242 | + arg-line: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow" |
| 243 | + - maven-image: "cimg/openjdk:21.0" |
| 244 | + arg-line: "--add-opens=java.base/java.nio=ALL-UNNAMED --sun-misc-unsafe-memory-access=allow" |
227 | 245 | - deploy-snapshot: |
228 | 246 | requires: |
229 | 247 | - check-dependencies |
|
0 commit comments