ah-cap-commons

ah-cap-commons moves to Jackson 3 and JDK 25

A compatibility note on moving the shared CAP XML model to Jackson 3 and JDK 25 while preserving the existing model shape.

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.