From c36f0c89c867ee4d29f6fd8b3d789b53fd308ba4 Mon Sep 17 00:00:00 2001 From: Weimin Yu Date: Mon, 24 Aug 2020 10:20:19 -0400 Subject: [PATCH] Fix missing-driver in HibernateSchemaExporterTest (#777) * Fix missing-driver in HibernateSchemaExporterTest HibernateSchemaExporterTest is failing with "Driver not found" error after Java 11 upgrade. Reason is that ServiceLoader now only checks modules for services. Proper fix is to define modules. This short term fix is to declare the driver class explicitly. --- .../google/registry/persistence/HibernateSchemaExporter.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/google/registry/persistence/HibernateSchemaExporter.java b/core/src/main/java/google/registry/persistence/HibernateSchemaExporter.java index 940f70ead..09815a738 100644 --- a/core/src/main/java/google/registry/persistence/HibernateSchemaExporter.java +++ b/core/src/main/java/google/registry/persistence/HibernateSchemaExporter.java @@ -59,6 +59,9 @@ public class HibernateSchemaExporter { settings.put(Environment.USER, username); settings.put(Environment.PASS, password); settings.put(Environment.HBM2DDL_AUTO, "none"); + // Register driver explicitly to work around ServiceLoader change after Java 8. + // Driver self-registration only works if driver is declared in a module. + settings.put(Environment.DRIVER, "org.postgresql.Driver"); settings.put(Environment.SHOW_SQL, "true"); settings.put( Environment.PHYSICAL_NAMING_STRATEGY, NomulusNamingStrategy.class.getCanonicalName());