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; } + + }