258 Commits

Author SHA1 Message Date
Oliver Drotbohm
c531e8df7b GH-1249 - Switch to Testcontainers for MongoDB integration tests. 2025-06-17 09:35:35 +02:00
Oliver Drotbohm
9ea2b24b53 GH-1192 - Migrate code base to jSpecify for nullness verification. 2025-05-28 15:35:34 +02:00
Oliver Drotbohm
d2b22aacfe GH-1208 - Prepare next development iteration. 2025-05-28 14:25:04 +02:00
Oliver Drotbohm
83957916b2 GH-1208 - Release version 1.4.0. 2025-05-26 21:14:04 +02:00
Oliver Drotbohm
dafa45fe26 GH-1179 - Remove explicit Hibernate version in JPA events module. 2025-04-30 10:03:15 +02:00
Oliver Drotbohm
73cf1d4576 GH-1155 - Prepare next development iteration. 2025-04-25 13:59:55 +02:00
Oliver Drotbohm
e345c1d476 GH-1155 - Release version 1.4.0-RC1. 2025-04-25 13:59:54 +02:00
Oliver Drotbohm
711c8449fa GH-1146 - Fix identifier comparison in event publications cache key. 2025-04-23 12:12:29 +02:00
Oliver Drotbohm
dc81a743f8 GH-1146 - Improve lookup of event publications in progress.
Instead of iterating over all publications currently in progress we now use a map to look them up by key.

Baseline
--------
Benchmark                        Mode  Cnt        Score      Error  Units
….inProgressPublicationsAccess  thrpt   50      312,155 ±    7,428  ops/s

Fixed
-----
Benchmark                        Mode  Cnt        Score      Error  Units
….inProgressPublicationsAccess  thrpt   50  2328732,504 ± 7809,092  ops/s
2025-04-18 17:13:21 +02:00
Oliver Drotbohm
47fa1fb056 GH-1130 - Polishing.
Simplify output to one line. Formatting, authorship.
2025-04-01 14:21:25 +02:00
조상준
12811a7f37 GH-1130 - Add debug log describing selected externalized events.
Original pull request: GH-1135
Signed-off-by: 조상준 <juncho12011201@gmail.com>
2025-04-01 14:20:53 +02:00
Oliver Drotbohm
fa946c148b GH-1122 - Consolidate automatic module names. 2025-03-22 15:17:47 +01:00
Oliver Drotbohm
6a98b3624e GH-1105 - Prepare next development iteration. 2025-03-21 11:52:23 +01:00
Oliver Drotbohm
48ecc12337 GH-1105 - Release version 1.4.0-M3. 2025-03-21 11:52:23 +01:00
Oliver Drotbohm
f0016c8164 GH-1094 - Prepare next development iteration. 2025-02-25 10:40:49 +01:00
Oliver Drotbohm
95acf1fcac GH-1094 - Release version 1.4.0-M2. 2025-02-25 10:40:48 +01:00
Oliver Drotbohm
c145ba5a07 GH-1051 - Only unregister resubmitted event publication in case of errors.
Before this commit the code resubmitting incomplete event publications unregistered them independently of whether they succeeded or not. We now only do that for failed submissions as an error here indicates a failure to *submit* the publication. As the execution is likely performed asynchronously, a successful hand-off does not implicate the publication being completely processed.
2025-02-23 13:13:24 +01:00
Oliver Drotbohm
a9365ed257 GH-1056 - Switch to object identity comparison when looking up event publications.
We now rather use an object identity comparison in TargetEventPublication.isAssociatedWith(…) instead of an ….equals(…) as that would return the wrong publication for identical events.
2025-02-21 22:55:12 +01:00
Oliver Drotbohm
4090499634 GH-1027 - Prepare next development iteration. 2025-01-23 22:16:36 +01:00
Oliver Drotbohm
36370ae31a GH-1027 - Release version 1.4.0-M1. 2025-01-23 22:16:36 +01:00
Oliver Drotbohm
f3f8deb3b3 GH-1024 - Remove AWS support in favor of Spring Cloud AWS.
Follow-up of GH-671.
2025-01-23 12:56:36 +01:00
Oliver Drotbohm
7fabc528b4 GH-1010 - Update copyright declarations to include 2025. 2025-01-06 16:58:45 +01:00
Oliver Drotbohm
9e2d96394f GH-964 - Prevent archiving JPA entity from being included in non-archiving setups.
We now keep the JPA entity classes to store current and archived event publications in separate packages so that the archiving one can be included only when the archiving mode is selected.
2024-11-25 13:59:56 +01:00
Oliver Drotbohm
f8728fc009 GH-955 - Prepare next development iteration. 2024-11-21 20:13:56 +01:00
Oliver Drotbohm
6f6597e163 GH-955 - Release version 1.3.0. 2024-11-21 20:13:55 +01:00
Oliver Drotbohm
b542c03b7d GH-870 - Fix Javadoc in PersistentApplicationEventMulticaster. 2024-11-21 12:59:41 +01:00
Oliver Drotbohm
55e4249d18 GH-937 - Fix logger creation in EventExternalizationSupport. 2024-11-18 16:23:41 +01:00
Oliver Drotbohm
7320b3bf4a GH-918 - Lazify archiving Cypher statement initialization.
Eagerly initializing the archiving Cypher statements required for the new archiving event completion mode breaks our compatibility with Spring Boot 3.2 as that depends on a Cypher library version not containing the exists(…) operator yet. We now lazily instantiate those statements.
2024-10-29 13:57:15 +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
Oliver Drotbohm
b189dbc725 GH-806 - Polish Neo4j archiving mode.
We now explicitly set the completion date property of newly created event publications to null. The copying data manipulation statements now properly copy all properties of the publication notes into the archive.
2024-10-25 22:03:25 +02:00
Cora Iberkleid
4132ad3a38 GH-806 - Add archive support for Neo4j.
Co-authored-by: Oliver Drotbohm <oliver.drotbohm@broadcom.com>
2024-10-25 22:03:25 +02:00
Oliver Drotbohm
d302ad1937 GH-806 - Revamp JPA archive support.
We now use two separate entity types for archived and non-archived event publications to rpevent hibernate hickups when inserting an instance of a subtype with he same id.
2024-10-25 22:03:24 +02:00
Cora Iberkleid
6a85fb3350 GH-806 - Add archive support for JPA.
Co-authored-by: Oliver Drotbohm <oliver.drotbohm@broadcom.com>
2024-10-25 22:03:24 +02:00
Oliver Drotbohm
dc1148624b GH-806 - MongoDB archive mode now uses aggregation to mark event publications completed. 2024-10-25 22:03:24 +02:00
Cora Iberkleid
a7e4a798f0 GH-806 - Add archive support for MongoDB.
Co-authored-by: Oliver Drotbohm <oliver.drotbohm@broadcom.com>
2024-10-25 22:03:24 +02:00
Cora Iberkleid
2cb0db7f42 GH-806 - Add archive support for JDBC.
Co-authored-by: Oliver Drotbohm <oliver.drotbohm@broadcom.com>
2024-10-25 22:03:24 +02:00
Cora Iberkleid
179e4acf86 GH-806 - Add archiving completion mode.
We now support an archiving completion mode that copies the entry to be completed into a dedicated archive to retain the completed event publications but also keep the main publication store small for more efficient data access.

Co-authored-by: Oliver Drotbohm <oliver.drotbohm@broadcom.com>
2024-10-25 22:03:23 +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
fe688cec1f GH-907 - Upgrade to Spring Boot 3.4 snapshots.
Tweak test containers setup for dynamic properties to adapt to Boot 3.4's new behavior [0].

[0] https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.4.0-RC1-Release-Notes#dynamic-properties-with-testcontainers
2024-10-25 13:13:08 +02:00
Oliver Drotbohm
cdd86a4ba1 GH-855 - Enable Kafka JSON rendering with default ObjectMapper.
In case no ObjectMapper bean instance is present, we now fall back to creating a default one to render a JSON byte array. This is useful in case Jackson is on the class path but not necessarily the JacksonObjectMapperBuilder, which is located in spring-web.
2024-10-25 08:45:05 +02:00
Oliver Drotbohm
29bc84cd0b GH-891 - DefaultEventPublicationRegistry now properly unregisters in-progress publication on failed resubmission.
DefaultEventPublicationRegistry.processIncompletePublications(…) now actively unregisters the publication from being considered in progress after completion (either successful or failed). While CompletionRegisteringAdvisor should take care of that on the target listeners we now leave the publications in progress in consistent state independent of the actual target being invoked. Decrease log level of the failed listener invocation as it's not unusual for the listener to fail.

Improved PublicationsInProgress by switching to a concurrent map internally to avoid ConcurrentModificationExceptions in case of multiple threads.
2024-10-21 13:49:29 +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
Andreas Ahlenstorf
2ba1785bfb GH-884 - Fix typo in package name in configuration metadata. 2024-10-18 16:56:32 +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
747834754e GH-873 - Upgrade to embedded MongoDB 4.16.1. 2024-10-13 19:43:50 +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
Josh Long
41aad245d4 GH-869 - Support for externalizing events into a Spring Messaging MessageChannel. 2024-10-13 19:43:49 +02:00
Oliver Drotbohm
5733a27ff4 GH-866 - Polishing.
Switch Oracle schema definition to make the serialized event column non null. Adapt test cases to always contain some content for the serialized event.

Original pull request: GH-868.
2024-10-11 11:10:32 +02:00