Commit Graph

619 Commits

Author SHA1 Message Date
Oliver Drotbohm
03a6700a52 GH-804 - Polishing.
Actively reject attempts to use a dedicated schema with SQL Server. Prevent schema reset being executed if no schema is used. Properly report exception during database name detection.

Original pull request: GH-808.
2024-09-11 18:31:09 +02:00
Øyvind Johannessen
a1f2eb0482 GH-804 - Support for schema initialization on Microsoft SQL Server.
Original pull request: GH-808.
2024-09-11 18:30:32 +02:00
Oliver Drotbohm
100c1ab198 GH-803 - Set build branches for CI builds properly. 2024-09-08 15:51:43 +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
K. Siva Prasad Reddy
d5ab8b65cf GH-795 - Documentation polishing. 2024-09-04 14:38:51 +02:00
K. Siva Prasad Reddy
2b6a0bebf2 GH-795 - Using @MockitoBean and @MockitoSpyBean. 2024-09-04 14:37:46 +02:00
Oliver Drotbohm
5d57e2ce0f GH-613 - Fix SPI interface declaration in reference documentation example. 2024-09-04 12:06:25 +02:00
Oliver Drotbohm
d51dc86a56 GH-613 - Stable anchor for reference documentation section. 2024-09-04 12:04: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
Thiago Bomfim
803c69835d GH-768 - Fixing assertion message in HourHasPassed. 2024-08-30 17:32:49 +02:00
Martin Beentjes
efb3729079 GH-788 - Correct package declaration in JacksonEventSerializer. 2024-08-30 17:23:19 +02:00
Oliver Drotbohm
471065c113 GH-748 - Loosen Javadoc generation to allow custom tags. 2024-08-27 22:10:50 +02:00
Oliver Drotbohm
cd0b5cf5c3 GH-748 - Allow publication completion to delete database entries.
We now expose a spring.modulith.events.completion-mode property, defaulting the previous behavior to a value of UPDATE. The property can also be configured to DELETE, which will cause the persistence implementations to flip to removing the database entries for event publications instead of setting the completion date.
2024-08-27 21:52:53 +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
Lukas Dohmen
597a483fd5 GH-743 - Correct spelling in documentation. 2024-08-23 11:25:38 +02:00
Oliver Drotbohm
c23de32e29 GH-775 - Upgrade build plugins. 2024-08-23 11:23:49 +02:00
Oliver Drotbohm
b17a8fcbf1 GH-774 - Upgrade to Spring Framework 6.2 M7. 2024-08-23 11:14:35 +02:00
Oliver Drotbohm
b81da385fa GH-773 - Upgrade examples to jMolecules 2023.1.4. 2024-08-23 11:11:57 +02:00
Oliver Drotbohm
58f03812f0 GH-772 - Upgrade to Spring Boot 3.4 M2. 2024-08-23 11:10:09 +02:00
Oliver Drotbohm
40ecf14383 GH-760 - Integration builds test against open source versions only. 2024-08-23 11:03:08 +02:00
Oliver Drotbohm
662adac088 GH-578 - Improve nesting code sample in reference documentation. 2024-08-16 17:14:40 +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
68afaa8c83 GH-704 - Added simple script for backport ticket creation. 2024-08-13 16:54:23 +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
82af04b100 GH-760 - Forward passwords for commercial repo authentication. 2024-08-13 12:46:42 +02:00
Oliver Drotbohm
87b2fd72b8 GH-760 - Fix integration builds.
Update integration versions and reference to commercial repositories.
2024-08-13 12:43:18 +02:00
Oliver Drotbohm
0f84de8377 GH-725 - 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-10 23:56:01 +02:00
Oliver Drotbohm
9a908ee275 GH-754 - Rename EventPublication.isPublicationCompleted() to ….isCompleted(). 2024-08-07 21:25:58 +02:00
Oliver Drotbohm
9c7537f378 GH-753 - Avoid superfluous, repeated deserialization in JdbcEventPublication.getEvent(). 2024-08-07 21:22:55 +02:00
Oliver Drotbohm
4802089604 GH-749 - 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 21:24:12 +02:00
Oliver Drotbohm
06f4cc70b0 GH-258 - Optimize publication completion to issue by-id query.
DefaultEventPublicationRegistry now tracks the event publications currently in progress, so that the completion step can use the database identifier to issue an update statement solely based on that.
2024-08-06 21:24:09 +02:00
Oliver Drotbohm
849cc3e506 GH-745 - Polishing.
Reintroduce original method in deprecated form.
2024-07-29 23:58:29 +02:00
Igor Mukhin
cc571baf86 GH-745 - Fix typo in ApplicationModuleDetectionSTrategy.explicitlyAnnotated(). 2024-07-29 23:58:06 +02:00
Oliver Drotbohm
dad454aea5 GH-704 - Read SHAs to backport from source branch. 2024-07-29 23:52:26 +02:00
Oliver Drotbohm
02107e6a1c GH-744 - Fix observability interception for components declaring event listeners.
We now intercept all non-private methods on components, even if declared as event listeners.
2024-07-29 23:43:53 +02:00
Oliver Drotbohm
fbe1c5056f GH-742 - Re-enable linking to Spring Boot Javadoc. 2024-07-19 09:47:18 +02:00
Oliver Drotbohm
1e3a61838e GH-742 - Prepare next development iteration. 2024-07-19 01:58:03 +02:00
Oliver Drotbohm
9bf8a70c9f GH-742 - Release version 1.3.0-M1. 2024-07-19 01:58:03 +02:00
Oliver Drotbohm
6096bdb1dd GH-742 - Disable linking to Spring Boot Javadoc as it breaks the build. 2024-07-19 01:56:53 +02:00
Oliver Drotbohm
c6c58277e8 GH-737 - Work around double registry registration in AWS integration tests.
Looks like Boot 3.4 registers an addition DynamicPropertyRegistry bean.
2024-07-19 01:43:59 +02:00
Oliver Drotbohm
32a7b5dc74 GH-742 - Fix version of distribution module. 2024-07-19 01:31:26 +02:00
Oliver Drotbohm
b6a73c965f GH-737 - Upgrade to Spring Boot 3.4 M1. 2024-07-18 23:18:16 +02:00
Oliver Drotbohm
3b853507c1 GH-466 - Polishing.
Moved integration test to integration tests module.
2024-07-18 23:08:29 +02:00
Lukas Dohmen
bf120cf44b GH-466 - Allow using ApplicationModuleTest outside of module packages. 2024-07-17 00:14:41 +02:00
Oliver Drotbohm
69499b9258 GH-644 - Remove deprecated configuration method on Documenter. 2024-07-16 14:56:01 +02:00