Commit Graph

52 Commits

Author SHA1 Message Date
Oliver Drotbohm
8042ad5b9a GH-1063 - Polishing. 2025-02-21 23:02:17 +01:00
Oliver Drotbohm
a800e20e63 GH-1063 - Documenter now creates application module metadata file. 2025-02-21 23:01:42 +01:00
Oliver Drotbohm
79a80d2325 GH-1006 - Pick up reference types for event listeners declared in annotations.
We now detect event types a listener is interested in declared in annotations for inclusion the reference documentation. This allows for the rare case that the event listener method not actually declaring the event type as parameter as it might not be needed in the payload but only the fact that an event was published at all.
2025-01-06 19:12:36 +01:00
Oliver Drotbohm
7fabc528b4 GH-1010 - Update copyright declarations to include 2025. 2025-01-06 16:58:45 +01:00
Oliver Drotbohm
8019a804a5 GH-983 - Polishing.
Make sure that adding skin parameters does not alter the existing instance's parameters. Javadoc. General polishing.
2024-12-11 21:37:03 +01:00
Alexander Miller
63b4ab7482 GH-983 - Allow registering skin parameters in generated PlantUML diagrams. 2024-12-11 21:32:24 +01:00
Oliver Drotbohm
0d3025dad7 GH-968 - Improve Application Module Canvas rendering. 2024-11-25 13:19:56 +01:00
Oliver Drotbohm
cb3f503423 GH-965 - Polishing. 2024-11-25 12:18:03 +01:00
Oliver Drotbohm
f52e1a9f45 GH-965 - Asciidoctor.toInlineCode(String) now renders local method references correctly.
Previously, the missing type caused the module lookup to fail with an exception.
2024-11-25 12:11:23 +01:00
Oliver Drotbohm
95438a997f GH-913 - Package Javadoc for newly introduced packages. 2024-10-29 22:15:16 +01:00
Oliver Drotbohm
6da5d1dafb GH-874 - Add LICENSE and NOTICE files to binaries. 2024-10-14 22:14:51 +02:00
Oliver Drotbohm
4be1862075 GH-865 - Aggregating documentation now renders PlantUML files as SVG. 2024-10-08 20:32:11 +02:00
Oliver Drotbohm
9464e83ea4 GH-854 - Polish rendering of events listened to in Application Module Canvases. 2024-10-08 20:18:52 +02:00
Oliver Drotbohm
db40cd3da3 GH-854 - Polishing.
Fix invalid @see tag.
2024-10-06 12:59:12 +02:00
Oliver Drotbohm
1708f5e181 GH-854 - Spring Modulith-native support for Javadoc usage in Application Module Canvases.
We now ship our own APT (included in the core starter) that automatically extracts the user code's Javadoc into a metadata file in generated-spring-modulith/javadoc.json. The documentation generation support picks up that file through SpringModulithDocumentationSource. Asciidoctor has been extended to make more use of the Javadoc where ever it renders a plain type.
2024-10-03 23:38:57 +02:00
Oliver Drotbohm
438f17b56d GH-813 - Introduce FormattableType.
As replacement for misspelled Formatable type.
2024-09-20 22:02:17 +02:00
Oliver Drotbohm
f09f3aa827 GH-802 - Allow transitive application module dependency resolution.
ApplicationModule now exposes both getDirectDependencies(…) and getAllDependencies(…), the former as alias for the now deprecated getDependencies(…) for symmetry reasons. The latter recursively resolves transitive dependencies.

We now optimize the dependency analysis by skipping types residing java and javax packages as they're not relevant to our dependency arrangement model. A few additional optimizations in ApplicationModuleDependencies to avoid iterating over each establishing dependency if all we need to look at is the general module dependency arrangement.

Improve performance of ApplicationModule.contains(…) checks by checking whether the given type can even live inside the package space of the module.
2024-09-06 21:41:35 +02:00
Oliver Drotbohm
7838204c25 GH-578 - Support for nested application modules.
The ApplicationModules bootstrap now triggers the module base package detection, followed by a new, additional pass of detecting nested application module packages. Those packages are now added to the ones we create ApplicationModule instances for and also handed into the module instance creation step as exclusions to make sure that parent modules do not include code residing in sub-modules.

The bootstrap of ApplicationModules now uses a dedicated ApplicationModuleSource to allow calculating a default module name relative to the application base package.

Each module now operates on the Classes instance obtained from the JavaPackage instance that constitutes the module's base package but filtered by the given exclusions.
2024-08-16 17:09:51 +02:00
Oliver Drotbohm
69499b9258 GH-644 - Remove deprecated configuration method on Documenter. 2024-07-16 14:56:01 +02:00
Oliver Drotbohm
8e7225b9f7 GH-644 - Polishing.
Documenter now remembers whether it has cleared the output directory so that multiple attempts to clear on one Documenter instance will not wipe the content previously generated on the same instance. All methods ultimately creating files trigger the one-time target folder wipe now.

Moved file system operations into the OutputFolder abstraction.

A couple of parameter renames for consistency.
2024-07-16 14:54:58 +02:00
Tobias Haindl
08430ad1af GH-644 - Add option to clean the output directory in documentation generation. 2024-07-15 19:27:21 +02:00
Oliver Drotbohm
b4dae619c1 GH-644 - Initial draft. 2024-07-15 17:51:04 +02:00
Oliver Drotbohm
e7515cc1dc GH-638 - Polishing. 2024-07-08 17:21:08 +02:00
Cora Iberkleid
d32ef518e0 GH-638 - Create aggregating Asciidoc document including all files generated. 2024-07-08 17:17:16 +02:00
Lukas Dohmen
b83119ed5a GH-608 - Polishing in Asciidoctor rendering. 2024-05-22 16:50:39 +02:00
Oliver Drotbohm
232cb3c9ec GH-476 - Move off legacy Structurizr PlantUML generation. 2024-01-21 12:23:29 +01:00
Oliver Drotbohm
c32227bdfb GH-463 - Update copyright headers. 2024-01-17 19:45:40 +01:00
Oliver Drotbohm
72762faf4d GH-462 - Upgrade to latest Structurizr.
Core 1.18 -> 1.29
Export 1.8.3 -> 1.19.0
2024-01-17 18:03:32 +01:00
Oliver Drotbohm
9d30fcd29c GH-373 - Fix detection of jMolecules Layered Architecture presence. 2023-11-17 17:14:17 +01:00
Oliver Drotbohm
16bc4b3a60 GH-192 - Add default component groupings for jMolecules architecture abstractions.
We now register default groupings for the architectural abstractions [0] in case they are available on the classpath but still fall back to the standard Spring Framework ones if not. In other words, if you e.g. use the jmolecules-hexagonal-architecture ones, types and packages annotated with @Port will cause the affected types to appear under a "Ports" section in the "Spring components" row in the Application Module Canvas.

[0] https://github.com/xmolecules/jmolecules#available-libraries-1
2023-04-30 22:35:14 +02:00
Oliver Drotbohm
485c47fcab GH-141 - Avoid package wrapper for component diagrams. 2023-02-23 22:31:08 +01:00
Oliver Drotbohm
7dda0e3c3a GH-140 - Use system name as container title in generated documentation. 2023-02-23 22:29:26 +01:00
Oliver Drotbohm
58ad0a33e7 GH-120 - Use *.puml as default file extension for PlantUML files generated. 2023-01-19 16:12: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
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
22993f43d9 GH-74 - Bean references in Application Module Canvas now get de-duplicated. 2022-11-18 00:13:18 +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
7c93b273d9 GH-43 - Improve consistency in Documenter API.
Consistent method overloads to avoid the need to create default instances of customization options. Renamed Options to DiagramOptions for consistency with CanvasOptions.
2022-10-13 17:24:44 +02:00
Oliver Drotbohm
e4841e5648 GH-41 - Upgrade to latest Structurizr libraries. 2022-09-20 17:12:43 +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
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
68c11ca214 GH-33 - Avoid throwing IOException from public Documenter API. 2022-07-28 19:37:13 +02:00
Oliver Drotbohm
13b83ef947 GH-28 - Consolidate sample and integration tests module. 2022-07-27 14:57:15 +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