From 783bb5ae291f79e2d1d246bd28cc7c39ea56d696 Mon Sep 17 00:00:00 2001 From: Brett Wooldridge Date: Thu, 20 Mar 2014 19:20:29 +0900 Subject: [PATCH] Handle username and password settings, treat the DriverDataSource like other datasources. --- src/main/java/com/zaxxer/hikari/HikariPool.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zaxxer/hikari/HikariPool.java b/src/main/java/com/zaxxer/hikari/HikariPool.java index 0c1d8925..a2d2f3da 100644 --- a/src/main/java/com/zaxxer/hikari/HikariPool.java +++ b/src/main/java/com/zaxxer/hikari/HikariPool.java @@ -34,6 +34,7 @@ import com.zaxxer.hikari.proxy.IHikariConnectionProxy; import com.zaxxer.hikari.proxy.ProxyFactory; import com.zaxxer.hikari.util.ConcurrentBag; import com.zaxxer.hikari.util.ConcurrentBag.IBagStateListener; +import com.zaxxer.hikari.util.DriverDataSource; import com.zaxxer.hikari.util.PropertyBeanSetter; /** @@ -71,7 +72,7 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener HikariPool(HikariConfig configuration) { - this(configuration, null, null); + this(configuration, configuration.getUsername(), configuration.getPassword()); } /** @@ -456,9 +457,9 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener private DataSource initializeDataSource() { - if (configuration.getDataSource() == null) + String dsClassName = configuration.getDataSourceClassName(); + if (configuration.getDataSource() == null && dsClassName != null) { - String dsClassName = configuration.getDataSourceClassName(); try { Class clazz = this.getClass().getClassLoader().loadClass(dsClassName); @@ -471,6 +472,10 @@ public final class HikariPool implements HikariPoolMBean, IBagStateListener throw new RuntimeException("Could not create datasource instance: " + dsClassName, e); } } + else if (configuration.getJdbcUrl() != null) + { + return new DriverDataSource(configuration.getJdbcUrl(), configuration.getDataSourceProperties(), username, password); + } return configuration.getDataSource(); }