|
39 | 39 | </developers> |
40 | 40 | <properties> |
41 | 41 | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
42 | | - <version.jacoco>0.8.5</version.jacoco> |
43 | | - <version.lombok>1.18.12</version.lombok> |
| 42 | + <!-- JaCoCo 0.8.14+ required for Java 25 (class file major version 69); 0.8.5 fails with IllegalClassFormatException when instrumenting JDK classes --> |
| 43 | + <version.jacoco>0.8.14</version.jacoco> |
| 44 | + <!-- Lombok 1.18.40+ adds official JDK 25 support; older versions do not run the annotation processor on Java 25 --> |
| 45 | + <version.lombok>1.18.40</version.lombok> |
44 | 46 | <version.saxon-he>9.9.1-7</version.saxon-he> |
45 | 47 | <version.slf4j>1.7.25</version.slf4j> |
| 48 | + <!-- Set to true to skip formatter:validate (e.g. -DskipFormatterValidation=true) when formatting is not yet applied or in CI --> |
| 49 | + <skipFormatterValidation>false</skipFormatterValidation> |
46 | 50 | </properties> |
47 | 51 | <repositories> |
48 | 52 | <repository> |
|
89 | 93 | <optional>true</optional> |
90 | 94 | </dependency> |
91 | 95 |
|
| 96 | + <!-- 3.18.0+ fixes CVE-2025-48924 (uncontrolled recursion in ClassUtils.getClass on long inputs); 3.10 had no remediation in older scanners --> |
92 | 97 | <dependency> |
93 | 98 | <groupId>org.apache.commons</groupId> |
94 | 99 | <artifactId>commons-lang3</artifactId> |
95 | | - <version>3.10</version> |
| 100 | + <version>3.18.0</version> |
96 | 101 | </dependency> |
97 | 102 | <dependency> |
98 | 103 | <groupId>org.glassfish.jaxb</groupId> |
|
112 | 117 | <version>4.13</version> |
113 | 118 | <scope>test</scope> |
114 | 119 | </dependency> |
| 120 | + <!-- 2.17.0+ fixes CVE-2024-47554 (XML DoS in XmlStreamReader) and directory traversal in FileNameUtils.normalize; 2.6 was vulnerable --> |
115 | 121 | <dependency> |
116 | 122 | <groupId>commons-io</groupId> |
117 | 123 | <artifactId>commons-io</artifactId> |
118 | | - <version>2.6</version> |
| 124 | + <version>2.17.0</version> |
119 | 125 | </dependency> |
120 | 126 | <dependency> |
121 | 127 | <groupId>io.rest-assured</groupId> |
|
199 | 205 | <source>1.8</source> |
200 | 206 | <target>1.8</target> |
201 | 207 | <encoding>UTF-8</encoding> |
| 208 | + <!-- Explicit processor path ensures Lombok runs on JDK 25; without it the compiler may not invoke the processor and getters/setters/log are missing --> |
| 209 | + <annotationProcessorPaths> |
| 210 | + <path> |
| 211 | + <groupId>org.projectlombok</groupId> |
| 212 | + <artifactId>lombok</artifactId> |
| 213 | + <version>${version.lombok}</version> |
| 214 | + </path> |
| 215 | + </annotationProcessorPaths> |
202 | 216 | </configuration> |
203 | 217 | </plugin> |
204 | 218 |
|
|
292 | 306 | </executions> |
293 | 307 | </plugin> |
294 | 308 |
|
295 | | - <!-- Generate model classes --> |
| 309 | + <!-- Generate model classes from XSD. Plugin default pulls JAXB 2.3.0 which uses sun.misc.Unsafe.defineClass, removed in Java 21+; overrides below fix generate goal on modern JDKs --> |
296 | 310 | <plugin> |
297 | 311 | <groupId>org.jvnet.jaxb2.maven2</groupId> |
298 | 312 | <artifactId>maven-jaxb2-plugin</artifactId> |
299 | 313 | <version>0.14.0</version> |
| 314 | + <dependencies> |
| 315 | + <!-- Override plugin classpath: JAXB 2.3.9 / 2.3.0.1 work on Java 17–25; without this, generate fails with NoSuchMethodException: sun.misc.Unsafe.defineClass --> |
| 316 | + <dependency> |
| 317 | + <groupId>org.glassfish.jaxb</groupId> |
| 318 | + <artifactId>jaxb-runtime</artifactId> |
| 319 | + <version>2.3.9</version> |
| 320 | + </dependency> |
| 321 | + <dependency> |
| 322 | + <groupId>org.glassfish.jaxb</groupId> |
| 323 | + <artifactId>jaxb-core</artifactId> |
| 324 | + <version>2.3.0.1</version> |
| 325 | + </dependency> |
| 326 | + </dependencies> |
300 | 327 | <executions> |
301 | 328 | <execution> |
302 | 329 | <goals> |
|
322 | 349 | </configuration> |
323 | 350 | </plugin> |
324 | 351 |
|
325 | | - <!-- Integrate code coverage --> |
| 352 | + <!-- Code coverage. Version must be 0.8.14+ on Java 25 (see version.jacoco property comment). --> |
326 | 353 | <plugin> |
327 | 354 | <groupId>org.jacoco</groupId> |
328 | 355 | <artifactId>jacoco-maven-plugin</artifactId> |
|
515 | 542 | <goals> |
516 | 543 | <goal>validate</goal> |
517 | 544 | </goals> |
| 545 | + <configuration> |
| 546 | + <!-- Skip when skipFormatterValidation=true (see property); avoids build failure if sources are not yet formatted --> |
| 547 | + <skip>${skipFormatterValidation}</skip> |
| 548 | + </configuration> |
518 | 549 | </execution> |
519 | 550 | </executions> |
520 | 551 | <configuration> |
|
0 commit comments