The CAP model in ah-cap-commons is intended to be the common representation of CAP XML
across Alert Hub services. As the Micronaut 5 services moved onto JDK 25 and the Jackson 3
runtime, the library still carried Jackson 2 XML bindings and a Java 17 toolchain.
The change keeps the existing model shape intact and makes the smallest viable breaking change identified in this slice: the XML binding annotations now use the Jackson 3 XML package, the build runs on JDK 25, and the Gradle/Jacoco tooling was updated to support that runtime.
What Changed
- Upgraded the Gradle wrapper so the shared build can run under JDK 25.
- Moved CAP XML binding annotations from Jackson 2 XML packages to Jackson 3 XML packages.
- Aligned Jackson XML with the Micronaut 5 platform version used by
alert-hub-v2-node. - Updated JaCoCo for Java 25 bytecode support.
Verification
The library was clean-built under GraalVM JDK 25.0.2 with the existing CAP XML fixtures, including IPAWS, CAP-CP signed alerts, DWD samples, repeated CAP elements, unknown extension elements, and signature structures.
alert-hub-v2-node was then compiled against the locally published upgraded library using
a temporary dependency substitution. That confirmed one JDK25 consumer can resolve and
compile against the new artifact shape.
Follow-Up
The model remains Jackson-bound by design for this upgrade. A parser abstraction may still be useful later, but this change focuses on unblocking the Jackson 3 and JDK 25 platform alignment without changing the public CAP object model.