Browse Source

Upgrade to Flyway 11.14.0

This commit also suppresses deprecations introduced in Flyway 11.13.3.
A future release of Flyway should provide an alternative API to those
that are now deprecated and that we are still using.

See gh-47742
Closes gh-47562
pull/47747/head
Stéphane Nicoll 2 months ago
parent
commit
eca5bfc204
  1. 3
      module/spring-boot-flyway/src/main/java/org/springframework/boot/flyway/autoconfigure/NativeImageResourceProvider.java
  2. 6
      module/spring-boot-flyway/src/main/java/org/springframework/boot/flyway/autoconfigure/NativeImageResourceProviderCustomizer.java
  3. 7
      module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/Flyway100AutoConfigurationTests.java
  4. 21
      module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/FlywayAutoConfigurationTests.java
  5. 10
      module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/FlywayPropertiesTests.java
  6. 2
      platform/spring-boot-dependencies/build.gradle

3
module/spring-boot-flyway/src/main/java/org/springframework/boot/flyway/autoconfigure/NativeImageResourceProvider.java

@ -107,7 +107,7 @@ class NativeImageResourceProvider implements ResourceProvider { @@ -107,7 +107,7 @@ class NativeImageResourceProvider implements ResourceProvider {
private ClassPathResource asClassPathResource(LocatedResource locatedResource) {
Location location = locatedResource.location();
String fileNameWithAbsolutePath = location.getPath() + "/" + locatedResource.resource().getFilename();
String fileNameWithAbsolutePath = location.getRootPath() + "/" + locatedResource.resource().getFilename();
return new ClassPathResource(location, fileNameWithAbsolutePath, this.classLoader, this.encoding);
}
@ -124,6 +124,7 @@ class NativeImageResourceProvider implements ResourceProvider { @@ -124,6 +124,7 @@ class NativeImageResourceProvider implements ResourceProvider {
}
}
@SuppressWarnings("deprecation")
private void initialize() {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
for (Location location : this.locations) {

6
module/spring-boot-flyway/src/main/java/org/springframework/boot/flyway/autoconfigure/NativeImageResourceProviderCustomizer.java

@ -20,8 +20,6 @@ import java.util.Arrays; @@ -20,8 +20,6 @@ import java.util.Arrays;
import org.flywaydb.core.api.configuration.FluentConfiguration;
import org.flywaydb.core.api.migration.JavaMigration;
import org.flywaydb.core.internal.scanner.LocationScannerCache;
import org.flywaydb.core.internal.scanner.ResourceNameCache;
import org.flywaydb.core.internal.scanner.Scanner;
/**
@ -35,8 +33,8 @@ class NativeImageResourceProviderCustomizer extends ResourceProviderCustomizer { @@ -35,8 +33,8 @@ class NativeImageResourceProviderCustomizer extends ResourceProviderCustomizer {
@Override
public void customize(FluentConfiguration configuration) {
if (configuration.getResourceProvider() == null) {
Scanner<JavaMigration> scanner = new Scanner<>(JavaMigration.class, new ResourceNameCache(),
new LocationScannerCache(), configuration, configuration.getLocations());
Scanner<JavaMigration> scanner = new Scanner<>(JavaMigration.class, configuration,
configuration.getLocations());
NativeImageResourceProvider resourceProvider = new NativeImageResourceProvider(scanner,
configuration.getClassLoader(), Arrays.asList(configuration.getLocations()),
configuration.getEncoding(), configuration.isFailOnMissingLocations());

7
module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/Flyway100AutoConfigurationTests.java

@ -47,8 +47,13 @@ class Flyway100AutoConfigurationTests { @@ -47,8 +47,13 @@ class Flyway100AutoConfigurationTests {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getLocations())
.containsExactly(new Location("classpath:db/migration"));
.containsExactly(createLocation("classpath:db/migration"));
});
}
@SuppressWarnings("deprecation")
private static Location createLocation(String location) {
return new Location(location);
}
}

21
module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/FlywayAutoConfigurationTests.java

@ -344,7 +344,7 @@ class FlywayAutoConfigurationTests { @@ -344,7 +344,7 @@ class FlywayAutoConfigurationTests {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getLocations())
.containsExactly(new Location("classpath:db/migration"));
.containsExactly(createLocation("classpath:db/migration"));
});
}
@ -355,8 +355,8 @@ class FlywayAutoConfigurationTests { @@ -355,8 +355,8 @@ class FlywayAutoConfigurationTests {
.run((context) -> {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getLocations())
.containsExactly(new Location("classpath:db/changelog"), new Location("classpath:db/migration"));
assertThat(flyway.getConfiguration().getLocations()).containsExactly(
createLocation("classpath:db/changelog"), createLocation("classpath:db/migration"));
});
}
@ -368,8 +368,8 @@ class FlywayAutoConfigurationTests { @@ -368,8 +368,8 @@ class FlywayAutoConfigurationTests {
.run((context) -> {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getLocations())
.containsExactly(new Location("classpath:db/changelog"), new Location("classpath:db/migration"));
assertThat(flyway.getConfiguration().getLocations()).containsExactly(
createLocation("classpath:db/changelog"), createLocation("classpath:db/migration"));
});
}
@ -546,7 +546,7 @@ class FlywayAutoConfigurationTests { @@ -546,7 +546,7 @@ class FlywayAutoConfigurationTests {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getLocations()).containsExactlyInAnyOrder(
new Location("classpath:db/vendors/h2"), new Location("classpath:db/changelog"));
createLocation("classpath:db/vendors/h2"), createLocation("classpath:db/changelog"));
});
}
@ -559,7 +559,7 @@ class FlywayAutoConfigurationTests { @@ -559,7 +559,7 @@ class FlywayAutoConfigurationTests {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getLocations())
.containsExactly(new Location("classpath:db/vendors/h2"));
.containsExactly(createLocation("classpath:db/vendors/h2"));
});
}
@ -572,7 +572,7 @@ class FlywayAutoConfigurationTests { @@ -572,7 +572,7 @@ class FlywayAutoConfigurationTests {
assertThat(context).hasSingleBean(Flyway.class);
Flyway flyway = context.getBean(Flyway.class);
assertThat(flyway.getConfiguration().getCallbackLocations())
.containsExactly(new Location("classpath:com.example.h2"));
.containsExactly(createLocation("classpath:com.example.h2"));
});
}
@ -938,6 +938,11 @@ class FlywayAutoConfigurationTests { @@ -938,6 +938,11 @@ class FlywayAutoConfigurationTests {
};
}
@SuppressWarnings("deprecation")
private static Location createLocation(String location) {
return new Location(location);
}
private static Map<String, ?> configureJpaProperties() {
Map<String, Object> properties = new HashMap<>();
properties.put("configured", "manually");

10
module/spring-boot-flyway/src/test/java/org/springframework/boot/flyway/autoconfigure/FlywayPropertiesTests.java

@ -47,14 +47,13 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -47,14 +47,13 @@ import static org.assertj.core.api.Assertions.assertThat;
class FlywayPropertiesTests {
@Test
@SuppressWarnings("removal")
void defaultValuesAreConsistent() {
FlywayProperties properties = new FlywayProperties();
Configuration configuration = new FluentConfiguration();
assertThat(properties.isFailOnMissingLocations()).isEqualTo(configuration.isFailOnMissingLocations());
assertThat(properties.getLocations().stream().map(Location::new).toArray(Location[]::new))
assertThat(properties.getLocations().stream().map(this::toLocation).toArray(Location[]::new))
.isEqualTo(configuration.getLocations());
assertThat(properties.getCallbackLocations().stream().map(Location::new).toArray(Location[]::new))
assertThat(properties.getCallbackLocations().stream().map(this::toLocation).toArray(Location[]::new))
.isEqualTo(configuration.getCallbackLocations());
assertThat(properties.getEncoding()).isEqualTo(configuration.getEncoding());
assertThat(properties.getConnectRetries()).isEqualTo(configuration.getConnectRetries());
@ -154,6 +153,11 @@ class FlywayPropertiesTests { @@ -154,6 +153,11 @@ class FlywayPropertiesTests {
assertThat(configurationKeys).containsExactlyElementsOf(propertiesKeys);
}
@SuppressWarnings("deprecation")
private Location toLocation(String location) {
return new Location(location);
}
private void ignoreProperties(Map<String, ?> index, String... propertyNames) {
for (String propertyName : propertyNames) {
assertThat(index.remove(propertyName)).describedAs("Property to ignore should be present " + propertyName)

2
platform/spring-boot-dependencies/build.gradle

@ -375,7 +375,7 @@ bom { @@ -375,7 +375,7 @@ bom {
javadoc("elasticsearch-java", version -> "https://javadoc.io/doc/co.elastic.clients/elasticsearch-java/%s/index.html".formatted(version), "co.elastic.clients.elasticsearch", "co.elastic.clients.transport")
}
}
library("Flyway", "11.13.1") {
library("Flyway", "11.14.1") {
group("org.flywaydb") {
modules = [
"flyway-commandline",

Loading…
Cancel
Save