diff --git a/pom.xml b/pom.xml
index bac17e7b35..5430243118 100644
--- a/pom.xml
+++ b/pom.xml
@@ -345,5 +345,13 @@
1.3.167
test
+
+
+ org.hibernate
+ hibernate-core
+ 4.1.4.Final
+ test
+
+
diff --git a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
index 17fdab3194..414c5d97dc 100644
--- a/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
+++ b/src/main/java/com/alibaba/druid/pool/DruidDataSource.java
@@ -36,6 +36,8 @@ import javax.naming.Referenceable;
import javax.naming.StringRefAddr;
import javax.sql.ConnectionEvent;
import javax.sql.ConnectionEventListener;
+import javax.sql.ConnectionPoolDataSource;
+import javax.sql.PooledConnection;
import com.alibaba.druid.TransactionTimeoutException;
import com.alibaba.druid.VERSION;
@@ -65,7 +67,7 @@ import com.alibaba.druid.util.JdbcUtils;
* @author ljw
* @author wenshao
*/
-public class DruidDataSource extends DruidAbstractDataSource implements DruidDataSourceMBean, ManagedDataSource, Referenceable, Closeable, Cloneable {
+public class DruidDataSource extends DruidAbstractDataSource implements DruidDataSourceMBean, ManagedDataSource, Referenceable, Closeable, Cloneable, ConnectionPoolDataSource {
private final static Log LOG = LogFactory.getLog(DruidDataSource.class);
@@ -404,6 +406,16 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
return getConnectionDirect(maxWaitMillis);
}
}
+
+ @Override
+ public PooledConnection getPooledConnection() throws SQLException {
+ return getConnection(maxWait);
+ }
+
+ @Override
+ public PooledConnection getPooledConnection(String user, String password) throws SQLException {
+ throw new UnsupportedOperationException("Not supported by DruidDataSource");
+ }
public DruidPooledConnection getConnectionDirect(long maxWaitMillis) throws SQLException {
final int maxWaitThreadCount = getMaxWaitThreadCount();
@@ -1404,4 +1416,6 @@ public class DruidDataSource extends DruidAbstractDataSource implements DruidDat
return x;
}
+
+
}