From bebb068d270091aa9528b48d54692720f39cc5dd Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 31 Oct 2019 11:47:22 +0100 Subject: [PATCH] [jOOQ/jOOQ#9460] Support additional Settings.interpreterDialects and add an InterpreterConnectionProvider SPI --- jOOQ/.gitignore | 1 + jOOQ/pom.xml | 20 +++++++++++++++++++ .../DefaultInterpreterConnectionProvider.java | 16 ++++++++++----- .../org/jooq/impl/SourceMetaProvider.java | 3 +++ pom.xml | 20 ++++++++++++++++++- 5 files changed, 54 insertions(+), 6 deletions(-) diff --git a/jOOQ/.gitignore b/jOOQ/.gitignore index 9b384213bd..d289c02720 100644 --- a/jOOQ/.gitignore +++ b/jOOQ/.gitignore @@ -1,3 +1,4 @@ /target /jooq.iml /recording.jfr +/derby.log diff --git a/jOOQ/pom.xml b/jOOQ/pom.xml index 36919473f3..2a78f34382 100644 --- a/jOOQ/pom.xml +++ b/jOOQ/pom.xml @@ -119,6 +119,26 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java b/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java index 0c59ca158b..2b480ba51f 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultInterpreterConnectionProvider.java @@ -43,7 +43,6 @@ import static org.jooq.tools.StringUtils.defaultIfNull; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; -import java.util.Properties; import java.util.UUID; import org.jooq.Configuration; @@ -69,12 +68,19 @@ final class DefaultInterpreterConnectionProvider implements ConnectionProvider { try { switch (dialect) { + case DERBY: + return DriverManager.getConnection("jdbc:derby:memory:db;create=true"); + case H2: case DEFAULT: - Properties info = new Properties(); - info.put("user", "sa"); - info.put("password", ""); - return DriverManager.getConnection("jdbc:h2:mem:jooq-ddl-interpretation-" + UUID.randomUUID(), info); + return DriverManager.getConnection("jdbc:h2:mem:jooq-ddl-interpretation-" + UUID.randomUUID(), "sa", ""); + + case HSQLDB: + // The newer form jdbc:hsqldb:mem:. is not necessarily supported by the driver version yet + return DriverManager.getConnection("jdbc:hsqldb:."); + + case SQLITE: + return DriverManager.getConnection("jdbc:sqlite::memory:"); default: throw new DataAccessException("Unsupported interpretation dialect: " + dialect); diff --git a/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java b/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java index b8507a649e..47a6c3e002 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java +++ b/jOOQ/src/main/java/org/jooq/impl/SourceMetaProvider.java @@ -102,7 +102,10 @@ final class SourceMetaProvider implements MetaProvider { case DEFAULT: return new DDLInterpreterMetaProvider(configuration, sources).provide(); + case DERBY: case H2: + case HSQLDB: + case SQLITE: return new DDLMetaProvider(configuration, sources).provide(); default: diff --git a/pom.xml b/pom.xml index a3bc1d525b..3940a3c2bf 100644 --- a/pom.xml +++ b/pom.xml @@ -26,8 +26,11 @@ - + 1.4.200 + 3.25.2 + 10.14.2.0 + 2.4.0 2.3.1 @@ -217,6 +220,21 @@ h2 ${h2.version} + + org.xerial + sqlite-jdbc + ${sqlite.version} + + + org.apache.derby + derby + ${derby.version} + + + org.hsqldb + hsqldb + ${hsqldb.version} +