Commit Graph

32 Commits

Author SHA1 Message Date
Oliver Drotbohm
6f5de96dcc GH-117 - Polishing. 2023-01-13 17:42:51 +01:00
Oliver Drotbohm
6616aaaffa GH-116 - PublishedEvents now sees events from asynchronous event listeners as well.
The ApplicationListener we deploy to capture events published  during a test method execution now uses an InheritableThreadLocal so that events published on threads spawned from the main test execution thread also end up in the PublishedEvents instance prepared for the test method.

Also, the registration of that particular event listener avoids duplicate registrations by inspecting the application context in use for the test method execution for an already registered listener, falling back to registering one.
2023-01-13 16:13:34 +01:00
Oliver Drotbohm
5c34886907 GH-114 - Rename ….modulith.model to ….modulith.core. 2023-01-12 16:34:07 +01:00
Oliver Drotbohm
0d009f06c9 GH-111 - Package and publish Javadoc.
A lot of Javadoc polish. Not done yet.
2023-01-12 16:20:20 +01:00
Oliver Drotbohm
9ce6bf23ae GH-14 - Remove Lombok from production sources.
Polished a lot of Javadoc.
2023-01-12 01:05:35 +01:00
Oliver Drotbohm
30203ecca8 GH-104 - Polish log output for test execution.
Also added ApplicationModules.toString().
2023-01-05 10:21:42 +01:00
Oliver Drotbohm
a7e033172b GH-102 - ApplicationModules now allows traversing modules in topological order.
We now optionally integrate with the JGraphT library to calculate the topological order of modules based on their dependency structure. That order is then exposed in ApplicationModules' iteration and via ….getComparator().

Renamed FormattableJavaClass to FormattableType and allow it to be created from a plain Class as well.
2023-01-05 10:21:36 +01:00
Oliver Drotbohm
3b1bde5c36 GH-100 - Polishing. 2023-01-03 08:50:27 +01:00
Oliver Drotbohm
5d285e0e03 GH-100 - Introduce AssertablePublishedEvents.
In case AssertJ is on the classpath, test cases using the PublishedEventsExtension (for example, implicitly activated via @ApplicationModuleTest) can get an AssertablePublishedEvents injected into the method. In contrast to the original PublishedEvents, that one acts as AssertProvider so that it can be used in assertThat(…).… expressions to verify application events published.

Polished API in PublishedEvents for a more consistent experience.
2023-01-03 02:44:01 +01:00
Oliver Drotbohm
4e13fbf7f8 GH-99 - Extend license headers to 2023. 2023-01-02 18:12:29 +01:00
Oliver Drotbohm
2d933d07c5 GH-92 - Prepare next development iteration. 2022-12-23 17:32:38 +01:00
Oliver Drotbohm
888055cf7c GH-92 - Release version 0.2.0. 2022-12-23 17:32:37 +01:00
Oliver Drotbohm
c1fc3032b7 GH-87 - Expose module structure as actuator endpoint.
Introduce Spring Modulith Actuator module to expose the application module structure as Spring Boot actuator. This required a Spring Modulith Runtime module to be extracted from the Spring Modulith Observability one. The former now contains the auto-configured ApplicationRuntime and ApplicationModulesRuntime bean instances to be able to bootstrap a ApplicationModules asynchronously on application startup. The actuator module then contains a Spring Boot @Endpoint implementation consuming the ApplicationModules to render JSON describing the application module structure.
2022-12-23 10:56:47 +01:00
Oliver Drotbohm
ac072805b8 GH-78 - Prepare next development iteration. 2022-11-24 23:30:15 +01:00
Oliver Drotbohm
7f1e22db63 GH-78 - Release version 0.1.0. 2022-11-24 23:30:15 +01:00
Oliver Drotbohm
02881539b6 GH-77 - Avoid exposing TestUtils to user applications.
Moved TestUtils from spring-modulith-test to spring-modulith-integration-test as it's only used there and doesn't need to be exposed to user applications.
2022-11-24 22:35:32 +01:00
Oliver Drotbohm
b402f00c77 GH-77 - Upgrade to Spring Boot 3.0.
Adapt to API changes in Micrometer and Spring Boot's test context loader API now exposing a checked ContextLoadException to signal failures during ApplicationContext bootstraps.
2022-11-24 22:31:49 +01:00
Oliver Drotbohm
9d95d8715d GH-71 - Prepare next development iteration. 2022-11-16 22:48:27 +01:00
Oliver Drotbohm
3ce2be3c55 GH-71 - Release version 0.1.0-RC1. 2022-11-16 22:48:27 +01:00
Oliver Drotbohm
55b16857f3 GH-69 - Switch to Stream.toList(). 2022-11-11 18:49:03 +01:00
Oliver Drotbohm
d96263fe30 GH-11, GH-66, GH-67, GH-68 - Improve module canvas.
Overhauled the module canvas in various ways. By default, we now skip "empty" rows. In other words, if we do not find any published events for example, we skip the entire row. CanvasOptions.revealEmptyRows() can be used to keep those empty rows around. We now also expose all value types and Spring bean references.

Refactored the dependency lookup APIs on ApplicationModule. Both DependencyType and DependencyDepth are now top-level types. Also, ApplicationModuleDependency and ApplicationModuleDependencies were introduced as explicit types. In the course of that, ApplicationModule.getDependencies(…) has got its return type changed from List<ApplicationModule> to ApplicationModuleDependencies. The internal ModuleDependency type has been renamed to QualifiedDependency.
2022-11-11 18:33:03 +01:00
Oliver Drotbohm
dc065653e5 GH-61 - Prepare next development iteration. 2022-11-02 18:45:47 +01:00
Oliver Drotbohm
7a7b49809f GH-61 - Release version 0.1.0-M2. 2022-11-02 18:45:47 +01:00
Oliver Drotbohm
b9d46173f7 GH-56 - ModuleTestAutoConfiguration is now autoconfiguration of highest precedence.
Also, keep autoconfiguration packages as String array to avoid ClassCastExceptions when the bean definition's constructor arguments are inspected manually (like in AutoConfigurationPackages.addBasePackages(…).
2022-10-24 14:13:53 +02:00
Oliver Drotbohm
f53ff168f1 GH-21 - Prepare next development iteration. 2022-10-21 11:41:36 +02:00
Oliver Drotbohm
48876e5800 GH-21 - Release version 0.1.0-M1. 2022-10-21 11:41:01 +02:00
Oliver Drotbohm
2430dc90e2 GH-46 - Bootstrap dependencies must only contain DependencyType.USES_COMPONENT. 2022-10-21 11:11:24 +02:00
Oliver Drotbohm
82c18fe509 GH-9 - Rename core, public abstractions from Module to ApplicationModule.
Remove obsolete @since tags and deprecations.
2022-07-19 15:34:44 +02:00
Oliver Drotbohm
8ba6c11e3d GH-1 - Consistent license years and HTTPS URLs. 2022-07-19 15:04:52 +02:00
Oliver Drotbohm
48ea08ae59 GH-1 - Consistent author names. 2022-07-19 15:02:00 +02:00
Oliver Drotbohm
b2425d024a GH-1 - Polishing.
Fix import order after package renames.
2022-07-08 09:35:55 +02:00
Björn Kieling
417e215993 GH-1 - Update Maven artifact coordinates, package and directory structure.
Original pull request: GH-7.
2022-07-07 20:41:59 +02:00