From 22b1992d289689b46a661eaa9bd29fdd6062d0d7 Mon Sep 17 00:00:00 2001 From: Ramzi Maalej Date: Wed, 6 Apr 2022 10:08:46 -0700 Subject: [PATCH] Update Flyway version to 8.5.5 --- pom.xml | 2 +- readme.md | 1 + .../flyway_csv/api/migration/CSVMigration.java | 2 ++ .../api/migration/CSVMigrationMetadata.java | 14 ++++++++++---- .../api/migration/CSVResolvedMigration.java | 8 ++++++-- .../impl/executor/CSVMigrationExecutor.java | 13 ++++++++++--- .../impl/resolver/CSVMigrationResolver.java | 13 ++++++++----- .../flyway_csv/utils/MigrationInfoHelper.java | 4 ++-- src/test/java/CSVResolvedMigrationTest.java | 5 +++-- 9 files changed, 43 insertions(+), 19 deletions(-) diff --git a/pom.xml b/pom.xml index c254c21..6ab8a33 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ org.flywaydb flyway-core - 6.5.7 + 8.5.5 org.apache.commons diff --git a/readme.md b/readme.md index c5d125d..01df9db 100644 --- a/readme.md +++ b/readme.md @@ -24,6 +24,7 @@ Add dependency to your project. Tag ``` +Make sure to change `Tag` with the version number you want to use. Resolver diff --git a/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigration.java b/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigration.java index 8ee8694..a5915c6 100644 --- a/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigration.java +++ b/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigration.java @@ -68,6 +68,8 @@ public interface CSVMigration extends ResolvedMigration { */ boolean canExecuteInTransaction(); + boolean shouldExecute(); + /** * Executes this migration. The execution will automatically take place within a transaction, when the underlying * database supports it and the canExecuteInTransaction returns {@code true}. diff --git a/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigrationMetadata.java b/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigrationMetadata.java index 60d924c..195b081 100644 --- a/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigrationMetadata.java +++ b/src/main/java/com/mytechden/flyway_csv/api/migration/CSVMigrationMetadata.java @@ -16,22 +16,24 @@ package com.mytechden.flyway_csv.api.migration; import org.flywaydb.core.api.MigrationVersion; -import org.flywaydb.core.internal.resource.Resource; +import org.flywaydb.core.api.resource.LoadableResource; public class CSVMigrationMetadata { private final MigrationVersion migrationVersion; private final String tableName; private final String description; - private final Resource res; + private final LoadableResource res; + private final boolean shouldExecute; public CSVMigrationMetadata(MigrationVersion migrationVersion, String tableName, String description, - Resource res) { + LoadableResource res) { this.migrationVersion = migrationVersion; this.tableName = tableName; this.description = description; this.res = res; + this.shouldExecute = true; } public MigrationVersion getMigrationVersion() { @@ -46,11 +48,15 @@ public String getDescription() { return description; } - public Resource getResource() { + public LoadableResource getResource() { return this.res; } public Integer getEquivalentChecksum() { return null; } + + public boolean shouldExecute() { + return shouldExecute; + } } diff --git a/src/main/java/com/mytechden/flyway_csv/api/migration/CSVResolvedMigration.java b/src/main/java/com/mytechden/flyway_csv/api/migration/CSVResolvedMigration.java index 7b58e3d..22ea5f1 100644 --- a/src/main/java/com/mytechden/flyway_csv/api/migration/CSVResolvedMigration.java +++ b/src/main/java/com/mytechden/flyway_csv/api/migration/CSVResolvedMigration.java @@ -26,7 +26,7 @@ import org.flywaydb.core.api.executor.MigrationExecutor; import org.flywaydb.core.api.migration.Context; import org.flywaydb.core.internal.resolver.ChecksumCalculator; -import org.flywaydb.core.internal.resource.LoadableResource; +import org.flywaydb.core.api.resource.LoadableResource; import java.io.FileNotFoundException; import java.io.IOException; @@ -53,7 +53,7 @@ public class CSVResolvedMigration implements CSVMigration { public CSVResolvedMigration(CSVMigrationMetadata csvMigrationMetadata) { this.csvMigrationMetadata = csvMigrationMetadata; this.executor = new CSVMigrationExecutor(this); - this.checksum = ChecksumCalculator.calculate((LoadableResource) this.csvMigrationMetadata.getResource()); + this.checksum = ChecksumCalculator.calculate(this.csvMigrationMetadata.getResource()); } public MigrationVersion getVersion() { @@ -104,6 +104,10 @@ public boolean canExecuteInTransaction() { return true; } + public boolean shouldExecute() { + return this.csvMigrationMetadata.shouldExecute(); + } + @Override public void migrate(Context context) { try { diff --git a/src/main/java/com/mytechden/flyway_csv/impl/executor/CSVMigrationExecutor.java b/src/main/java/com/mytechden/flyway_csv/impl/executor/CSVMigrationExecutor.java index e063ff5..7dc582f 100644 --- a/src/main/java/com/mytechden/flyway_csv/impl/executor/CSVMigrationExecutor.java +++ b/src/main/java/com/mytechden/flyway_csv/impl/executor/CSVMigrationExecutor.java @@ -21,7 +21,8 @@ import org.flywaydb.core.api.executor.Context; import org.flywaydb.core.api.executor.MigrationExecutor; import org.flywaydb.core.internal.database.DatabaseExecutionStrategy; -import org.flywaydb.core.internal.database.DatabaseFactory; +import org.flywaydb.core.internal.database.DatabaseType; +import org.flywaydb.core.internal.database.DatabaseTypeRegister; import java.sql.Connection; import java.sql.SQLException; @@ -41,9 +42,10 @@ public CSVMigrationExecutor(CSVMigration csvMigration) { @Override public void execute(final Context context) throws SQLException { - DatabaseExecutionStrategy strategy = DatabaseFactory.createExecutionStrategy(context.getConnection()); + DatabaseType databaseType = DatabaseTypeRegister.getDatabaseTypeForConnection(context.getConnection()); + DatabaseExecutionStrategy strategy = databaseType.createExecutionStrategy(context.getConnection()); strategy.execute(() -> { - executeOnce(context); + this.executeOnce(context); return true; }); } @@ -71,4 +73,9 @@ public Connection getConnection() { public boolean canExecuteInTransaction() { return csvMigration.canExecuteInTransaction(); } + + @Override + public boolean shouldExecute() { + return csvMigration.shouldExecute(); + } } diff --git a/src/main/java/com/mytechden/flyway_csv/impl/resolver/CSVMigrationResolver.java b/src/main/java/com/mytechden/flyway_csv/impl/resolver/CSVMigrationResolver.java index c85b328..9bb52be 100644 --- a/src/main/java/com/mytechden/flyway_csv/impl/resolver/CSVMigrationResolver.java +++ b/src/main/java/com/mytechden/flyway_csv/impl/resolver/CSVMigrationResolver.java @@ -23,7 +23,7 @@ import org.flywaydb.core.api.resolver.MigrationResolver; import org.flywaydb.core.api.resolver.ResolvedMigration; import org.flywaydb.core.internal.resolver.ResolvedMigrationComparator; -import org.flywaydb.core.internal.resource.LoadableResource; +import org.flywaydb.core.api.resource.LoadableResource; import org.flywaydb.core.internal.resource.ResourceName; import org.flywaydb.core.internal.resource.ResourceNameParser; import org.flywaydb.core.internal.scanner.LocationScannerCache; @@ -37,7 +37,7 @@ public class CSVMigrationResolver implements MigrationResolver { static private final String[] SUFFIXES = { ".csv", ".CSV" }; - protected final Map> references = new HashMap<>(); + protected final Map> references = new HashMap>(); private final ResourceNameCache resourceNameCache; private final LocationScannerCache locationScannerCache; @@ -48,7 +48,7 @@ public CSVMigrationResolver() { public List resolveMigrations(Context context) { Configuration configuration = context.getConfiguration(); - List migrations = new ArrayList<>(); + List migrations = new ArrayList(); addMigrations(migrations, configuration, configuration.getSqlMigrationPrefix()); migrations.sort(new ResolvedMigrationComparator()); return migrations; @@ -68,13 +68,16 @@ private void addMigrations(List migrations, Configuration con } protected Collection getResources(Configuration cf, String... suffixes) { - final Scanner scn = new Scanner<>( + final Scanner scn = new Scanner( Void.class, asList(cf.getLocations()), cf.getClassLoader(), cf.getEncoding(), + true, + true, resourceNameCache, - locationScannerCache); + locationScannerCache, + true); return scn.getResources(cf.getSqlMigrationPrefix(), suffixes); } } diff --git a/src/main/java/com/mytechden/flyway_csv/utils/MigrationInfoHelper.java b/src/main/java/com/mytechden/flyway_csv/utils/MigrationInfoHelper.java index 639c334..4cc3f91 100644 --- a/src/main/java/com/mytechden/flyway_csv/utils/MigrationInfoHelper.java +++ b/src/main/java/com/mytechden/flyway_csv/utils/MigrationInfoHelper.java @@ -17,7 +17,7 @@ import com.mytechden.flyway_csv.api.migration.CSVMigrationMetadata; import org.flywaydb.core.api.MigrationVersion; -import org.flywaydb.core.internal.resource.Resource; +import org.flywaydb.core.api.resource.LoadableResource; import org.flywaydb.core.internal.util.Pair; import java.nio.ByteBuffer; @@ -28,7 +28,7 @@ public class MigrationInfoHelper { private final static Pattern UUID_REGEX_PATTERN = Pattern.compile("^[{]?[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}[}]?$"); - public static CSVMigrationMetadata getCSVMigrationMetadata(Pair migrationInfoPair, Resource res) { + public static CSVMigrationMetadata getCSVMigrationMetadata(Pair migrationInfoPair, LoadableResource res) { String rawDescription = migrationInfoPair.getRight(); // ResourceNameParser has a built-in function that replaces __ to whitespace String[] descriptionParts = rawDescription.split(" "); diff --git a/src/test/java/CSVResolvedMigrationTest.java b/src/test/java/CSVResolvedMigrationTest.java index 80a960c..dda49c7 100644 --- a/src/test/java/CSVResolvedMigrationTest.java +++ b/src/test/java/CSVResolvedMigrationTest.java @@ -1,6 +1,7 @@ import com.mytechden.flyway_csv.impl.resolver.CSVMigrationResolver; import org.flywaydb.core.Flyway; import org.flywaydb.core.api.configuration.FluentConfiguration; +import org.flywaydb.core.api.output.MigrateResult; import org.junit.Test; import javax.sql.DataSource; @@ -24,9 +25,9 @@ public void shouldProcessMigrationFile() throws Exception { final Connection db = ds.getConnection("sa", "sa"); final Flyway fw = new Flyway(cf); - final int count = fw.migrate(); + final MigrateResult migrateResult = fw.migrate(); - assertThat(count, equalTo(2)); + assertThat(migrateResult.migrationsExecuted, equalTo(2)); final ResultSet countUsers = db.createStatement().executeQuery("SELECT count(id) FROM users"); countUsers.next();