From 8324fc5ab375bbcd1f01c60b541af9ffccf863ca Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Fri, 11 Aug 2023 16:43:12 +0200 Subject: [PATCH] Make sure the default datasource FlywayContainer is returned first Ideally we wouldn't rely on this but given we had a test relying on it, better keep this behavior given it doesn't cost much. (cherry picked from commit ec04931ef0f298f1f5e24491c3940d63879ba0e5) --- .../src/main/java/io/quarkus/flyway/FlywayProcessor.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/extensions/flyway/deployment/src/main/java/io/quarkus/flyway/FlywayProcessor.java b/extensions/flyway/deployment/src/main/java/io/quarkus/flyway/FlywayProcessor.java index 3e3a944f670c6..1fb06fce2b9c2 100644 --- a/extensions/flyway/deployment/src/main/java/io/quarkus/flyway/FlywayProcessor.java +++ b/extensions/flyway/deployment/src/main/java/io/quarkus/flyway/FlywayProcessor.java @@ -200,6 +200,10 @@ void createBeans(FlywayRecorder recorder, if (DataSourceUtil.isDefault(dataSourceName)) { flywayContainerConfigurator.addQualifier(Default.class); + // Flyway containers used to be ordered with the default database coming first. + // Some multitenant tests are relying on this order. + flywayContainerConfigurator.priority(10); + flywayContainerQualifier = AnnotationInstance.builder(Default.class).build(); } else { String beanName = FLYWAY_CONTAINER_BEAN_NAME_PREFIX + dataSourceName; @@ -208,6 +212,7 @@ void createBeans(FlywayRecorder recorder, flywayContainerConfigurator.addQualifier().annotation(DotNames.NAMED).addValue("value", beanName).done(); flywayContainerConfigurator.addQualifier().annotation(FlywayDataSource.class).addValue("value", dataSourceName) .done(); + flywayContainerConfigurator.priority(5); flywayContainerQualifier = AnnotationInstance.builder(FlywayDataSource.class).add("value", dataSourceName) .build(); @@ -225,9 +230,11 @@ void createBeans(FlywayRecorder recorder, if (DataSourceUtil.isDefault(dataSourceName)) { flywayConfigurator.addQualifier(Default.class); + flywayConfigurator.priority(10); } else { String beanName = FLYWAY_BEAN_NAME_PREFIX + dataSourceName; flywayConfigurator.name(beanName); + flywayConfigurator.priority(5); flywayConfigurator.addQualifier().annotation(DotNames.NAMED).addValue("value", beanName).done(); flywayConfigurator.addQualifier().annotation(FlywayDataSource.class).addValue("value", dataSourceName).done();