From 981dd457d744ddaf962fe6de8871af17ec035cef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 13 Aug 2024 11:39:27 +0200 Subject: [PATCH 1/2] Test the default H2 dialect version matches the default H2 Maven dependency version --- .../io/quarkus/it/jpa/h2/DialectEndpoint.java | 18 ++++++++++++++++-- .../java/io/quarkus/it/jpa/h2/DialectTest.java | 13 ++++++++++++- .../io/quarkus/it/jpa/h2/DialectEndpoint.java | 18 ++++++++++++++++-- .../java/io/quarkus/it/jpa/h2/DialectTest.java | 13 ++++++++++++- 4 files changed, 56 insertions(+), 6 deletions(-) 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); + } + } From d299d555dae1db186c87cf3ed9e123c000019b72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 22:19:33 +0000 Subject: [PATCH 2/2] Bump com.h2database:h2 from 2.3.230 to 2.3.232 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.3.230 to 2.3.232. - [Release notes](https://github.com/h2database/h2database/releases) - [Commits](https://github.com/h2database/h2database/compare/version-2.3.230...version-2.3.232) --- updated-dependencies: - dependency-name: com.h2database:h2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-Authored-By: Yoann Rodière --- bom/application/pom.xml | 2 +- .../quarkus/hibernate/orm/runtime/config/DialectVersions.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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() { }