diff --git a/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml b/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml index 12f78c32fe0..1de05909dd6 100644 --- a/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml +++ b/hapi-fhir-cli/hapi-fhir-cli-api/pom.xml @@ -239,6 +239,14 @@ org.flywaydb flyway-core + + org.flywaydb + flyway-sqlserver + + + org.flywaydb + flyway-mysql + diff --git a/hapi-fhir-jpaserver-cql/pom.xml b/hapi-fhir-jpaserver-cql/pom.xml index ebd6782332f..0ee65e013da 100644 --- a/hapi-fhir-jpaserver-cql/pom.xml +++ b/hapi-fhir-jpaserver-cql/pom.xml @@ -95,6 +95,12 @@ javax.xml.bind jaxb-api ${jaxb_api_version} + + + javax.activation + javax.activation-api + + com.jamesmurty.utils diff --git a/hapi-fhir-sql-migrate/pom.xml b/hapi-fhir-sql-migrate/pom.xml index 442d163e596..c668d1930cf 100644 --- a/hapi-fhir-sql-migrate/pom.xml +++ b/hapi-fhir-sql-migrate/pom.xml @@ -72,6 +72,15 @@ org.flywaydb flyway-core + + org.flywaydb + flyway-sqlserver + + + org.flywaydb + flyway-mysql + + org.springframework.data spring-data-commons diff --git a/hapi-fhir-sql-migrate/src/test/java/FlywayDbCompatibilityTest.java b/hapi-fhir-sql-migrate/src/test/java/FlywayDbCompatibilityTest.java new file mode 100644 index 00000000000..eec57d2b608 --- /dev/null +++ b/hapi-fhir-sql-migrate/src/test/java/FlywayDbCompatibilityTest.java @@ -0,0 +1,31 @@ +import org.flywaydb.core.internal.database.DatabaseType; +import org.flywaydb.core.internal.database.DatabaseTypeRegister; +import org.junit.jupiter.api.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; + +public class FlywayDbCompatibilityTest { + @Test + public void testFlywayDbCompatibility() { + DatabaseType h2Type = DatabaseTypeRegister.getDatabaseTypeForUrl("jdbc:h2:mem:test"); + assertThat(h2Type.getName(), is(equalTo("H2"))); + + DatabaseType sqlServerType = DatabaseTypeRegister.getDatabaseTypeForUrl("jdbc:sqlserver://localhost:1433;database=test"); + assertThat(sqlServerType.getName(), is(equalTo("Azure Synapse"))); + + DatabaseType oracleType = DatabaseTypeRegister.getDatabaseTypeForUrl("jdbc:oracle:thin:@//host:port/service"); + assertThat(oracleType.getName(), is(equalTo("Oracle"))); + + DatabaseType mySqlType = DatabaseTypeRegister.getDatabaseTypeForUrl("jdbc:mysql://localhost:3306/cdr?serverTimezone=Canada/Eastern"); + assertThat(mySqlType.getName(), is(equalTo("MySQL"))); + + DatabaseType postgresType = DatabaseTypeRegister.getDatabaseTypeForUrl("jdbc:postgresql://localhost:5432/cdr"); + assertThat(postgresType.getName(), is(equalTo("CockroachDB"))); + + DatabaseType mariaDbType = DatabaseTypeRegister.getDatabaseTypeForUrl("jdbc:mariadb://localhost:3306/cdr"); + assertThat(mariaDbType.getName(), is(equalTo("MariaDB"))); + } + +} diff --git a/hapi-fhir-sql-migrate/src/test/java/ca/uhn/fhir/jpa/migrate/FlywayMigrationTaskTest.java b/hapi-fhir-sql-migrate/src/test/java/ca/uhn/fhir/jpa/migrate/FlywayMigrationTaskTest.java index 130413f204f..cbab55741de 100644 --- a/hapi-fhir-sql-migrate/src/test/java/ca/uhn/fhir/jpa/migrate/FlywayMigrationTaskTest.java +++ b/hapi-fhir-sql-migrate/src/test/java/ca/uhn/fhir/jpa/migrate/FlywayMigrationTaskTest.java @@ -6,6 +6,7 @@ import ca.uhn.fhir.jpa.migrate.tasks.api.ISchemaInitializationProvider; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.flywaydb.core.api.migration.Context; +import org.flywaydb.core.internal.database.DatabaseTypeRegister; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; diff --git a/pom.xml b/pom.xml index 0dcacac6ced..8a68296737a 100644 --- a/pom.xml +++ b/pom.xml @@ -1942,6 +1942,16 @@ flyway-core ${flyway_version} + + org.flywaydb + flyway-sqlserver + ${flyway_version} + + + org.flywaydb + flyway-mysql + ${flyway_version} + org.springframework.batch spring-batch-test