diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 987e8fcfff825..8936870805d2f 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -119,7 +119,7 @@ 4.1.5 9.2.1 2.3.2 - 2.3.230 + 2.3.232 42.7.3 3.4.1 8.3.0 diff --git a/extensions/hibernate-orm/runtime/src/main/java/io/quarkus/hibernate/orm/runtime/config/DialectVersions.java b/extensions/hibernate-orm/runtime/src/main/java/io/quarkus/hibernate/orm/runtime/config/DialectVersions.java index fd4000f2086e3..67f4e28085192 100644 --- a/extensions/hibernate-orm/runtime/src/main/java/io/quarkus/hibernate/orm/runtime/config/DialectVersions.java +++ b/extensions/hibernate-orm/runtime/src/main/java/io/quarkus/hibernate/orm/runtime/config/DialectVersions.java @@ -23,7 +23,7 @@ public static final class Defaults { // This must be aligned on the H2 version in the Quarkus BOM // This must never be removed - public static final String H2 = "2.3.230"; + public static final String H2 = "2.3.232"; private Defaults() { } diff --git a/integration-tests/jpa-h2-embedded/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java b/integration-tests/jpa-h2-embedded/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java index 5c74ab76c647e..8b8acbc42849f 100644 --- a/integration-tests/jpa-h2-embedded/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java +++ b/integration-tests/jpa-h2-embedded/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java @@ -1,6 +1,9 @@ package io.quarkus.it.jpa.h2; import java.io.IOException; +import java.sql.SQLException; + +import javax.sql.DataSource; import jakarta.inject.Inject; import jakarta.ws.rs.GET; @@ -13,16 +16,27 @@ import io.quarkus.hibernate.orm.runtime.config.DialectVersions; -@Path("/dialect/version") +@Path("/dialect/") @Produces(MediaType.TEXT_PLAIN) public class DialectEndpoint { @Inject SessionFactory sessionFactory; + @Inject + DataSource dataSource; @GET - public String test() throws IOException { + @Path("version") + public String version() throws IOException { var version = sessionFactory.unwrap(SessionFactoryImplementor.class).getJdbcServices().getDialect().getVersion(); return DialectVersions.toString(version); } + @GET + @Path("actual-db-version") + public String actualDbVersion() throws IOException, SQLException { + try (var conn = dataSource.getConnection()) { + return conn.getMetaData().getDatabaseProductVersion(); + } + } + } diff --git a/integration-tests/jpa-h2-embedded/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java b/integration-tests/jpa-h2-embedded/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java index b0fcc3838bdfe..c50b9af4f10c5 100644 --- a/integration-tests/jpa-h2-embedded/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java +++ b/integration-tests/jpa-h2-embedded/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java @@ -15,7 +15,8 @@ public class DialectTest { /** - * This is important to avoid https://github.com/quarkusio/quarkus/issues/1886 + * This is important for backwards compatibility reasons: + * we want to keep using at least the same version as before by default. */ @Test public void version() { @@ -23,4 +24,14 @@ public void version() { assertThat(version).startsWith(DialectVersions.Defaults.H2); } + /** + * This is important to avoid https://github.com/quarkusio/quarkus/issues/1886 + */ + @Test + public void actualDbVersion() { + String version = RestAssured.when().get("/dialect/actual-db-version").then().extract().body().asString(); + // Can't use "equal" as the returned string includes trailing information (build date, ...) + assertThat(version).startsWith(DialectVersions.Defaults.H2); + } + } diff --git a/integration-tests/jpa-h2/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java b/integration-tests/jpa-h2/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java index 5c74ab76c647e..8b8acbc42849f 100644 --- a/integration-tests/jpa-h2/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java +++ b/integration-tests/jpa-h2/src/main/java/io/quarkus/it/jpa/h2/DialectEndpoint.java @@ -1,6 +1,9 @@ package io.quarkus.it.jpa.h2; import java.io.IOException; +import java.sql.SQLException; + +import javax.sql.DataSource; import jakarta.inject.Inject; import jakarta.ws.rs.GET; @@ -13,16 +16,27 @@ import io.quarkus.hibernate.orm.runtime.config.DialectVersions; -@Path("/dialect/version") +@Path("/dialect/") @Produces(MediaType.TEXT_PLAIN) public class DialectEndpoint { @Inject SessionFactory sessionFactory; + @Inject + DataSource dataSource; @GET - public String test() throws IOException { + @Path("version") + public String version() throws IOException { var version = sessionFactory.unwrap(SessionFactoryImplementor.class).getJdbcServices().getDialect().getVersion(); return DialectVersions.toString(version); } + @GET + @Path("actual-db-version") + public String actualDbVersion() throws IOException, SQLException { + try (var conn = dataSource.getConnection()) { + return conn.getMetaData().getDatabaseProductVersion(); + } + } + } diff --git a/integration-tests/jpa-h2/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java b/integration-tests/jpa-h2/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java index b0fcc3838bdfe..c50b9af4f10c5 100644 --- a/integration-tests/jpa-h2/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java +++ b/integration-tests/jpa-h2/src/test/java/io/quarkus/it/jpa/h2/DialectTest.java @@ -15,7 +15,8 @@ public class DialectTest { /** - * This is important to avoid https://github.com/quarkusio/quarkus/issues/1886 + * This is important for backwards compatibility reasons: + * we want to keep using at least the same version as before by default. */ @Test public void version() { @@ -23,4 +24,14 @@ public void version() { assertThat(version).startsWith(DialectVersions.Defaults.H2); } + /** + * This is important to avoid https://github.com/quarkusio/quarkus/issues/1886 + */ + @Test + public void actualDbVersion() { + String version = RestAssured.when().get("/dialect/actual-db-version").then().extract().body().asString(); + // Can't use "equal" as the returned string includes trailing information (build date, ...) + assertThat(version).startsWith(DialectVersions.Defaults.H2); + } + }