Commit Graph

40 Commits

Author SHA1 Message Date
Oliver Drotbohm
54b8ffa566 GH-111 - Optionally depend on Spring Boot autoconfiguration to keep Javadoc happy.
ModulithMetadata refers to SpringBootApplication in its Javadoc, which requires us to have the JAR on the classpath for Javadoc creation as the linting otherwise fails.
2023-01-12 16:50:23 +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
262efb5828 GH-106 - Avoid intercepting Object and proxy-related methods for module interaction tracing.
We now skip Object methods and ones declared on Spring's Advised or TargetClassAware types when intercepting invocations to trigger a module entry.
2023-01-05 20:00:54 +01:00
Oliver Drotbohm
d8463bb84b GH-102 - Avoid topological sorting to fail on cyclic module graphs.
We now fall back to the default non-topological ordering in case the application module graph contains cycles.
2023-01-05 11:21:14 +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
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
065db76547 GH-74 - Polishing. 2022-11-18 00:13:30 +01:00
Oliver Drotbohm
22993f43d9 GH-74 - Bean references in Application Module Canvas now get de-duplicated. 2022-11-18 00:13:18 +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
62ac231ce4 GH-65 - Reduced indentation of Spring Bean types in test execution log output. 2022-11-11 14:04:39 +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
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
8591fbb64a GH-47 - Treat efferent dependencies of configuration properties classes as simple dependencies. 2022-10-21 11:11:27 +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
1b3228426b GH-44 - ApplicationModules.verify() now returns itself. 2022-10-17 12:53:36 +02:00
Oliver Drotbohm
c192a7dd14 GH-42 - Upgrade to ArchUnit 1.0. 2022-10-13 17:23:49 +02:00
Oliver Drotbohm
5f6b82ef2d GH-40 - Switch to C4 component diagrams by default.
We now render the module component diagrams in C4 style by default. Changed the implementation of ApplicationModuleInformation to fallback to the simple module name by default unless fully-qualified module names are enabled.
2022-09-20 17:08:35 +02:00
Oliver Drotbohm
0c81d9025d GH-36 - Fix invalid named interface reference in ApplicationModule.
0fbf7b introduced a bug in which the named interface referenced by an explicit allowed dependency declaration was accidentally switched to be resolved against the source module, not the target one.
2022-09-12 15:59:58 +02:00
Oliver Drotbohm
bdb90e9298 GH-37 - Hide internal aggregates and components by default in module canvas.
We now only include exposed types in the module canvas rendered. This can be overridden by calling CanvasOptions.revealInternals().
2022-09-12 15:45:08 +02:00
Oliver Drotbohm
0fbf7b33b1 GH-36 - Better exception message for invalid, explicit module dependency declarations. 2022-08-11 11:29:55 +02:00
Oliver Drotbohm
7e890fd705 GH-36 - Better dependency verification for named interfaces.
We now verify detected dependencies against optionally explicitly defined ones. Those can refer to named interfaces (via the "moduleName :: namedInterfaceName" syntax). If such an allowed dependency is defined, all dependencies towards other named interfaces (also the unnamed one) are rejected.

Some Javadoc polishing.
2022-08-09 16:13:09 +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
Oliver Drotbohm
1cc44cf065 GH-2 - Upgrade to Spring Boot 3.
Upgrade to Spring Boot 3 and Java 17 as project baselines. Removed legacy JavaEE modules and replaced them by ones compatible with JakartaEE 9.

Disabled the Observability module for now as Spring Cloud Sleuth has been removed the Boot 3 compatible Spring Cloud branch and we need to migrate the module to Micrometer first.
2022-07-07 23:26:19 +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