From 882726e2945ac6c9860239f0b494854d0a5f66e8 Mon Sep 17 00:00:00 2001 From: turackangal Date: Tue, 20 Aug 2019 20:44:20 +0300 Subject: [PATCH 1/2] Fix #1655 --- .../containers/JdbcDatabaseContainer.java | 10 +++++++++- .../org/testcontainers/containers/MySQLContainer.java | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java b/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java index 36a6461aa74..85e5b525923 100644 --- a/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java +++ b/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java @@ -166,7 +166,15 @@ public Driver getJdbcDriverInstance() throws NoDriverFoundException { try { driver = (Driver) Class.forName(this.getDriverClassName()).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { - throw new NoDriverFoundException("Could not get Driver", e); + if(getJdbcUrl().startsWith("jdbc:mysql://")) { + try { + driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); + } catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex) { + throw new NoDriverFoundException("Could not get MySQL Driver", ex); + } + } else { + throw new NoDriverFoundException("Could not get Driver", e); + } } } } diff --git a/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java b/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java index 172ead4856a..4db5dec0404 100644 --- a/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java +++ b/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java @@ -56,7 +56,7 @@ protected void configure() { @Override public String getDriverClassName() { - return "com.mysql.jdbc.Driver"; + return "com.mysql.cj.jdbc.Driver"; } @Override From 149fbfed8a03aae57ef7a810daec1fa519718b8c Mon Sep 17 00:00:00 2001 From: turackangal Date: Sun, 25 Aug 2019 21:23:12 +0300 Subject: [PATCH 2/2] MySQL driver discovery in MySQLContainer instead of JdbcDatabaseContainer --- .../containers/JdbcDatabaseContainer.java | 10 +--------- .../org/testcontainers/containers/MySQLContainer.java | 7 ++++++- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java b/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java index 85e5b525923..36a6461aa74 100644 --- a/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java +++ b/modules/jdbc/src/main/java/org/testcontainers/containers/JdbcDatabaseContainer.java @@ -166,15 +166,7 @@ public Driver getJdbcDriverInstance() throws NoDriverFoundException { try { driver = (Driver) Class.forName(this.getDriverClassName()).newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { - if(getJdbcUrl().startsWith("jdbc:mysql://")) { - try { - driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance(); - } catch (InstantiationException | IllegalAccessException | ClassNotFoundException ex) { - throw new NoDriverFoundException("Could not get MySQL Driver", ex); - } - } else { - throw new NoDriverFoundException("Could not get Driver", e); - } + throw new NoDriverFoundException("Could not get Driver", e); } } } diff --git a/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java b/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java index 4db5dec0404..fa2e8626b0d 100644 --- a/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java +++ b/modules/mysql/src/main/java/org/testcontainers/containers/MySQLContainer.java @@ -56,7 +56,12 @@ protected void configure() { @Override public String getDriverClassName() { - return "com.mysql.cj.jdbc.Driver"; + try { + Class.forName("com.mysql.cj.jdbc.Driver"); + return "com.mysql.cj.jdbc.Driver"; + } catch (ClassNotFoundException e) { + return "com.mysql.jdbc.Driver"; + } } @Override