|
21 | 21 |
|
22 | 22 | package org.hibernate.hikaricp.internal;
|
23 | 23 |
|
24 |
| -import java.sql.Connection; |
25 |
| -import java.sql.SQLException; |
26 |
| -import java.util.Map; |
27 |
| - |
| 24 | +import com.zaxxer.hikari.HikariConfig; |
| 25 | +import com.zaxxer.hikari.HikariDataSource; |
28 | 26 | import org.hibernate.HibernateException;
|
29 | 27 | import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider;
|
30 | 28 | import org.hibernate.service.UnknownUnwrapTypeException;
|
31 | 29 | import org.hibernate.service.spi.Configurable;
|
32 | 30 | import org.hibernate.service.spi.Stoppable;
|
33 | 31 | import org.jboss.logging.Logger;
|
34 | 32 |
|
35 |
| -import com.zaxxer.hikari.HikariConfig; |
36 |
| -import com.zaxxer.hikari.HikariDataSource; |
| 33 | +import javax.sql.DataSource; |
| 34 | +import java.sql.Connection; |
| 35 | +import java.sql.SQLException; |
| 36 | +import java.util.Map; |
37 | 37 |
|
38 | 38 | /**
|
39 | 39 | * HikariCP Connection provider for Hibernate.
|
@@ -106,18 +106,23 @@ public boolean supportsAggressiveRelease() {
|
106 | 106 | @SuppressWarnings("rawtypes")
|
107 | 107 | public boolean isUnwrappableAs(Class unwrapType) {
|
108 | 108 | return ConnectionProvider.class.equals( unwrapType )
|
109 |
| - || HikariCPConnectionProvider.class.isAssignableFrom( unwrapType ); |
| 109 | + || HikariCPConnectionProvider.class.isAssignableFrom( unwrapType ) |
| 110 | + || DataSource.class.isAssignableFrom( unwrapType ); |
110 | 111 | }
|
111 | 112 |
|
112 | 113 | @Override
|
113 | 114 | @SuppressWarnings("unchecked")
|
114 | 115 | public <T> T unwrap(Class<T> unwrapType) {
|
115 |
| - if ( isUnwrappableAs( unwrapType ) ) { |
116 |
| - return (T) this; |
117 |
| - } |
118 |
| - else { |
119 |
| - throw new UnknownUnwrapTypeException( unwrapType ); |
120 |
| - } |
| 116 | + if ( ConnectionProvider.class.equals( unwrapType ) || |
| 117 | + HikariCPConnectionProvider.class.isAssignableFrom( unwrapType ) ) { |
| 118 | + return (T) this; |
| 119 | + } |
| 120 | + else if ( DataSource.class.isAssignableFrom( unwrapType ) ) { |
| 121 | + return (T) hds; |
| 122 | + } |
| 123 | + else { |
| 124 | + throw new UnknownUnwrapTypeException( unwrapType ); |
| 125 | + } |
121 | 126 | }
|
122 | 127 |
|
123 | 128 | // *************************************************************************
|
|
0 commit comments