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.
This commit is contained in:
Oliver Drotbohm
2023-11-06 18:26:07 +01:00
committed by Oliver Drotbohm
parent b927bf1211
commit 7838204c25
31 changed files with 1315 additions and 133 deletions

View File

@@ -575,7 +575,8 @@ public class Documenter {
ComponentView componentView = createComponentView(options);
componentView.setTitle(getDefaultedSystemName());
addComponentsToView(() -> modules.stream(), componentView, options, it -> {});
addComponentsToView(() -> modules.stream().filter(Predicate.not(modules::hasParent)), componentView,
options, it -> {});
return render(componentView, options);
}