Spring Modulith 2.2 RC1, 2.1.2, 2.0.9, and 1.4.14 released
On behalf of the community, I am excited to announce the availability of Spring Modulith 2.2 RC1, 2.1.2, 2.0.9, and 1.4.14. The bug fix releases primarily ship the usual dependency upgrades, plus a number of fixes to the event publication registry that have been ported back where applicable. The release candidate rounds off the 2.2 feature set on the road to GA.
A few of the user-visible improvements since 2.2 M1 include:
- Event completion now happens within the listener's transaction by default -- Marking an event publication as completed now participates in the transaction of the event listener, so the completion and the listener's business changes succeed or fail together. GH-1961
- Failed and abandoned publications can be told apart -- Event publications can now enter an abandoned state, which makes it possible to distinguish publications that will not be retried from the ones that merely failed. GH-1764
- More control over module dependencies -- Allowed dependencies can now be declared on everything a module exposes, including its base package, via
module :: ** (GH-1924). NamedInterface instances can be registered programmatically for types, not just packages (GH-1839). Shared modules no longer list themselves as allowed targets (GH-1927).
- Testing improvements --
EventResult gets notToArrive() to assert that an event does not arrive (GH-1357).@ApplicationModuleTest is now resolved correctly on @Nested test classes with Spring Boot 4.2 (GH-1890).
- Event publication registry fixes -- Completed publications can no longer be claimed for resubmission and be marked as failed again (GH-1925). The minimum age for resubmission is honored by the JDBC and JPA repositories (GH-1908). Zero per-state timeouts are no longer treated as immediately stale (GH-1917). Events excluded via the registry trigger annotation no longer cause serialization failures (GH-1903).
- MongoDB and Namastack Outbox -- The MongoDB repository supports status lookup and marking publications as failed via the staleness monitor (GH-1855) and no longer uses
$merge when archiving (GH-1412). The Namastack integration stores the original domain event and evaluates broker routing against it (GH-1895, GH-1896).
Moments -- We now support hour and second granularity. GH-1688
- Platform and dependency upgrades – Including builds against Spring Boot 4.2 and Micrometer Tracing 1.8, ArchUnit 1.5.1, JobRunr 9.0.1, and Namastack Outbox 1.10.1.
Find more details about the releases in the full changelog for 2.2 RC1, 2.1.2, 2.0.9, and 1.4.14. Please note that 1.4.14 is the last release of the 1.x line. Users still on 1.x are encouraged to upgrade to 2.x.