Commit Graph

364 Commits

Author SHA1 Message Date
Oliver Drotbohm
ffb9495e15 GH-301 - Polishing.
Formatting, visibility. Some refactorings in Neo4jEventPublicationRepository.
2023-09-20 23:06:38 +02:00
Gerrit Meier
4e069b98ea GH-301 - Add Neo4j event publication repository. 2023-09-20 15:17:40 +02:00
Oliver Drotbohm
bf404a571c GH-248 - Add package-info.java for event externalization modules. 2023-09-19 11:04:47 +02:00
Devashish Bhattacharjee
31a570c87b GH-255 - Add Gradle snippets for build related samples to the reference documentation. 2023-09-19 10:02:12 +02:00
Rob Winch
c43a338a99 GH-297 - Update to antora-ui-spring v0.3.7. 2023-09-19 09:00:01 +02:00
Oliver Drotbohm
7998ec45fb GH-285 - Fix dispatch permissions. 2023-09-12 22:18:36 +02:00
Oliver Drotbohm
92c0b6c277 GH-285 - Fix token references in docs workflow. 2023-09-12 21:54:56 +02:00
Oliver Drotbohm
8a1e1b9266 GH-285 - Add Antora plugin to distribution build. 2023-09-12 11:10:12 +02:00
Oliver Drotbohm
0d563dde1e GH-285 - Add diagram extension to main branch Antora playbook. 2023-09-12 11:09:53 +02:00
Rob Winch
56036d151a GH-285 - Migrate documentation to Antora. 2023-09-12 09:21:48 +02:00
Oliver Drotbohm
607d046621 GH-248 - Disable Boot 3.0 compatibility builds. 2023-09-08 08:48:14 +02:00
Oliver Drotbohm
9a25271946 GH-248 - Polishing.
Minor code cleanup.
2023-09-07 16:29:12 +02:00
Oliver Drotbohm
9b0062f354 GH-248 - Support to automatically externalize events.
We now allow externalizing application events to a variety of message brokers through the addition of Spring Modulith modules for Kafka, AMQP and JMS to a user project's classpath. Which events shall be externalized and how they're supposed to be routed to the message broker can be configured through either annotations or via a configuration API declared as Spring bean.

In case Jackson is on the classpath, we also add auto-configuration to use a Boot-configured ObjectMapper instance with the corresponding message broker client APIs to properly serialize and deserialize messages to JSON.
2023-09-07 16:29:10 +02:00
Oliver Drotbohm
971a143436 GH-294 - Introduce user API to deal with completed and incomplete event publications.
Introduce a new spring-modulith-events-api artifact to contain types that are supposed to be used by application code to deal with event publications. `EventPublication` was moved into that artifact and got everything non infrastructure related extracted from it's previous incarnation. That in turn has been renamed to `TargetEventPublication`.

`CompletedEventPublications` exposes API to allow purging completed publications either by a given predicate or age (in `Duration`). The interface is implemented by `DefaultEventPublicationRegistry` and thus subject for dependency injection into user code. It primarily delegates to the corresponding methods on `EventPublicationRepository` adapting the given `Duration`s to the `Clock` instance already held internally.

`IncompleteEventPublications` allows triggering the re-submission of incomplete publications by the same criteria as `CEP`. The interface is implemented by `PersistentApplicationEventMulticaster` and this subject for dependency injection into user code.

`EventPublicationRepository` now also allows publications to be deleted by identifiers. The existing implementations have been adapted and batch the requests for every 100 identifiers to prevent a list too large to run into limitations of the underlying data store.

Polished transactional metadata declaration in JPA- and MongoDB-based repository implementations.

Tightened nullability expressions here and there.
2023-09-04 15:24:37 +02:00
Oliver Drotbohm
1fe681bffc GH-289 - Polishing. 2023-09-04 09:55:04 +02:00
Karl Heinz Marbaise
4af54d09a6 GH-289 - Project version is not correctly inserted into the documentation.
Original pull request: GH-290.
2023-09-04 09:54:56 +02:00
Oliver Drotbohm
3aa6a12b21 GH-288 - Clarify event republication behavior on restart. 2023-09-04 09:46:33 +02:00
Oliver Drotbohm
28fcdf1f1e GH-280 - Make MomentsProperties usable on AOT.
Introduce a default constructor to prevent the AOT engine from breaking as reported in [0].

[0] https://github.com/spring-projects/spring-framework/issues/31117
2023-08-26 16:38:40 +02:00
Oliver Drotbohm
4d939d34a9 GH-269 - Update integration build after Boot releases. 2023-08-25 10:20:00 -07:00
Oliver Drotbohm
52f61bb1f3 GH-269 - Upgrade to Spring Boot 3.2 M2. 2023-08-24 12:04:18 -07:00
Oliver Drotbohm
c048f91ef2 GH-279 - Improve annotation processor setup.
Temporarily extract version numbers into properties until the compiler plugin considers the versions declared in dependency management [0].

[0] https://issues.apache.org/jira/browse/MCOMPILER-391
2023-08-24 11:41:26 -07:00
Eric Haag
d87fcd475a GH-279 - Add annotation processors for compiler avoidance. 2023-08-24 11:38:00 -07:00
Eric Haag
ebb43ac46d GH-279 - Update workflows with Gradle Enterprise credentials
Only workflows that do not build PRs have been configured with credentials.
2023-08-23 15:14:42 -07:00
Eric Haag
78434cec48 GH-279 - Connect build to ge.spring.io.
This change publishes a build scan to ge.spring.io for every local build from an authenticated Spring committer and for CI where appropriate access tokens are available. The build will not fail if publishing fails.

This change also allows the build to benefit from local and remote build caching, providing faster builds for all contributors.

Additionally, the project will have access to all features of Gradle Enterprise such as:

- Dashboards to view all historical build scans, along with performance trends over time
- Build failure analytics for enhanced investigation and diagnosis of build failures
- Test failure analytics to better understand trends and causes around slow, failing, and flaky tests
2023-08-23 15:14:15 -07:00
Oliver Drotbohm
40a13c742c GH-274 - Switch back to Spring credentials for release deployments. 2023-08-22 11:36:31 -07:00
Oliver Drotbohm
f6ce8c91f2 GH-269 - Upgrade to Spring Boot 3.2 snapshots. 2023-08-22 10:35:16 -07:00
Oliver Drotbohm
ddaf34d4d8 GH-274 - Prepare next development iteration. 2023-08-21 07:00:02 -07:00
Oliver Drotbohm
6197d35937 GH-274 - Release version 1.0.0. 2023-08-21 06:59:57 -07:00
Oliver Drotbohm
6872734d24 GH-274 - Switch to personal credentials for release deployment. 2023-08-21 06:58:04 -07:00
Oliver Drotbohm
374255672e GH-276 - Upgrade to jMolecules 2023.1.0. 2023-08-18 12:25:14 +02:00
Oliver Drotbohm
8e6d519554 GH-275 - Upgrade to Spring Asciidoctor Backends 0.0.7. 2023-08-18 12:24:32 +02:00
Oliver Drotbohm
941394f2d5 GH-273 - Remove experimental declaration from Scenario. 2023-08-17 17:35:09 +02:00
Oliver Drotbohm
9084ef71ac GH-271 - Remove Spring Modulith Events parent POM from BOM. 2023-08-16 21:49:21 +02:00
Oliver Drotbohm
39ce5346c6 GH-270 - Prepare next development iteration. 2023-08-16 08:05:46 +02:00
Oliver Drotbohm
2c5cedd1d1 GH-270 - Release version 1.0.0-RC2. 2023-08-16 08:05:46 +02:00
Oliver Drotbohm
9568f29613 GH-267 - Explicitly declared empty allowed dependencies now forbids any dependency.
The default for @ApplicationModule(allowedDependencies) is now a single element list with a dedicated token we recognize as "all dependencies allowed". This allows users to declare an empty array explicitly to disallow any outgoing dependencies for an application module. Previously, such a declaration would have allowed any dependency.
2023-08-15 19:52:02 +02:00
Oliver Drotbohm
cec759af0c GH-268 - Rename actuator endpoint to modulith.
To align with the conventions established by Spring Boot.
2023-08-15 09:30:00 +02:00
Oliver Drotbohm
0bfdb81d91 GH-265 - Use EVENT_PUBLICATION as table name for JPA to be consistent with JDBC. 2023-08-12 07:50:37 +02:00
Oliver Drotbohm
1e1ebb52ff GH-266 - Use event_publication collection for MongoDB event publications. 2023-08-12 07:50:37 +02:00
Oliver Drotbohm
967556d014 GH-264 - Only register EventPublicationRegistry if EventPublicationRepository present.
We now clearly separate between strict configuration, usable via @EnablePersistentDomainEvents and the auto-configuration for EventPublicationRegistry infrastructure. This allows using the core JAR in scenarios, in which no registry functionality is needed.
2023-08-12 07:49:43 +02:00
Yossi Spektor
0b110f70c2 GH-220 - Documentation polish. 2023-08-10 08:37:44 +02:00
Oliver Drotbohm
0de48790d7 GH-261 - Avoid materializing JpaEventPublication to mark it completed.
We now simply issue an update query.
2023-08-10 00:19:35 +02:00
Oliver Drotbohm
1a84ae256f GH-260 - Prepare next development iteration. 2023-08-09 22:29:57 +02:00
Oliver Drotbohm
bf68d74756 GH-260 - Release version 1.0.0-RC1. 2023-08-09 22:29:56 +02:00
Oliver Drotbohm
7a72dc16f6 GH-260 - Upgrade change log configuration to include improvements. 2023-08-09 22:27:13 +02:00
Oliver Drotbohm
31efdb31a2 GH-259 - Rename modulith.events package to modulith.events.core.
Allows us to eventually use the former as user-facing API package in a to-be-introduced API JAR.
2023-08-09 22:05:08 +02:00
Oliver Drotbohm
46127e0fbd GH-260 - Upgrade build plugins to the latest versions. 2023-08-09 21:25:26 +02:00
Oliver Drotbohm
43418b5fe0 GH-246 - Upgrade to ArchUnit 1.1.0.
Related tickets: GH-221.
2023-08-09 21:21:18 +02:00
Oliver Drotbohm
290b1c899b GH-257 - Add appendix listing all configuration properties exposed. 2023-08-09 21:21:18 +02:00
Oliver Drotbohm
afe77711f1 GH-212 - Invert default for event republication to false.
This is to accommodate cluster setups and avoid multiple instances from resubmitting outstanding event publications concurrently.
2023-08-09 21:21:18 +02:00