Files
spring-modulith/spring-modulith-examples
Lukas Dohmen 8cf3920af9 GH-31 - Support for optimized test execution.
Initital prototype to support optimized test execution based on the Spring Modulith application module model. The change introduces a new artifact spring-modulith-junit that extends JUnit's test execution lifecycle. It obtains the ApplicationModules model for the application and potentially skips test classes for execution in case the changes made to the application reside in modules the current test case's module does not depend on.

Co-authored-by: Lukas Dohmen <l.dohmen@yahoo.de>
Co-authored-by: David Bilge <david.bilge@gmail.com>
2024-09-16 15:36:21 +02:00
..

= Spring Modulith Examples

This folder contains a few sample projects that show the fundamental setup of Spring Modulith as well as a couple of advanced features.
They all use the same domain to showcase the provided integration support.
An _order_ application module that completes an `Order` instance as well as an _inventory_ that reacts to the completion of the `Order`.

To run the examples, execute the Maven build via `./mvnw`.

* `spring-modulith-example-full` -- shows the fundamental module setup, its verification (`ModularityTests.verifiesModularStructure()`) and the documentation derived from the arrangement (`ModularityTests.createModuleDocumentation()`).
It also shows the Event Publication Registry working and how it keeps track of the incomplete event publication caused by the `FailingAsyncTransactionalEventListener`.
Finally, it shows how to write integration tests using the `Scenario` APIs in `OrderIntegrationTests`.
* `spring-modulith-example-epr-jdbc` -- shows the Event Publication Registry working on top of Spring Data JDBC (in `ApplicationIntegrationTests`).
* `spring-modulith-example-epr-mongodb` -- shows the Event Publication Registry working on top of MongoDB (in `ApplicationIntegrationTests`).