Commit Graph

159 Commits

Author SHA1 Message Date
Oliver Drotbohm
7315c8a13e GH-514 - Release version 1.2.0-M2. 2024-02-23 16:54:57 +01:00
Oliver Drotbohm
ef7f114866 GH-510 - Upgrade to Spring Boot 3.3 M2.
Explicitly exclude Reactor Core to avoid the Neo4j reactive auto-configuration kicking in, now unconditionally registering a reactive transaction manager causing simple @Transactional declarations to break as two transaction manager beans are present.

Also upgrade to Spring Framework 6.1.4 for Javadoc reference.
2024-02-23 14:27:39 +01:00
Oliver Drotbohm
840a1b61b7 GH-403 - Polishing.
Added indexes for HSQLDB (after fix for GH-507). Removed by-listener index for MySQL as it would not be used anyway. Polished index names. Disable Spring Boot banners in tests.

Original pull request: GH-411.
2024-02-20 12:57:04 +01:00
Maciej Walkowiak
f440af943b GH-403 - Add database indexes in schema files.
Original pull request: GH-411.
2024-02-20 12:53:48 +01:00
Oliver Drotbohm
aa4b34c396 GH-507 - Improve database schema initialization for event publications.
We now use ResourceDatabasePopulator to execute the schema files creating the infrastructure for the event publication registry. This makes sure that the statements in those files are executed individually.

Related ticket: GH-403.
2024-02-20 12:53:47 +01:00
Oliver Drotbohm
43e479004d GH-491 - Polishing. 2024-02-09 12:46:35 +01:00
lukasdooo
5efc7e01f0 GH-491 - Only delete completed events. 2024-02-09 12:46:23 +01:00
Oliver Drotbohm
c5f73e675d GH-483 - Let CompletionRegisteringAdvisor forward EventExternalized event. 2024-01-29 18:42:55 +01:00
Oliver Drotbohm
c06a2c915e GH-474 - Prepare next development iteration. 2024-01-19 19:49:09 +01:00
Oliver Drotbohm
6f5886ddef GH-474 - Release version 1.2.0-M1. 2024-01-19 19:49:08 +01:00
Oliver Drotbohm
c32227bdfb GH-463 - Update copyright headers. 2024-01-17 19:45:40 +01:00
Oliver Drotbohm
6905fdd8ae GH-458 - Move off deprecated DatabaseDriver.fromDataSource(…). 2024-01-17 16:32:58 +01:00
Oliver Drotbohm
c4e6e8613d GH-451 - Polishing. 2024-01-16 20:18:00 +01:00
TAO
16cd708adf GH-435 - Fix potentially broken debug log output in PersistentApplicationEventMulticaster.
Swapped the ternary operator conditions for the 'message' variable assignment.

Fixes GH-435.
2024-01-16 20:06:18 +01:00
Oliver Drotbohm
a85a788ad2 GH-438 - Fix event externalization for RabbitMQ.
We now properly wrap the null value returned as a result from the RabbitMQ event externalization into a CompletableFuture. Tightened test case to prevent regressions going forward.
2024-01-16 19:16:36 +01:00
Oliver Drotbohm
dd6bb85e94 GH-451 - Introduce EventPublicationRepository.findCompletedPublications().
The default EventPublicationRegistry previously erroneously called find*In*completePublications(), i.e. returned incomplete publications when it was supposed to look up the completed ones. To be able to do the latter we need to extend EventPublicationRepository and introduce a query execution for all completed publications.

As we'd normally only chance API in major versions, but the bugfix needing to go into a bugfix release, the new method is introduced as default method rejecting the execution in case a currently existing repository implementation does not implement it. This allows us to adapt the implementations we ship to support the bugfix, but will require other implementations to ship an adapted version. This means we can ship a release that's not breaking assuming one of the official store implementations is used.
2024-01-16 18:09:26 +01:00
Oliver Drotbohm
31dfa45924 GH-443 - Declare most concrete type for EventPublicationRegistry configuration. 2024-01-10 14:46:42 +01:00
Oliver Drotbohm
da43c72828 GH-395 - Avoid event publication completion for failed CompletableFutures.
We now explicitly handle CompletableFuture instances returned from transactional event listeners by registering the completion handlers only on success, the debug logging on failure and immediately return the decorated instance.

Previously, a failed CompletableFuture instance would still have the publication marked completed as it doesn't cause any exception being thrown and thus ultimately ending up in the code path that issues the completion.
2023-11-28 15:27:17 +01:00
Oliver Drotbohm
5bb16e4c93 GH-393 - Prepare next development iteration. 2023-11-24 18:22:06 +01:00
Oliver Drotbohm
c6c0c0f500 GH-393 - Release version 1.1.0. 2023-11-24 18:22:06 +01:00
nkolosnjaji
2afa435722 GH-369 - Prefer MongoTemplate.findAndModify(…) over ….updateFirst(…).
Original pull request: GH-380.
2023-11-24 13:28:32 +01:00
Oliver Drotbohm
b4bb541649 GH-372 - Propagate original exception from CompletionRegisteringAdvisor.
We now propagate potentially occurring exceptions in CompletionRegisteringAdvisor to make sure the standard exception handling facilities kick in, both for synchronous and asynchronous listener invocations.

This implies that during republication we need to handle exceptions to make sure that failing synchronous listeners to not prevent the submission of subsequent publications. We currently log such exceptions into error.
2023-11-19 21:58:32 +01:00
Oliver Drotbohm
9f42ae4308 GH-368 - Polishing. 2023-11-14 11:02:21 +01:00
Oliver Drotbohm
80e53accf7 GH-368 - Integration tests. 2023-11-14 11:01:49 +01:00
Benjamin Knauer
74dda2cdae GH-368 - Consider filter handed into IncompleteEventPublications.resubmitIncompletePublications(…).
Original pull request: GH-367.
2023-11-14 11:00:41 +01:00
Oliver Drotbohm
a518707c7e GH-371 - Disable waiting for termination defaulting on Spring Framework 6.1.
We now skip the defaulting to wait of the pool shutdown termination on Spring Framework 6.1, as on that, pools implement Lifecycle and we need to wait for complete shutdown during Lifecycle.stop() already and setting the flag would delay that wait to the actual destruction phase.
2023-11-14 10:16:57 +01:00
Oliver Drotbohm
3692a209d7 GH-364 - Register reflection metadata for ApplicationListenerMethodAdapter.
The maintain general compatibility with Spring Framework 6.0, we issue a few reflective inspections on ApplicationListenerMethodAdapter. To make this work properly in native images, we now register those methods for GraalVM reflection.
2023-11-07 20:35:22 +01:00
Oliver Drotbohm
20a7474f2f GH-358 - Prepare next development iteration. 2023-11-03 09:02:46 +01:00
Oliver Drotbohm
6336e32d54 GH-358 - Release version 1.1.0-RC2. 2023-11-03 09:02:45 +01:00
Oliver Drotbohm
40ab6cecfc GH-357 - Reinstantiate general compatibility with Boot 3.2 / Framework 6.1.
We now gracefully fall back to reflective invocation of the application event listener shouldHandle(…) method if we're not on Spring Framework 6.2. If we are, we invoke the newly introduced method directly.

This allows projects to upgrade to Spring Modulith 1.1 without necessarily upgrading to Boot 3.2.
2023-11-02 14:27:52 +01:00
Oliver Drotbohm
e8898c1da1 GH-344 - Polishing.
Switch to DelegatingEventExternalizer APIs changed to return CompletableFuture. Imports, formatting. Drop dependencies not needed.
2023-11-02 08:22:28 +01:00
Maciej Walkowiak
d95da874bd GH-344 - Support for event externalization into AWS SNS and SQS.
Additional event externalization implementations for AWS SNS and SQS.

Original pull request: GH-350.
2023-11-02 08:22:28 +01:00
Oliver Drotbohm
0ae19fb301 GH-353 - Improvements in internal event externalization APIs.
DelegatingEventExternalizer.externalize(…) flavors now return a CompletableFuture to allow the target APIs to use asynchronous message sending and to transparently return a result from those invocations.
2023-11-01 23:48:06 +01:00
Oliver Drotbohm
e4190c47aa GH-346 - Allow explicit declaration of identifier in @ApplicationModuleListener. 2023-11-01 23:48:04 +01:00
Oliver Drotbohm
e5ca4f7183 GH-349 - Register parameters of methods annotated with @TransactionalEventListener for reflection. 2023-10-27 13:45:25 +02:00
Oliver Drotbohm
576b8f5074 GH-342 - Allow disabling event externalization.
We now expose spring.modulith.events.externalization.enabled that can be set to false to disable the event externalization completely. Useful in test cases, for example.
2023-10-23 12:22:42 +02:00
Oliver Drotbohm
69fd64dbf7 GH-341 - Prepare next development iteration. 2023-10-23 09:12:13 +02:00
Oliver Drotbohm
d4cde409a1 GH-341 - Release version 1.1.0-RC1. 2023-10-23 09:12:13 +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
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
db1c2b813e GH-322 - Move @ApplicationModuleListener into ….modulith.events in spring-modulith-events-api. 2023-10-15 17:13:45 +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
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
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