Commit Graph

569 Commits

Author SHA1 Message Date
Oliver Drotbohm
1dbce34fb9 GH-757 - Fix test context cache key contributions.
Both ModuleContextCustomizer and ModuleTypeExcludeFilter contribute to the calculation of the context configuration which the Spring Test Context Framework uses to decide whether it's necessary to create new ApplicationContext instances.

Both of them previously used a Supplier<ModuleTestExecution> to calculate equals(…) and hashCode() which -- by definition -- does not result in the same result even when created with identical input. We now rather use the source class instance eventually backing the ModuleTestExecution, as that is the internal cache key in turn.
2024-08-11 11:56:50 -04:00
Oliver Drotbohm
0ba371fba3 GH-755 - Remove performance tests.
The functionality we compare against is only available in 1.3.
2024-08-08 12:10:26 +02:00
Oliver Drotbohm
81fbd71058 GH-755 - Revert to @MockBean. 2024-08-08 12:01:13 +02:00
Oliver Drotbohm
047ae729a2 GH-755 - Avoid superfluous, repeated deserialization in JdbcEventPublication.getEvent(). 2024-08-08 11:46:45 +02:00
Oliver Drotbohm
965c9a480b GH-750 - Optimize publication completion by event and target identifier.
We now additionally guard the completion query by event and target identifier to also only apply to publications that have not been completed yet. This will allow databases to optimize the query plan to apply simple comparisons (the date being null) over complex comparisons (the event payload) to reduce the intermediate results to process further and thus improve performance.
2024-08-06 17:21:45 -04:00
Oliver Drotbohm
73050ed23a GH-746 - Fix observability interception for components declaring event listeners. 2024-07-29 23:47:06 +02:00
Oliver Drotbohm
7ebee3c838 GH-741 - Prepare next development iteration. 2024-07-19 01:11:15 +02:00
Oliver Drotbohm
b58f4ecb92 GH-741 - Release version 1.2.2. 2024-07-19 01:11:14 +02:00
Oliver Drotbohm
0af2ce2a3b GH-738 - Upgrade to Spring Boot 3.3.2. 2024-07-18 23:27:42 +02:00
Oliver Drotbohm
61bcafeaed GH-732 - Only create event publication registry entries for after commit listeners. 2024-07-14 19:23:27 +02:00
Oliver Drotbohm
d3b5f783d0 GH-729 - Upgrade to jMolecules 2023.1.4. 2024-07-12 16:20:44 +02:00
adrien-lesur
947cbb6016 GH-721 - Fix broken link to Spring Data Domain Event publishing. 2024-07-08 22:36:56 +02:00
Eric Haag
640a7379c1 GH-719 - Migrate to Maven Develocity conventions. 2024-07-08 22:24:46 +02:00
Raed
52c937a826 GH-717 - Enable tests that were mistakenly disabled. 2024-07-08 22:15:51 +02:00
Raed
2197321e66 GH-715 - Fix typo in Javadoc. 2024-07-08 22:09:17 +02:00
Oliver Drotbohm
570f347cd8 GH-713 - Polishing. 2024-07-08 17:22:19 +02:00
Cora Iberkleid
b94d13b717 GH-713 - Create aggregating Asciidoc document including all files generated. 2024-07-08 17:21:59 +02:00
Oliver Drotbohm
bd2e4964fe GH-702 - Extract common properties of JDBC EPR test setup. 2024-07-05 11:18:51 +02:00
Oliver Drotbohm
f4203d96b4 GH-700 - Upgrade to latest Develocity setup. 2024-07-05 11:10:22 +02:00
Oliver Drotbohm
62b9e7a092 GH-677 - Prepare next development iteration. 2024-06-21 13:57:05 +02:00
Oliver Drotbohm
c569a481fd GH-677 - Release version 1.2.1. 2024-06-21 13:57:05 +02:00
Oliver Drotbohm
52a6f4fbb3 GH-678 - Upgrade to Spring Boot 3.3.1. 2024-06-21 13:41:52 +02:00
Dimitrios Begnis
2f5fa65d2c GH-673 - Add documentation for Neo4j modules. 2024-06-19 16:26:47 +02:00
Oliver Drotbohm
d36c38f55f GH-665 - Link to Spring Boot's Javadoc. 2024-06-18 15:17:39 +02:00
Oliver Drotbohm
d66259ed49 GH-662 - Fix named interface detection in case of nested packages.
If named interfaces are declared in nested packages, the name detection might accidentally pick up the names declared in child packages. We now deliberately only inspect the base package.
2024-06-18 13:59:19 +02:00
Oliver Drotbohm
8d86615e91 GH-661 - Dependency checks now explicitly skip module-internal dependencies.
As we process a type's entire type hierarchy for dependencies we might discover a foreign module's internal dependencies for modules that declare allowed dependencies explicitly. Explicitly declared dependencies so far solely verified the target being explicitly listed, which, for internal dependencies does not make sense. We now immediately start checking the source and target modules to be equivalent, in which case we can skip any further processing.
2024-06-18 12:30:25 +02:00
Oliver Drotbohm
5555b4d0e1 GH-658 - Upgrade to Github Actions Java 4. 2024-06-17 21:46:18 +02:00
Oliver Drotbohm
4823bbad16 GH-656 - Polishing. 2024-06-17 21:44:27 +02:00
Oliver Drotbohm
702fac54f9 GH-656 - Allow to configure the ApplicationModuleDetectionStrategy via a configuration property.
We now expose a configuration property spring.modulith.detection-strategy that can take either of the two prepared values "direct-sub-packages" (default) or "explicitly-annotated", or a fully qualified class name of the strategy to use.

Removed ApplicationModuleStrategies enum to avoid exposing the enum values as additional implementations. Those are now held as inline lambda expression in the factory methods on ApplicationModuleStrategy. Extracted the lookup of the strategy to use into ApplicationModuleDetectionStrategyLookup for easier testability.
2024-06-17 21:09:47 +02:00
Oliver Drotbohm
b37e39d89e GH-605 - Prepare next development iteration. 2024-06-17 21:09:44 +02:00
Oliver Drotbohm
0d74b1b1d0 GH-605 - Release version 1.2.0. 2024-05-24 12:56:39 +02:00
Oliver Drotbohm
e1f8be0bfe GH-637 - Enable TraceContext propagation across asynchronous threads.
We're now registering a customizers for both the SimpleAsyncTaskExecutor (used for virtual threads) and the ThreadPoolTaskExecutor to register a ContextPropagatingTaskDecorator.
2024-05-24 11:56:57 +02:00
Oliver Drotbohm
324e82454b GH-636 - Upgrade to Spring Boot 3.3. 2024-05-23 17:22:55 +02:00
Oliver Drotbohm
b395449a2c GH-633 - Enable CI builds for 1.1.x. 2024-05-23 13:21:43 +02:00
Oliver Drotbohm
9a52cbf534 GH-630 - Let JdbcEventPublicationRepository implement BeanClassLoaderAware.
To make sure the event type is loaded via the RestartClassLoader when using Spring Boot Devtools.
2024-05-23 13:15:48 +02:00
Oliver Drotbohm
5780ae044b GH-627 - Improve repository interaction in DefaultEventPublicationRegistry.
DefaultEventPublicationRegistry is now directly invoking the corresponding repository to delete events older than a certain duration.
2024-05-23 10:21:07 +02:00
Oliver Drotbohm
c11198f36d GH-617 - Fix JDBC event deletion implementation.
We now augment the basic query with exactly the number of parameter placeholders as we're handing in as parameters.
2024-05-23 10:20:28 +02:00
Oliver Drotbohm
cffb0a242d GH-587 - Re-establish proper ApplicationModules instance caching.
The previous change unfortunately altered the CacheKey type in a way that it does not result in equal instances for the same set of parameters, primarily because SingletonSupplier does not implement equals(…)/hashCode(). We now resort to include the ModulithMetadata source in the equals(…) / hashCode() calculation rather than the ModulithMetadata instance itself. This also avoids annotation processing during CacheKey instance creation.
2024-05-23 00:23:02 +02:00
Lukas Dohmen
b83119ed5a GH-608 - Polishing in Asciidoctor rendering. 2024-05-22 16:50:39 +02:00
Oliver Drotbohm
47063006d0 GH-614 - Polishing. 2024-05-22 15:40:02 +02:00
Oliver Drotbohm
8a82d5575a GH-615 - Make sure we always place the ModuleEntryInterceptor after the AsyncAnnotationAdvisor.
To properly create spans for the actual method invocation, not the async dispatch.
2024-05-21 23:59:29 +02:00
Oliver Drotbohm
4c4ac0c45e GH-614 - Expose factory method to create a (SpringBoot)ApplicationRuntime.
We now expose ApplicationRuntime.of(ApplicationContext) to create a SpringBootApplicationRuntime as that's needed a lot in integration tests for runtime and observability components.
2024-05-21 23:54:04 +02:00
Oliver Drotbohm
f8283fa644 GH-519 - Improve Postgres default indexes.
We now use a hash index for the serialized event to improve performance.
2024-05-21 09:03:29 +02:00
Oliver Drotbohm
919d565572 GH-612 - Properly nest spans for nested module invocations. 2024-05-21 00:58:40 +02:00
Oliver Drotbohm
e29853fcc7 GH-587 - Avoid repeated lookup of ApplicationModules in ApplicationModulesRuntime. 2024-05-21 00:57:08 +02:00
Oliver Drotbohm
21bd2cef75 GH-587 - ModulithMetadata now exposes all base packages.
Previously, we had a variety of places calculating the overall packages to inspect for types. This is now all consolidated into the ModulithMetadata abstraction exposing them directly.
2024-05-20 19:58:30 +02:00
Oliver Drotbohm
04c1203f65 GH-587 - Additional modulith packages are now considered for application classes. 2024-05-20 19:57:23 +02:00
Oliver Drotbohm
a7145c3b86 GH-605 - Fix repository reference for changelog generator. 2024-05-17 08:35:21 +02:00
Oliver Drotbohm
6130e618d9 GH-603 - Upgrade integration CI builds to Java action 4.0. 2024-05-17 08:17:08 +02:00
Oliver Drotbohm
51c5f0bf42 GH-601 - Support for wildcard references to named interfaces in explicitly defined allowed application module dependencies.
When defining allowed application module dependencies to named interfaces, the asterisk can now be used to allow referencing all named interfaces declared by the target module.
2024-05-16 16:03:14 +02:00