Commit Graph

54 Commits

Author SHA1 Message Date
Oliver Drotbohm
ff8df678e7 GH-125 - More detailed logging of pending event publication lookup on startup. 2023-01-26 09:30:50 +01:00
Oliver Drotbohm
3c25958edc GH-123 - Prepare next development iteration. 2023-01-20 10:16:34 +01:00
Oliver Drotbohm
43bea11041 GH-123 - Release version 0.3.0. 2023-01-20 10:16:34 +01:00
Oliver Drotbohm
9082ca27bb GH-118 - Reworked infrastructure to complete event publications.
Previously we used a dedicated BeanPostProcessor to decorate beans that expose transactional event listeners with an interceptor to mark event publications as completed if the method invocation completes successfully. We now have simplified the arrangement by using Spring's auto-proxy creation and registering an Advisor implementation. This allows us to properly and reliably  order the interceptor between the async one (goes before ours) and the transactional one (goes after ours). Also, this significantly simplifies the implementation of the interceptor as we can assume only commit listener methods being intercepted in the first place.
2023-01-16 21:57:45 +01:00
Oliver Drotbohm
0d009f06c9 GH-111 - Package and publish Javadoc.
A lot of Javadoc polish. Not done yet.
2023-01-12 16:20:20 +01:00
Oliver Drotbohm
9ce6bf23ae GH-14 - Remove Lombok from production sources.
Polished a lot of Javadoc.
2023-01-12 01:05:35 +01:00
Oliver Drotbohm
91c746c63c GH-105 - Prevent Testcontainers-based tests from failing if no Docker is available. 2023-01-05 16:39:26 +01:00
Oliver Drotbohm
4e13fbf7f8 GH-99 - Extend license headers to 2023. 2023-01-02 18:12:29 +01:00
Oliver Drotbohm
2d933d07c5 GH-92 - Prepare next development iteration. 2022-12-23 17:32:38 +01:00
Oliver Drotbohm
888055cf7c GH-92 - Release version 0.2.0. 2022-12-23 17:32:37 +01:00
Oliver Drotbohm
986ee1bb85 GH-90 - Upgrade to Flapdoodle MongoDB 4.3.2 (Boot 3 compatible).
Allows us to get rid of the custom MongoDB infrastructure test configuration.
2022-12-23 16:53:29 +01:00
Oliver Drotbohm
486f7e0c86 GH-81 - Change Postgres event publication schema to follow best practices.
* No uppercase table and column names [0]
* Don't use varchar(n) by default [1]
* Don't use timestamp(…) or timestamptz(…)

[0] https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don't_use_upper_case_table_or_column_names
[1] https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don't_use_varchar(n)_by_default
[2] https://wiki.postgresql.org/wiki/Don%27t_Do_This#Don't_use_timestamp(0)_or_timestamptz(0)
2022-12-02 17:33:04 +01:00
Oliver Drotbohm
ac072805b8 GH-78 - Prepare next development iteration. 2022-11-24 23:30:15 +01:00
Oliver Drotbohm
7f1e22db63 GH-78 - Release version 0.1.0. 2022-11-24 23:30:15 +01:00
Oliver Drotbohm
5542cd172d GH-77 - Avoid release event support integration tests to Maven Central. 2022-11-24 23:18:52 +01:00
Oliver Drotbohm
9d95d8715d GH-71 - Prepare next development iteration. 2022-11-16 22:48:27 +01:00
Oliver Drotbohm
3ce2be3c55 GH-71 - Release version 0.1.0-RC1. 2022-11-16 22:48:27 +01:00
Oliver Drotbohm
55b16857f3 GH-69 - Switch to Stream.toList(). 2022-11-11 18:49:03 +01:00
Oliver Drotbohm
dc065653e5 GH-61 - Prepare next development iteration. 2022-11-02 18:45:47 +01:00
Oliver Drotbohm
7a7b49809f GH-61 - Release version 0.1.0-M2. 2022-11-02 18:45:47 +01:00
Oliver Drotbohm
f53ff168f1 GH-21 - Prepare next development iteration. 2022-10-21 11:41:36 +02:00
Oliver Drotbohm
48876e5800 GH-21 - Release version 0.1.0-M1. 2022-10-21 11:41:01 +02:00
Oliver Drotbohm
757e24382c GH-3 - Fix dependency declaration of MySQL Java driver. 2022-10-21 11:17:23 +02:00
Oliver Drotbohm
f82cc11562 GH-3 - Make tests for DatabaseSchemaInitializer more robust against execution order.
The tests previously asserted on no entries being found in the event publication tables. As other tests might have been run before, they could already contain some.
2022-10-21 11:11:27 +02:00
Oliver Drotbohm
ae692e3ac1 GH-45 - Upgrade to Flapdoodle MongoDB 3.5.0. 2022-10-17 12:53:36 +02:00
Oliver Drotbohm
3669d3476e GH-1 - Remove obsolete events starter module. 2022-09-26 21:34:43 +02:00
Oliver Drotbohm
0740edd769 GH-3 - Consistent formatting in schema SQL. 2022-09-20 17:22:58 +02:00
Oliver Drotbohm
2391c758a7 GH-38 - Register Jackson modules available in ApplicationContext in default ObjectMapper. 2022-09-12 15:45:52 +02:00
Oliver Drotbohm
792efa6051 GH-1 - Polish logging incomplete event publications on shutdown. 2022-07-28 19:37:13 +02:00
Oliver Drotbohm
7cf3892360 GH-20 - Polishing. 2022-07-28 19:37:13 +02:00
Oliver Drotbohm
9a52daa0f6 GH-20 - Polishing. 2022-07-28 16:34:24 +02:00
Oliver Drotbohm
af99902951 GH-29 - Polishing.
Added missing Apache license header to test.
2022-07-28 16:29:37 +02:00
Bjoern Kieling
c2f1f1907d GH-20 - Extend repository with capability to delete all completed publications
Signed-off-by: Dmitry Belyaev <dbelyaev@vmware.com>
2022-07-28 14:21:28 +02:00
Bjoern Kieling
1a14e4f9df GH-27 - Remove in-memory implementation of EventPublicationRepository
Signed-off-by: Dmitry Belyaev <dbelyaev@vmware.com>
2022-07-28 11:58:33 +02:00
Oliver Drotbohm
582ad361ae GH-29 - Polishing.
Avoid explicit MySQL database driver dependency to align with Boot. DatabaseSchemaInitializer is now fully immutable, receiving the ResourceLoader in its constructor.
2022-07-28 11:46:21 +02:00
Bjoern Kieling
9b9546f32e GH-29 - Add MySQL support. Introduce DatabaseType to assemble all database type specific code.
Signed-off-by: Dmitry Belyaev <dbelyaev@vmware.com>
2022-07-28 11:33:42 +02:00
Oliver Drotbohm
3ab5072e1e GH-18 - Polishing.
Switch to consistent usage of secrets via environment variables. Remove documentation generation from standard build. Some general POM polishing. A bit of release documentation.
2022-07-28 08:46:11 +02:00
Oliver Drotbohm
9512c36c32 GH-25 - Polishing. 2022-07-27 13:23:54 +02:00
Dmitry Belyaev
97a5051930 GH-25 - Fix #findByEventAndTargetIdentifier in all repositories to return only incomplete EventPublications. Rename the method accordingly.
Signed-off-by: Björn Kieling <bkieling@vmware.com>
2022-07-27 13:16:11 +02:00
Oliver Drotbohm
3916082d6f GH-17 - Polishing.
Formatting. Nullability constraints.
2022-07-27 13:05:26 +02:00
Dmitry Belyaev
ce1ef8c540 GH-17 - Bootstrap PostgreSQL in a container and execute integration tests against it
Signed-off-by: Björn Kieling <bkieling@vmware.com>
2022-07-27 11:51:48 +02:00
Oliver Drotbohm
48a2686112 GH-4 - Add Spring Boot autoconfiguration for the MongoDB event publication registry. 2022-07-26 18:05:48 +02:00
Oliver Drotbohm
9f5d8ec63b GH-4 - Polishing.
Turn embedded MongoDB test setup into proper bean definitions to make sure databases get started and shut down properly with ApplicationContexts. Previously, the database was held in a static variable shut down after a particular test class had been concluded but bean instances held in the cached (and potentially reused ApplicationContext) were still referring to that already shut down database which prevented then from shutting down properly.
2022-07-26 18:04:24 +02:00
Dmitry Belyaev
314a3823ad GH-4 - Implement MongoDB-based event publication repository
Signed-off-by: Björn Kieling <bkieling@vmware.com>
2022-07-26 11:53:40 +02:00
Oliver Drotbohm
3899d9d59c GH-3 - Polishing.
A couple of renames in the exposed APIs. MapBasedEventPublicationRepository now uses a a TreeMap again instead of a List (closer to what the original EventPublicationRegistry did).

Cleanups in the JDBC event registry module. Polish pom.xml to minimize dependencies. Removed custom DatabaseType in favor of Boot's DatabaseDriver. Tweaked the auto-configuration of the JDBC module to not even expose a DatabaseSchemaInitializer in the first place to avoid having to wire the boolean flag into the latter.

Cleanups in test cases to avoid code duplication. Move to @JdbcTest to avoid having to depend on Spring Data JDBC.

Enable nullability checks, formatting, Javadoc, author tags, missing license headers.
2022-07-22 22:24:23 +02:00
Dmitry Belyaev
6a4260471e GH-3 - Implement JDBC based repository
Signed-off-by: Björn Kieling <bkieling@vmware.com>
2022-07-21 15:11:28 +02:00
Björn Kieling
913ec7bb4e GH-3 - Refactor events registration to prepare easy addition of new repository types.
- Introduce Repository interface as a customization point
- Get rid of Registry interface by having one generic implementation
- Combine EventPublication and all its subclasses in one domain object
- Make Repository instead of Registry be dependent on EventSerializer

Signed-off-by: Dmitry Belyaev <dbelyaev@vmware.com>
2022-07-21 15:11:28 +02:00
Oliver Drotbohm
82c18fe509 GH-9 - Rename core, public abstractions from Module to ApplicationModule.
Remove obsolete @since tags and deprecations.
2022-07-19 15:34:44 +02:00
Oliver Drotbohm
8ba6c11e3d GH-1 - Consistent license years and HTTPS URLs. 2022-07-19 15:04:52 +02:00
Oliver Drotbohm
48ea08ae59 GH-1 - Consistent author names. 2022-07-19 15:02:00 +02:00