⭐ New Features
Outbox
- Support for event outbox via Namastack #1517
- Support for externalizing events via JobRunr #1637
- Support for application module testing in combination with Boot's slice test support #1573
- Avoid executing Flyway migrations for modules without any migrations #1684
EPR
- Allow opting out of event publication registry handling for an
@TransactionalEventListener#1630 - Enable JDBC event publication schema creation by default #1563
- Make sure that JDBC EPR schema initialization runs after Boot's file-based one #1568
Testing
- Open up
PublishedEventsandScenarioto see events from all threads by default #1564
Observability
- Streamline observability infrastructure #1567
- Split up observability support into API and core artifact #1559
Moments
- Allow Moments' events to be (de)serialized by Jackson #1569
💡 Improvements
Core
- Prefer
@SpringBootApplicationon explicitly declared classes in@ModuleSlicing#1644 - Allow
FormattableTypeto also abbreviate non-module types #1566
Outbox
- Require RabbitMQ publisher confirmation for outbox-based externalization #1727
- Block for externalization in outbox mode #1687
- Improve transaction handling in JobRunr integration #1655
EPR
- Switch to SHA-256 for event hashing in
Neo4jEventPublicationRepository#1718 - Simplify default status assignment in JpaEventPublication #1703
- Unify event externalization infrastructure #1642
- Add details about the refined event publication lifecycle to the reference documentation #1593
- Avoid recreation of
TransactionalEventListeners inPersistentApplicationEventMulticaster#1632 - Hibernate schema validation fails with JPA event publication registry #1543
JUnit Extension
- Allow skipping all tests if no changes are detected #1438
APT
- SpringModulithProcessor fails on Windows with KAPT - StringIndexOutOfBoundsException due to hardcoded forward slashes #1544
Moments
- Make
MomentsJacksonModulea package protected type to allow AOT configuration creation #1596 - Allow resetting the shift in
TimeMachine#1490
Misc
- Fix typo in Javadoc of ApplicationModules #1686
- Fixing links to reference documentation in README #1532
- Remove deprecations #1525
- Fix a typo in the runtime docs #1512
🪲 Bugs
- Avoid
ConcurrentModificationExceptioninModuleEntryInterceptor#1719 - Primitive types break
FormattableType#1713 - Application-module-aware Flyway migrations not activated when Boot's slice test annotations are used #1706
- Fix JPA event publication delete batching to bind each batch #1701
JpaEventPublicationAdapterreturns incorrect status #1683- Caching of
TransactionalEventListenersbreaks evaluation of conditions on@TransactionalEventListenermethods #1654 JdbcEventPublicationRepositorydeletes currently processing publication #1652- Improve batch handling in
DefaultEventpublicationRegistry.processFailedPublications(…)#1650 - Incorrect parameters in documentation for staleness of event publications of resubmitted event publications #1647
- Package-based named interfaces not properly merged #1598
- Fix incorrect
EventPublication.Statusreference in….staleness.publishedmetadata #1582 - Contributions made
ApplicationModuleSourceFactorynot fully considered inApplicationModules#1554 - Architecturally-evident type discovery tries to look up repository metadata for implementation classes #1541
JpaEventPublicationRepository.markCompleted(event, identifier, completionDate)doesn't update status toCOMPLETED#1521- CGLib proxy created for
JdbcEventPublicationRepositoryV2causing issues in native image #1518 - incompleteEventPublications.resubmitIncompletePublicationsOlderThan throws NPE when last_resubmission_date is null #1516
@ApplicationModuleTestdoes not bootstrap beans from test configuration #1489
🔨 Dependency Upgrades
- Upgrade to Spring Boot 4.1 #1740
- Upgrade to Spring Framework 7.0.8 #1736
- Upgrade to jMolecules 2025.0.2 #1534
- Upgrade to ArchUnit 1.4.2 #1657
- Upgrade to Namastack Outbox 1.7 #1737
- Upgrade to JobRunr 8.6.1 #1722
- Upgrade to MongoDB 5.8 #1738
- Upgrade to Micrometer Tracing 1.7 #1735
- Upgrade to jGit 7.7 #1739
- Upgrade to JSON Unit AssertJ 5.1.2 #1723
- Upgrade to Lombok 1.18.46 #1660
- Upgrade to Testcontainers 2.0.5 #1659
❤️ Contributors
Thank you to all the contributors who worked on this release:
@NeatGuyCoding, @patbaumgartner, @pramoth, @rolandbeisel, and @SAY-5