Skip to content

Commit 461f3f0

Browse files
committed
#34 - Allow driver to be optional in configuration - skip check on driver when it isn't specified
1 parent 45bf746 commit 461f3f0

File tree

4 files changed

+24
-16
lines changed

4 files changed

+24
-16
lines changed

src/main/java/io/ebean/datasource/pool/ConnectionPool.java

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -262,16 +262,25 @@ public java.util.logging.Logger getParentLogger() throws SQLFeatureNotSupportedE
262262
throw new SQLFeatureNotSupportedException("We do not support java.util.logging");
263263
}
264264

265+
/**
266+
* Return true if driver has been explicitly configured.
267+
*/
268+
private boolean hasDriver() {
269+
return databaseDriver != null && !databaseDriver.isEmpty();
270+
}
271+
265272
private void checkDriver() {
266-
try {
267-
ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
268-
if (contextLoader != null) {
269-
Class.forName(databaseDriver, true, contextLoader);
270-
} else {
271-
Class.forName(databaseDriver, true, this.getClass().getClassLoader());
273+
if (hasDriver()) {
274+
try {
275+
ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
276+
if (contextLoader != null) {
277+
Class.forName(databaseDriver, true, contextLoader);
278+
} else {
279+
Class.forName(databaseDriver, true, this.getClass().getClassLoader());
280+
}
281+
} catch (Throwable e) {
282+
throw new IllegalStateException("Problem loading Database Driver [" + this.databaseDriver + "]: " + e.getMessage(), e);
272283
}
273-
} catch (Throwable e) {
274-
throw new IllegalStateException("Problem loading Database Driver [" + this.databaseDriver + "]: " + e.getMessage(), e);
275284
}
276285
}
277286

@@ -980,11 +989,13 @@ public PoolStatus getStatus(boolean reset) {
980989
* Deregister the JDBC driver.
981990
*/
982991
private void deregisterDriver() {
983-
try {
984-
logger.debug("Deregister the JDBC driver " + this.databaseDriver);
985-
DriverManager.deregisterDriver(DriverManager.getDriver(this.databaseUrl));
986-
} catch (SQLException e) {
987-
logger.warn("Error trying to deregister the JDBC driver " + this.databaseDriver, e);
992+
if (hasDriver()) {
993+
try {
994+
logger.debug("Deregister the JDBC driver " + databaseDriver);
995+
DriverManager.deregisterDriver(DriverManager.getDriver(databaseUrl));
996+
} catch (SQLException e) {
997+
logger.warn("Error trying to deregister the JDBC driver " + databaseDriver, e);
998+
}
988999
}
9891000
}
9901001

src/test/java/io/ebean/datasource/PostgresInitTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ public void test() throws SQLException {
2525
container.startWithDropCreate();
2626

2727
DataSourceConfig ds = new DataSourceConfig();
28-
ds.setDriver("org.postgresql.Driver");
2928
ds.setUrl("jdbc:postgresql://127.0.0.1:9999/app");
3029

3130
// our application credentials (typically same as db and schema name with Postgres)

src/test/java/io/ebean/datasource/core/DataSourcePoolFactoryTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public class DataSourcePoolFactoryTest {
1414
public void createPool() throws Exception {
1515

1616
DataSourceConfig config = new DataSourceConfig();
17-
config.setDriver("org.h2.Driver");
1817
config.setUrl("jdbc:h2:mem:factory");
1918
config.setUsername("sa");
2019
config.setPassword("");

src/test/java/io/ebean/datasource/pool/ConnectionPoolTest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ public class ConnectionPoolTest {
2222
private ConnectionPool createPool() {
2323

2424
DataSourceConfig config = new DataSourceConfig();
25-
config.setDriver("org.h2.Driver");
2625
config.setUrl("jdbc:h2:mem:tests");
2726
config.setUsername("sa");
2827
config.setPassword("");

0 commit comments

Comments
 (0)