This is an automated email from the git hooks/post-receive script. New commit to branch feature/666_flyway_6 in repository topia. See https://gitlab.nuiton.org/nuiton/topia.git commit 57c1a1601b240f79790476343c24321f32379e49 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Aug 29 17:13:14 2019 +0200 Allow flyway configuration via topia configuration --- .../topia/flyway/TopiaFlywayServiceImpl.java | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/topia-service-flyway/src/main/java/org/nuiton/topia/flyway/TopiaFlywayServiceImpl.java b/topia-service-flyway/src/main/java/org/nuiton/topia/flyway/TopiaFlywayServiceImpl.java index 3580cae1..25f5c348 100644 --- a/topia-service-flyway/src/main/java/org/nuiton/topia/flyway/TopiaFlywayServiceImpl.java +++ b/topia-service-flyway/src/main/java/org/nuiton/topia/flyway/TopiaFlywayServiceImpl.java @@ -28,6 +28,7 @@ import com.google.common.base.Preconditions; import com.google.common.base.Strings; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; @@ -40,6 +41,7 @@ import org.flywaydb.core.api.MigrationInfo; import org.flywaydb.core.api.MigrationVersion; import org.flywaydb.core.api.configuration.ClassicConfiguration; import org.flywaydb.core.api.configuration.Configuration; +import org.flywaydb.core.internal.configuration.ConfigUtils; import org.nuiton.topia.persistence.TopiaApplicationContext; import org.nuiton.topia.persistence.TopiaException; import org.nuiton.topia.persistence.TopiaMigrationServiceException; @@ -58,6 +60,20 @@ import java.util.TreeSet; /** * Implementation for {@link org.nuiton.topia.flyway.TopiaFlywayService}. * + * Since 3.7, this implementation allows you to configure flyway using + * this service configuration. You can use all configuration constants + * as shown in {@link ConfigUtils}. + * + * Example properties: + * + * <pre> + * # let's declare a service named "migration" + * topia.service.migration=org.nuiton.topia.flyway.TopiaFlywayServiceImpl + * + * # let's configure that service using {@link ConfigUtils#TABLE} + * topia.service.migration.flyway.table=schema_version + * </pre> + * * @since 3.0 */ public class TopiaFlywayServiceImpl implements TopiaFlywayService { @@ -107,7 +123,9 @@ public class TopiaFlywayServiceImpl implements TopiaFlywayService { useModelVersion = Boolean.valueOf(useModelVersionString); } - flywayConfiguration = newFlywayConfiguration(topiaApplicationContext); + Map<String, String> flywayParametersFromTopiaConfiguration = Maps.filterKeys(serviceConfiguration, key -> key.startsWith("flyway.")); + + flywayConfiguration = newFlywayConfiguration(topiaApplicationContext, flywayParametersFromTopiaConfiguration); if (log.isInfoEnabled()) { log.info("flyway configuration " + toString(flywayConfiguration)); @@ -115,10 +133,11 @@ public class TopiaFlywayServiceImpl implements TopiaFlywayService { } - protected ClassicConfiguration newFlywayConfiguration(TopiaApplicationContext topiaApplicationContext) { + protected ClassicConfiguration newFlywayConfiguration(TopiaApplicationContext topiaApplicationContext, Map<String, String> flywayParametersFromTopiaConfiguration) { ClassicConfiguration newFlywayConfiguration = new ClassicConfiguration(); setDataSource(newFlywayConfiguration, topiaApplicationContext); setLocations(newFlywayConfiguration, topiaApplicationContext); + newFlywayConfiguration.configure(flywayParametersFromTopiaConfiguration); doExtraConfiguration(newFlywayConfiguration, topiaApplicationContext); return newFlywayConfiguration; } -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.