Skip to content

Commit

Permalink
Update Flyway version to 8.5.5
Browse files Browse the repository at this point in the history
  • Loading branch information
ramzimaalej committed Apr 6, 2022
1 parent f45c01b commit 22b1992
Show file tree
Hide file tree
Showing 9 changed files with 43 additions and 19 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>6.5.7</version>
<version>8.5.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
Expand Down
1 change: 1 addition & 0 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Add dependency to your project.
<version>Tag</version>
</dependency>
```
Make sure to change `Tag` with the version number you want to use.

Resolver

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand All @@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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() {
Expand Down Expand Up @@ -104,6 +104,10 @@ public boolean canExecuteInTransaction() {
return true;
}

public boolean shouldExecute() {
return this.csvMigrationMetadata.shouldExecute();
}

@Override
public void migrate(Context context) {
try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
});
}
Expand Down Expand Up @@ -71,4 +73,9 @@ public Connection getConnection() {
public boolean canExecuteInTransaction() {
return csvMigration.canExecuteInTransaction();
}

@Override
public boolean shouldExecute() {
return csvMigration.shouldExecute();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -37,7 +37,7 @@

public class CSVMigrationResolver implements MigrationResolver {
static private final String[] SUFFIXES = { ".csv", ".CSV" };
protected final Map<String, List<String>> references = new HashMap<>();
protected final Map<String, List<String>> references = new HashMap<String, List<String>>();
private final ResourceNameCache resourceNameCache;
private final LocationScannerCache locationScannerCache;

Expand All @@ -48,7 +48,7 @@ public CSVMigrationResolver() {

public List<ResolvedMigration> resolveMigrations(Context context) {
Configuration configuration = context.getConfiguration();
List<ResolvedMigration> migrations = new ArrayList<>();
List<ResolvedMigration> migrations = new ArrayList<ResolvedMigration>();
addMigrations(migrations, configuration, configuration.getSqlMigrationPrefix());
migrations.sort(new ResolvedMigrationComparator());
return migrations;
Expand All @@ -68,13 +68,16 @@ private void addMigrations(List<ResolvedMigration> migrations, Configuration con
}

protected Collection<LoadableResource> 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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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<MigrationVersion, String> migrationInfoPair, Resource res) {
public static CSVMigrationMetadata getCSVMigrationMetadata(Pair<MigrationVersion, String> migrationInfoPair, LoadableResource res) {
String rawDescription = migrationInfoPair.getRight();
// ResourceNameParser has a built-in function that replaces __ to whitespace
String[] descriptionParts = rawDescription.split(" ");
Expand Down
5 changes: 3 additions & 2 deletions src/test/java/CSVResolvedMigrationTest.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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();
Expand Down

0 comments on commit 22b1992

Please sign in to comment.