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.
Avoid explicit MySQL database driver dependency to align with Boot. DatabaseSchemaInitializer is now fully immutable, receiving the ResourceLoader in its constructor.
Switch to consistent usage of secrets via environment variables. Remove documentation generation from standard build. Some general POM polishing. A bit of release documentation.
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.
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.
- 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>
Upgrade to Spring Boot 3 and Java 17 as project baselines. Removed legacy JavaEE modules and replaced them by ones compatible with JakartaEE 9.
Disabled the Observability module for now as Spring Cloud Sleuth has been removed the Boot 3 compatible Spring Cloud branch and we need to migrate the module to Micrometer first.