Commit Graph

45 Commits

Author SHA1 Message Date
Oliver Drotbohm
71d80c6188 GH-955 - Prepare next development iteration. 2024-11-25 12:20:05 +01:00
Oliver Drotbohm
6f6597e163 GH-955 - Release version 1.3.0. 2024-11-21 20:13:55 +01:00
Oliver Drotbohm
3d35d48d18 GH-912 - Prepare next development iteration. 2024-10-26 15:58:59 +02:00
Oliver Drotbohm
05c5550312 GH-912 - Release version 1.3.0-RC1. 2024-10-26 15:58:59 +02:00
Cora Iberkleid
80f6086034 GH-806 - Remove use of Lombok.
Co-authored-by: Oliver Drotbohm <oliver.drotbohm@broadcom.com>
2024-10-25 22:03:23 +02:00
Oliver Drotbohm
d5477d1423 GH-881 - Support for SpEL expression in routing targets.
We now support SpEL expressions in routing targets for events to be externalized. Introduced a BrokerRouting.getTarget(Object) overload to allow access to the event object in the SpEL expression. To support those, event externalizers will have to call that method where they previously called ….getTarget().
2024-10-18 21:01:28 +02:00
Oliver Drotbohm
6da5d1dafb GH-874 - Add LICENSE and NOTICE files to binaries. 2024-10-14 22:14:51 +02:00
Oliver Drotbohm
84e9f38b07 GH-855 - Support to add headers in event externalization.
EventExternalizationConfiguration now exposes a ….headers(Class<T>, Function<T, Map<String, Object>) to allow to define a function that extracts headers from the event that are supposed to added to the message to be sent out. The Kafka and AMQP implementations have been augmented to consider those configurations.

Furthermore, if the mapping step prior to the externalization creates a Spring Message<?>, we add routing information as fallback and send it out as is.
2024-10-13 20:17:12 +02:00
Oliver Drotbohm
a8835b211b GH-869 - Polishing.
Tweak header population to use the raw routing target. Expand test case to make sure it's retained as message header.
2024-10-13 19:43:50 +02:00
Oliver Drotbohm
42a9c48e80 GH-863 - Add convenience method for creating a default EventExternalizationConfiguration. 2024-10-08 15:09:12 +02:00
Oliver Drotbohm
f00e5dc0eb GH-858 - Polishing. 2024-10-06 12:44:10 +02:00
Oliver Drotbohm
d510697afa GH-858 - Allow customizing transaction propagation on @ApplicationModuleListener. 2024-10-06 12:44:01 +02:00
Oliver Drotbohm
0c2f79a56d GH-803 - Prepare next development iteration. 2024-09-20 23:26:04 +02:00
Oliver Drotbohm
a3ed03cff3 GH-803 - Release version 1.3.0-M3. 2024-09-20 23:26:03 +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
Oliver Drotbohm
9a908ee275 GH-754 - Rename EventPublication.isPublicationCompleted() to ….isCompleted(). 2024-08-07 21:25:58 +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
1aef1b6191 GH-605 - Prepare next development iteration. 2024-05-24 12:56:39 +02:00
Oliver Drotbohm
0d74b1b1d0 GH-605 - Release version 1.2.0. 2024-05-24 12:56:39 +02:00
Oliver Drotbohm
742ca82f8b GH-561 - Prepare next development iteration. 2024-04-19 18:56:33 +02:00
Oliver Drotbohm
c8ec877bc7 GH-561 - Release version 1.2.0-RC1. 2024-04-19 18:56:33 +02:00
Oliver Drotbohm
6b839cf6dc GH-525 - Prepare next development iteration. 2024-03-22 11:41:33 +01:00
Oliver Drotbohm
c441fdf535 GH-525 - Release version 1.2.0-M3. 2024-03-22 11:41:33 +01:00
Oliver Drotbohm
60de42bf6c GH-518 - Support for conditions on @ApplicationModuleListener. 2024-03-14 18:07:43 +01:00
Oliver Drotbohm
b73b4ca70a GH-514 - Prepare next development iteration. 2024-02-23 16:54:58 +01:00
Oliver Drotbohm
7315c8a13e GH-514 - Release version 1.2.0-M2. 2024-02-23 16:54:57 +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
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
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
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
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
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
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