Commit Graph

391 Commits

Author SHA1 Message Date
Oliver Drotbohm
668f23d97c GH-329 - Make integration builds only check Boot 3.2 compatibility.
As we now rely on API that has been introduced in Spring Framework 6.1 RC1.
2023-10-21 21:47:03 +02:00
Oliver Drotbohm
7ca64de924 GH-329 - Polish Javadoc. 2023-10-20 18:35:59 +02:00
Oliver Drotbohm
2241ae1960 GH-329 - Upgrade to Spring Boot 3.2 RC1.
Remove workaround of calling ApplicationListenerMethodAdapter.shouldHandle(…) reflectively.
2023-10-20 16:44:19 +02:00
Oliver Drotbohm
0189028faa GH-337 - Added spring-modulith-events-api to BOM. 2023-10-20 14:39:31 +02:00
Oliver Drotbohm
4a91ad4bc8 GH-335 - Moments now implements Now. 2023-10-19 17:22:54 +02:00
Devashish Bhattacharjee
9b79e09729 GH-256 - Added Kotlin variant for Java code. 2023-10-17 10:22:02 +02:00
Oliver Drotbohm
6653bcb527 GH-282 - Refactor @Modulith to compose @SpringBootApplication. 2023-10-16 22:58:41 +02:00
Oliver Drotbohm
752b5d7cf3 GH-332 - Avoid proxying configuration classes for observability purposes.
We now skip configuration classes for observability-related proxying as it's hard to detect those during the ProxyFactory setup to configure target class proxying. Also, configuration classes are usually no targets of inter-module communication and thus don't need to be observed at all.
2023-10-16 21:11:30 +02:00
Oliver Drotbohm
1482ba01f5 GH-310 - Revert "Remove time zone from Postgres event publication schema."
This reverts commit 19457cd736. Related ticket: GH-306.
2023-10-16 14:02:14 +02:00
Oliver Drotbohm
560315ae14 GH-315 - Avoid processing infrastructure beans in observability infrastructure.
We now skip infrastructure role beans during the processing of beans that could be subject to inter-module interaction observability. Previously, we could accidentally trigger a dependency cycle if the ModuleTracingBeanPostProcessor triggered the initial creation of AutoConfigurationPackages as that would then trigger the PostProcessor in turn which would try to lookup the ACP bean again to determine whether it should post process that to apply observability.
2023-10-16 13:38:11 +02:00
Oliver Drotbohm
cc99f9d357 GH-325 - Add mission statement to reference documentation. 2023-10-16 08:32:26 +02:00
Oliver Drotbohm
51f205af59 GH-324 - Add Neo4j-specific configuration properties to reference documentation. 2023-10-16 08:31:35 +02:00
Oliver Drotbohm
86f745e5b7 GH-317 - Fix Javadoc. 2023-10-16 08:28:16 +02:00
Oliver Drotbohm
9148a57b02 GH-317 - Detect violations from types located in root packages.
We now create artificial root application modules for all root packages to detect violations (for example, types located in root packages referring to module-internal types).
2023-10-16 07:57:16 +02:00
Oliver Drotbohm
4a857dcddf GH-323 - Move off of Google's Suppliers.memoize(…). 2023-10-15 19:23:08 +02:00
Oliver Drotbohm
cb6d71ba60 GH-319 - Fix ApplicationModule by package name lookup.
Prior to this commit, the lookup for an ApplicationModule would find modules solely depending on the reference string starting with the base package. That means that a module with base package com.acme.foo, a request for com.acme.foobar would've resulted in a positive match, which of course is wrong.

We now match against either the module's base package or against the reference starting with the base package followed by a dot.
2023-10-15 17:29:27 +02:00
Oliver Drotbohm
db1c2b813e GH-322 - Move @ApplicationModuleListener into ….modulith.events in spring-modulith-events-api. 2023-10-15 17:13:45 +02:00
Oliver Drotbohm
c8b81e0737 GH-320 - Explicitly drop non-bootstrapped module beans during test run.
We now explicitly drop all beans resulting in a type that's contained in an application module *not* included in the current test bootstrap.
2023-10-13 23:02:40 +02:00
Oliver Drotbohm
61fa94ad63 GH-303 - Prepare next development iteration. 2023-09-21 23:35:47 +02:00
Oliver Drotbohm
6f5b3c0baa GH-303 - Release version 1.1.0-M1. 2023-09-21 23:35:47 +02:00
Oliver Drotbohm
19457cd736 GH-306 - Remove time zone from Postgres event publication schema. 2023-09-21 23:28:53 +02:00
Oliver Drotbohm
7c18d3f517 GH-269 - Upgrade to Spring Boot 3.2 M3 and Spring Framework 6.0.12. 2023-09-21 22:54:12 +02:00
Oliver Drotbohm
888c0a832b GH-308 - Upgrade to Lombok 1.18.30. 2023-09-21 13:10:30 +02:00
Oliver Drotbohm
01b73c6cc8 GH-307 - Upgrade to Artifactory Maven Plugin 3.6.1. 2023-09-21 13:09:18 +02:00
Oliver Drotbohm
f9f37feda8 GH-294 - Additional integration test for (Completed|Incomplete)EventPublications bean registration. 2023-09-21 12:11:31 +02:00
Oliver Drotbohm
2148328c5d GH-277 - Multicaster now honors listener condition.
We now reflectively invoke ApplicationListenerMethodAdapter.shouldHandle(…) when selecting event listeners to make sure that conditions defined in, for example, @TransactionalEventListener are considered before registering an event publication.
2023-09-21 08:56:30 +02:00
Oliver Drotbohm
f6a45c0355 GH-302 - Reduce scope of Events Core dependency in JDBC starter. 2023-09-20 23:08:03 +02:00
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