BaseMigration.java
package db;
import org.apache.cxf.helpers.IOUtils;
import org.flywaydb.core.api.migration.BaseJavaMigration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import java.nio.charset.StandardCharsets;
import java.util.zip.CRC32;
import java.util.zip.Checksum;
public abstract class BaseMigration extends BaseJavaMigration {
public long checksum(Class class_) throws Exception {
Checksum crc32 = new CRC32();
byte[] bytes = readClass(class_);
crc32.update(bytes, 0, bytes.length);
return crc32.getValue();
}
public static byte[] readClass(Class classInstance) throws Exception {
String name = classInstance.getName();
name = name.replaceAll("[.]", "/") + ".class";
Resource resource = new ClassPathResource(name);
String text = IOUtils.toString(resource.getInputStream(), StandardCharsets.UTF_8.name());
return text.getBytes(StandardCharsets.UTF_8);
}
}