Commit Graph

803 Commits

Author SHA1 Message Date
Oliver Drotbohm
eb72e18fdd GH-1116 - Update Spring Framework to 6.2.5. 2025-03-20 12:02:52 +01:00
Oliver Drotbohm
433a22559e GH-1110 - Register AssertablePublishedEvents in ApplicationContext if AssertJ is on the classpath.
We now check for the presence of AssertJ on the classpath and rather register an instance of ApplicationPublishedEvents in the ApplicationContext if present.
2025-03-17 19:01:53 +01:00
Oliver Drotbohm
8df778b039 GH-202 - Support for bean instances located in test sources in @ApplicationModuleTest.
Prior to this commit, the TypeExcludeFilter registered by @ApplicationModuleTest decided whether to include a type based on the ApplicationModules instance and the content of the modules' backing JavaPackage instances. Those in turn always consider the classes scanned by ArchUnit to decide whether they include a type or not. As an ApplicationModules instance is set up to only consider production code, any type located in the test sources was disregarded from component scanning.

The checks for package inclusion for a test execution have now been revamped to consider the sole package names when filtering types for inclusion.
2025-03-17 18:35:03 +01:00
Oliver Drotbohm
a771ecfad5 GH-1105 - Add dependency mapping file. 2025-03-13 23:27:42 +01:00
Oliver Drotbohm
424837bde8 GH-1103 - Update Spring Framework to 6.2.4. 2025-03-13 23:15:01 +01:00
Oliver Drotbohm
c6b7288211 GH-1104 - Upgrade to Micrometer Tracing 1.5 M3. 2025-03-13 23:15:01 +01:00
Oliver Drotbohm
df4d82dd3f GH-1098 - 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:42:45 +01:00
Oliver Drotbohm
083ce7beae GH-1098 - Fix performance regression in JavaPackage.
The fix for GH-1039 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:56:50 +01:00
Oliver Drotbohm
423f54d6b9 GH-1097 - Upgrade to ArchUnit 1.4. 2025-02-26 19:17:39 +01:00
Oliver Drotbohm
f0016c8164 GH-1094 - Prepare next development iteration. 2025-02-25 10:40:49 +01:00
Oliver Drotbohm
95acf1fcac GH-1094 - Release version 1.4.0-M2. 2025-02-25 10:40:48 +01:00
Oliver Drotbohm
07f7843385 GH-1024 - Remove Spring Cloud AWS version property. 2025-02-25 10:09:43 +01:00
Oliver Drotbohm
dc1b9e7a88 GH-1093 - Switch back to Spring Framework 6.2.3. 2025-02-25 09:47:32 +01:00
Oliver Drotbohm
06d47fb1de GH-1050 - ModuleContextCustomizer are now considered equal if their backing execution is. 2025-02-24 22:12:17 +01:00
Oliver Drotbohm
34ff544d95 GH-1090 - ModuleTestExecution now uses ApplicationModulesFactory to bootstrap ApplicationModules.
This allows running tests against it and see application modules located in test sources.
2025-02-24 22:05:59 +01:00
Oliver Drotbohm
ec0e2c73e9 GH-1087 - Set up DCO infrastructure. 2025-02-24 12:54:06 +01:00
Lukas Dohmen
f49fad2a04 GH-1084 - Complete description for Neo4j index property.
Signed-off-by: Lucas Dohmen <l.dohmen@yahoo.de>
2025-02-24 12:39:53 +01:00
Oliver Drotbohm
bf0c07e222 GH-1052 - 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:06:30 +01:00
Oliver Drotbohm
cd36bd7ac8 GH-1077 - Do not CI build hacking/* branches. 2025-02-23 13:49:02 +01:00
Oliver Drotbohm
66bb3b847a GH-1075 - Temporarily upgrade to Spring Framework 6.2.4 snapshots. 2025-02-23 13:13:36 +01:00
Oliver Drotbohm
c145ba5a07 GH-1051 - Only unregister resubmitted event publication in case of errors.
Before this commit the code resubmitting incomplete event publications unregistered them independently of whether they succeeded or not. We now only do that for failed submissions as an error here indicates a failure to *submit* the publication. As the execution is likely performed asynchronously, a successful hand-off does not implicate the publication being completely processed.
2025-02-23 13:13:24 +01:00
Oliver Drotbohm
a0315113bc GH-1066 - Use metadata resource's input stream rather than file. 2025-02-23 09:48:51 +01:00
Oliver Drotbohm
20f07b7936 GH-1068 - Switch to simple event type name for automatically created counters. 2025-02-23 09:48:05 +01:00
Oliver Drotbohm
78991f4723 GH-1060 - Remove dependency to JGraphT from runtime artifact. 2025-02-23 09:47:09 +01:00
Oliver Drotbohm
f09009bfb2 Gh-1075 - Temporarily downgrade to Spring Framework 6.2.2. 2025-02-22 17:10:45 +01:00
Oliver Drotbohm
efc99f1a35 GH-1073 - Upgrade to Spring Boot 3.5 M2. 2025-02-22 16:34:08 +01:00
Oliver Drotbohm
c7bf5f100d GH-1072 - Upgrade to Micrometer Tracing 1.5 M2. 2025-02-22 15:44:11 +01:00
Oliver Drotbohm
c8ad505c2a GH-1071 - Update Spring Framework to 6.2.3. 2025-02-22 15:39:06 +01:00
Oliver Drotbohm
f09c499600 GH-1068 - Polishing. 2025-02-22 15:34:30 +01:00
Oliver Drotbohm
d5408d7359 GH-1064 - Polishing. 2025-02-22 15:20:12 +01:00
Oliver Drotbohm
32099f2073 GH-1055 - Remove dependency to Commons Logging.
The Structurizr Core library depended on by the documentation support artifact pulls in Commons Logging which conflicts with Spring Frameworks spring-jcl artifact. We now explicitly exclude the former to prevent warning logs at runtime.
2025-02-22 15:13:52 +01:00
Oliver Drotbohm
dd37a283da GH-1068 - Automatically create counters for cross-module application events.
We now create counters for each cross-module application event published. The counters can be customized through ModulithEventMetricsCustomizer beans registered in the ApplicationContext.

Refactored the packages to let ….modulith.observability become the API package and moved all implementation components into ….modulith.observability.support.
2025-02-22 14:50:08 +01:00
Oliver Drotbohm
417e1c1e8c GH-1066 - Provide abstraction to access ApplicationModuleIdentifiers in order of module dependency.
Introduce ApplicationModuleIdentifiers as abstraction for an ordered collection of application module identifiers.

Introduced ApplicationModuleMetadata as abstraction for the generated metadata (usually located in META-INF/spring-modulith/application-modules.json) to expose the information we currently need to downstream infrastructure components. Migrated the components introduced to execute ApplicationModuleInitializers to AMA and adapt auto-configuration accordingly.
2025-02-22 14:19:32 +01:00
Oliver Drotbohm
7db3897b0f GH-1065 - Avoid the bootstrap of an ApplicationModules instance to execute ApplicationModuleInitializers. 2025-02-21 23:15:24 +01:00
Oliver Drotbohm
65f7bb7a8f GH-1064 - Move AOT processor to generate application module metadata into runtime module. 2025-02-21 23:09:18 +01:00
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
a9365ed257 GH-1056 - Switch to object identity comparison when looking up event publications.
We now rather use an object identity comparison in TargetEventPublication.isAssociatedWith(…) instead of an ….equals(…) as that would return the wrong publication for identical events.
2025-02-21 22:55:12 +01:00
Oliver Drotbohm
19db2339bd GH-1062 - ApplicationModuleExporter now exposes ApplicationModuleInitializer beans. 2025-02-21 22:49:28 +01:00
Oliver Drotbohm
8fb7f07b4a GH-1060 - Remove optional dependency on JGraphT.
We now implement the topological sorting of application modules ourselves. Properly recalculate module order after ApplicationModules recreation with shared modules. Make iterator resilient against premature invocation by falling back to the unordered modules.

Cleanup of generated type ignorance.
2025-02-21 16:15:33 +01:00
Oliver Drotbohm
421c2f8eff GH-935 - Migrate to Micrometer Tracings's local service name. 2025-02-20 21:05:07 +01:00
Oliver Drotbohm
0fd05077a5 GH-1046 - Update Spring Framework to 6.2.2. 2025-02-01 17:00:44 +01:00
Oliver Drotbohm
9957d42b6a GH-1045 - Update jMolecules to 2023.2.1. 2025-02-01 17:00:36 +01:00
Oliver Drotbohm
013bd8b9aa GH-1042 - 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:47:52 +01:00
Oliver Drotbohm
fe2c0c1d02 GH-1033 - Revert explicit Mockito agent configuration.
This reverts commit f6dd7836c2. See [0] for details. Additionally, the change causes our integration builds to fail as the Mockito versions referred to by older Boot versions do not contain the necessary manifest entries.

[0] https://github.com/eclipse-m2e/m2e-core/issues/1916#issuecomment-2616344357
2025-01-27 17:54:30 +01:00
Oliver Drotbohm
12b6a2d1fd GH-1040 - NamedInterfaces.Builder now does not exclude all packages by default.
Polished NamedInterfaces.toString() for easier debugability.
2025-01-25 13:57:07 +01:00
Oliver Drotbohm
5d8cbca10c GH-1039 - Revamp JavaPackage's sub-package traversal to retain empty intermediate packages. 2025-01-25 13:54:43 +01:00
Oliver Drotbohm
18f10b0401 GH-1038 - Expose ApplicationModuleInformation.
ApplicationModuleInformation is now public as it's referenced from the ApplicationModuleDetectionStrategy SPI. Extracted ApplicationModuleInformationFactory to avoid the internal instance creation logic from leaking.
2025-01-25 13:49:53 +01:00
Oliver Drotbohm
133ad57be3 GH-1037 - Upgrade examples to Spring Boot 3.5 M1. 2025-01-24 11:00:18 +01:00
Oliver Drotbohm
4090499634 GH-1027 - Prepare next development iteration. 2025-01-23 22:16:36 +01:00