Commit Graph

673 Commits

Author SHA1 Message Date
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
8d067e8107 GH-885 - Update docs to reflect renaming of property. 2024-10-18 16:59:35 +02:00
Andreas Ahlenstorf
2ba1785bfb GH-884 - Fix typo in package name in configuration metadata. 2024-10-18 16:56:32 +02:00
Andrey Antipov
1acc5aa888 GH-882 - Fix Kotlin example in fundamentals section. 2024-10-18 16:46:42 +02:00
Oliver Drotbohm
6da5d1dafb GH-874 - Add LICENSE and NOTICE files to binaries. 2024-10-14 22:14:51 +02:00
Oliver Drotbohm
cbcd1dac28 GH-850 - Mention test starter in testing reference documentation chapter. 2024-10-14 17:32:09 +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
413e2f50b6 GH-846 - Fix module identifier lookup for jMolecules @Module(id = …).
We now properly translate jMolecules' @Module declaration configuring the id attribute explicitly into the identifier used for an application module.

Introduce @ApplicationModule(id = …) for Spring Modulith-native identifier customization.
2024-10-13 19:42:43 +02:00
Oliver Drotbohm
de4668319c GH-872 - Switch test execution log output to use ApplicationModuleIdentifiers. 2024-10-13 19:41:51 +02:00
Oliver Drotbohm
f8b88dcf98 GH-872 - Move JUnit integration to ApplicationModuleIdentifiers. 2024-10-13 19:41:51 +02:00
Oliver Drotbohm
68185a7aef GH-872 - Introduce proper identifiers for ApplicationModules.
Introduced ApplicationModuleIdentifier that ensures that identifiers chosen for application modules do not contain a double colon (::) as we need those as separator characters for manual dependency declarations referring to named interfaces.
2024-10-13 19:41: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
DSX
5dee1bd9cf GH-866 - JDBC event publication support for Oracle database.
We now support Oracle as database backend for the JDBC-based EventPublicationRegistry.

Original pull request: GH-868.
2024-10-11 11:10:04 +02:00
Oliver Drotbohm
5f1d3903b0 GH-861 - Polishing. 2024-10-08 22:00:18 +02:00
Oliver Drotbohm
4be1862075 GH-865 - Aggregating documentation now renders PlantUML files as SVG. 2024-10-08 20:32:11 +02:00
Oliver Drotbohm
9464e83ea4 GH-854 - Polish rendering of events listened to in Application Module Canvases. 2024-10-08 20:18:52 +02:00
Oliver Drotbohm
5b2301584d GH-864 - Upgrade to Develocity conventions 0.0.22. 2024-10-08 17:29:32 +02:00
Oliver Drotbohm
6ac2b786eb GH-854 - Automatically include Spring Boot configuration processor in APT module. 2024-10-08 17:28:39 +02:00
Oliver Drotbohm
d7d2a2750f GH-860 - Switch to managed plugin dependencies in APT module. 2024-10-08 17:27:52 +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
e3077a7abd GH-862 - Trigger jMolecules architecture verifications if present on the classpath. 2024-10-08 11:14:06 +02:00
Oliver Drotbohm
9b11606425 GH-861 - JUnit change detection now properly detects changes in current working directory.
Added a decorating FileModificationDetector implementation that filters changes to only return those that affect the current working directory, so that the detection works properly if executed from a nested folder in multi-module projects.
2024-10-08 11:10:21 +02:00
Oliver Drotbohm
963ac173e9 GH-860 - Use <pluginManagement /> section to manage build plugin versions. 2024-10-06 13:13:45 +02:00
Oliver Drotbohm
db40cd3da3 GH-854 - Polishing.
Fix invalid @see tag.
2024-10-06 12:59:12 +02:00
Oliver Drotbohm
9d249961c3 GH-859 - Avoid creating a transaction for event externalization.
We now use the ability to override transaction propagation introduce for GH-858 to tweak the application module listener declaration on DelegatingEventListener so that we do not create a transaction by default. This avoids a database connection being acquired as the listener is very likely to interact with a non-transactional resource anyway.
2024-10-06 12:54:17 +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
Roland Weisleder
d6feb70752 GH-853 - Update quickstart section in readme to current version. 2024-10-06 12:10:31 +02:00
Oliver Drotbohm
f1c318b1d3 GH-857 - Add Microsoft SQL Server schema to reference documentation. 2024-10-05 00:07:20 +02:00
Oliver Drotbohm
2d3a7026a9 GH-856 - Upgrade to jMolecules 2023.1.5. 2024-10-05 00:02:16 +02:00
Oliver Drotbohm
1708f5e181 GH-854 - Spring Modulith-native support for Javadoc usage in Application Module Canvases.
We now ship our own APT (included in the core starter) that automatically extracts the user code's Javadoc into a metadata file in generated-spring-modulith/javadoc.json. The documentation generation support picks up that file through SpringModulithDocumentationSource. Asciidoctor has been extended to make more use of the Javadoc where ever it renders a plain type.
2024-10-03 23:38:57 +02:00
Oliver Drotbohm
2a807cc213 GH-840 - Fix artifact listing in reference documentation. 2024-09-24 11:36:23 +02:00
Marcin Słowiak
0ea5f326db GH-671 - Deprecate AWS SNS and SQS integration modules.
In favor of the implementations now available in Spring Cloud AWS [0].

[0] https://github.com/awspring/spring-cloud-aws/releases/tag/v3.2.0
2024-09-24 11:31:14 +02:00
FezLight
e0b79e5fb1 GH-836 - Add support for MariaDB database. 2024-09-24 11:23:05 +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
438f17b56d GH-813 - Introduce FormattableType.
As replacement for misspelled Formatable type.
2024-09-20 22:02:17 +02:00
Oliver Drotbohm
9d818b467c GH-824 - Upgrade to Spring Framework 6.2 RC1. 2024-09-19 18:10:04 +02:00
Oliver Drotbohm
797809d6d0 GH-824 - Upgrade to Spring Boot 3.4 M3. 2024-09-19 18:03:46 +02:00
Nils Breunese
4215b35d27 GH-820 - Update to Maven 3.9.9. 2024-09-17 09:19:19 +02:00
Oliver Drotbohm
3773c0d175 GH-31 - Fix build resource file detection for test execution optimizations. 2024-09-16 17:42:16 +02:00
Oliver Drotbohm
a391e86ee8 GH-823 - Update reference docs after republication property deprecation. 2024-09-16 15:36:22 +02:00
Oliver Drotbohm
1092184258 GH-31 - Reference documentation for test optimizations. 2024-09-16 15:36:22 +02:00
Oliver Drotbohm
d041c6d52e GH-31 - Polishing.
Added unit tests for the test execution conditions.

Add JUnit module to the BOM. Moved the jGit version into a managed property in the root pom.xml.
2024-09-16 15:36:22 +02:00
Lukas Dohmen
8cf3920af9 GH-31 - Support for optimized test execution.
Initital prototype to support optimized test execution based on the Spring Modulith application module model. The change introduces a new artifact spring-modulith-junit that extends JUnit's test execution lifecycle. It obtains the ApplicationModules model for the application and potentially skips test classes for execution in case the changes made to the application reside in modules the current test case's module does not depend on.

Co-authored-by: Lukas Dohmen <l.dohmen@yahoo.de>
Co-authored-by: David Bilge <david.bilge@gmail.com>
2024-09-16 15:36:21 +02:00
Oliver Drotbohm
db4ab8f55d GH-823 - Move spring.modulith.republish-outstanding-events-on-restart into spring.modulith.events namespace. 2024-09-13 17:51:22 +02:00