179 Commits

Author SHA1 Message Date
Oliver Drotbohm
6ed2d65260 GH-1207 - Prepare next development iteration. 2025-05-26 21:00:42 +02:00
Oliver Drotbohm
26a1d1f838 GH-1207 - Release version 1.3.6. 2025-05-26 21:00:41 +02:00
Oliver Drotbohm
37fecae548 GH-1156 - Prepare next development iteration. 2025-04-25 11:03:05 +02:00
Oliver Drotbohm
65acef6331 GH-1156 - Release version 1.3.5. 2025-04-25 11:03:04 +02:00
Oliver Drotbohm
7bf6f265bb GH-1161 - FormattableType now correctly abbreviates nested types. 2025-04-19 15:52:51 +02:00
Oliver Drotbohm
4d1db81f65 GH-1142 - Detect @NamedInterface on composed annotations. 2025-04-04 17:14:01 +02:00
Oliver Drotbohm
502262aa97 GH-1106 - Prepare next development iteration. 2025-03-21 11:32:29 +01:00
Oliver Drotbohm
abe6f92ce7 GH-1106 - Release version 1.3.4. 2025-03-21 11:32:29 +01:00
Oliver Drotbohm
4e6114d019 GH-1100 - Polishing. 2025-03-11 13:02:41 +01:00
Oliver Drotbohm
d0ad12826b GH-1100 - Optimize type selection in Classes.
We now resort to a simple iteration over the types within a Classes arrangement to detect all classes residing in certain packages. This is primarily used during the JavaPackage data structure construction as it's called for every sub-package of a package originally created from a Classes instance. The new simplified algorithm avoids set up of DescribedPredicate instances to eventually only perform simple package name checks.
2025-03-07 12:39:10 +01:00
Oliver Drotbohm
06e1e3fa70 GH-1100 - Fix performance regression in JavaPackage.
The fix for GH-1041 introduced a performance regression as the calculation of the sub-packages escaped the SingletonSupplier and thus is now included in every hashCode() calculation. Took the chance to significantly revamp the sub-package calculation for nested packages. In other words, the entire sub-package arrangement for a package is calculated once with pre-computed intermediaries held instead of re-computing them per sub-package.
2025-03-04 15:55:56 +01:00
Oliver Drotbohm
7dbe64acb5 GH-1095 - Prepare next development iteration. 2025-02-25 10:36:44 +01:00
Oliver Drotbohm
dba752a039 GH-1095 - Release version 1.3.3. 2025-02-25 10:36:44 +01:00
Oliver Drotbohm
f61e7d91a0 GH-1082 - ApplicationModuleSource now uses JavaPackage.findAnnotation(…).
This is to make sure that marker types annotated with @PackageInfo are considered, too. Deprecate JavaPackage.getAnnotation(…) as it's not used anywhere anymore and we would like to consistently consider package info marker types when looking up package annotations.
2025-02-23 22:07:42 +01:00
Oliver Drotbohm
6f24103fe8 GH-1043 - Fix module identifier lookup in ApplicationModuleSource.
Before this commit, ApplicationModuleSource inspected all package-info.java contained in given packages, including the sub-packages of those. That caused identifiers explicitly defined in an @ApplicationModule on a package-info.java in nested packages picked up for top-level packages. This is now fixed by only considering the files in the top-level packages.
2025-01-28 23:49:27 +01:00
Oliver Drotbohm
1cc5719234 GH-1041 - Revamp JavaPackage's sub-package traversal to retain empty intermediate packages. 2025-01-25 14:03:53 +01:00
Oliver Drotbohm
6c31e04d40 GH-1026 - Prepare next development iteration. 2025-01-23 16:16:41 +01:00
Oliver Drotbohm
f8ba64821a GH-1026 - Release version 1.3.2. 2025-01-23 16:16:40 +01:00
Oliver Drotbohm
3246099f0a GH-1015 - Polishing. 2025-01-16 09:45:05 +01:00
Oliver Drotbohm
fe84013152 GH-1013 - 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:30:29 +01:00
Oliver Drotbohm
cd6aa42637 GH-1011 - Update copyright declarations to include 2025. 2025-01-06 17:00:49 +01:00
Oliver Drotbohm
a56392d866 GH-1000 - Prepare next development iteration. 2024-12-20 14:23:47 +01:00
Oliver Drotbohm
37b5840c35 GH-1000 - Release version 1.3.1. 2024-12-20 14:23:47 +01:00
Oliver Drotbohm
8c9a104ed1 GH-996 - Allow filtering violations. 2024-12-18 20:26:47 +01:00
Oliver Drotbohm
71d80c6188 GH-955 - Prepare next development iteration. 2024-11-25 12:20:05 +01:00
Oliver Drotbohm
6f6597e163 GH-955 - Release version 1.3.0. 2024-11-21 20:13:55 +01:00
Oliver Drotbohm
4218dffc9d GH-936 - Detect methods (meta-)annotated with @MessageMapping as module entry points.
We now consider all methods that are (meta-)annotated with Spring Messaging's @MessageMapping which is consistently used in a lot of broker annotations such as @(Rabbit|Kafka)Listener etc.
2024-11-19 23:01:29 +01:00
Oliver Drotbohm
169cf67128 Generally ignore generated code (annotated with @….Generated). 2024-11-05 16:16:07 +01:00
Oliver Drotbohm
34ce0add03 GH-919 - Add @CheckReturnValue and use it in Scenario API. 2024-10-29 22:15:12 +01:00
Oliver Drotbohm
3d35d48d18 GH-912 - Prepare next development iteration. 2024-10-26 15:58:59 +02:00
Oliver Drotbohm
05c5550312 GH-912 - Release version 1.3.0-RC1. 2024-10-26 15:58:59 +02:00
Oliver Drotbohm
6da5d1dafb GH-874 - Add LICENSE and NOTICE files to binaries. 2024-10-14 22:14:51 +02:00
Oliver Drotbohm
413e2f50b6 GH-846 - Fix module identifier lookup for jMolecules @Module(id = …).
We now properly translate jMolecules' @Module declaration configuring the id attribute explicitly into the identifier used for an application module.

Introduce @ApplicationModule(id = …) for Spring Modulith-native identifier customization.
2024-10-13 19:42:43 +02:00
Oliver Drotbohm
68185a7aef GH-872 - Introduce proper identifiers for ApplicationModules.
Introduced ApplicationModuleIdentifier that ensures that identifiers chosen for application modules do not contain a double colon (::) as we need those as separator characters for manual dependency declarations referring to named interfaces.
2024-10-13 19:41:49 +02:00
Oliver Drotbohm
e3077a7abd GH-862 - Trigger jMolecules architecture verifications if present on the classpath. 2024-10-08 11:14:06 +02:00
Oliver Drotbohm
0c2f79a56d GH-803 - Prepare next development iteration. 2024-09-20 23:26:04 +02:00
Oliver Drotbohm
a3ed03cff3 GH-803 - Release version 1.3.0-M3. 2024-09-20 23:26:03 +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
dc74b414f3 GH-801 - Properly guard for presence of jMolecules' @Module type.
As @Module is absent from the Kotlin flavor of jMolecules, code that refers to that is now guarded with a more specific check for that type in particular.
2024-09-12 16:57:44 +02:00
Oliver Drotbohm
0bbda9a8bd GH-802 - Fix Javadoc. 2024-09-08 15:23:10 +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
636b5988cb GH-797 - Guard against multiple non-unique module base packages. 2024-09-04 10:34:10 +02:00
Oliver Drotbohm
1062f53bfa GH-613 - Add SPI to support external ApplicationModuleSource contributions.
We now expose ApplicationModuleSourceFactory as Spring Factories-based SPI interface to further contribute ApplicationModuleSource instances either from a provided root package subject for module detection through a (potentially customized) ApplicationModuleDetectionStrategy or by explicitly listing particular module base packages.
2024-09-04 08:51:19 +02:00
Oliver Drotbohm
b370d5a3f2 GH-787 - Allow references between sibling sub-modules.
Previously, we rejected references between sub-modules both contained in the same parent package.

Related ticket: GH-578.
2024-08-30 18:22:02 +02:00
Oliver Drotbohm
65178e42de GH-785 - Prepare next development iteration. 2024-08-23 12:36:24 +02:00
Oliver Drotbohm
fbff89425f GH-785 - Release version 1.3.0-M2. 2024-08-23 12:36:24 +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
b927bf1211 GH-764 - Prevent ApplicationModuleInformation from picking up info from nested packages. 2024-08-13 22:01:01 +02:00
Oliver Drotbohm
ff6f09606b GH-761 - Open up ApplicationModules.of(…) to take a DescribedPredicate<? super JavaClass>. 2024-08-13 16:26:47 +02:00
Oliver Drotbohm
849cc3e506 GH-745 - Polishing.
Reintroduce original method in deprecated form.
2024-07-29 23:58:29 +02:00