From 0fbd776239f886ce43bcbff7897a90a0fe1ef827 Mon Sep 17 00:00:00 2001 From: Oliver Drotbohm Date: Sun, 30 Apr 2023 17:20:04 +0200 Subject: [PATCH] =?UTF-8?q?GH-194=20-=20Switch=20to=20spring.modulith.even?= =?UTF-8?q?ts.jdbc.=E2=80=A6=20namspace=20for=20data=20initialization=20pr?= =?UTF-8?q?operties.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The legacy ones are still supported but the data initialization properties have been moved to a new spring.modulith.events.jdbc.… namespace. --- ...JdbcEventPublicationAutoConfiguration.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationAutoConfiguration.java b/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationAutoConfiguration.java index 0de3a211..862ea673 100644 --- a/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationAutoConfiguration.java +++ b/spring-modulith-events/spring-modulith-events-jdbc/src/main/java/org/springframework/modulith/events/jdbc/JdbcEventPublicationAutoConfiguration.java @@ -17,9 +17,11 @@ package org.springframework.modulith.events.jdbc; import javax.sql.DataSource; +import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.jdbc.DatabaseDriver; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ResourceLoader; import org.springframework.jdbc.core.JdbcTemplate; @@ -47,10 +49,28 @@ class JdbcEventPublicationAutoConfiguration implements EventPublicationConfigura } @Bean - @ConditionalOnProperty(name = "spring.modulith.events.jdbc-schema-initialization.enabled", havingValue = "true") + @Conditional(SchemaInitializationEnabled.class) DatabaseSchemaInitializer databaseSchemaInitializer(JdbcTemplate jdbcTemplate, ResourceLoader resourceLoader, DatabaseType databaseType) { return new DatabaseSchemaInitializer(jdbcTemplate, resourceLoader, databaseType); } + + /** + * Combined condition to support the legacy schema initialization property as well as the new one. + * + * @author Oliver Drotbohm + */ + static class SchemaInitializationEnabled extends AnyNestedCondition { + + public SchemaInitializationEnabled() { + super(ConfigurationPhase.PARSE_CONFIGURATION); + } + + @ConditionalOnProperty(name = "spring.modulith.events.jdbc-schema-initialization.enabled", havingValue = "true") + static class LegacyPropertyEnabled {} + + @ConditionalOnProperty(name = "spring.modulith.events.jdbc.schema-initialization.enabled", havingValue = "true") + static class NewPropertyEnabled {} + } }