|
8 | 8 | import java.sql.Driver; |
9 | 9 | import java.sql.DriverManager; |
10 | 10 | import java.sql.SQLException; |
11 | | -import java.util.Enumeration; |
12 | 11 | import java.util.Map; |
13 | 12 | import java.util.Properties; |
14 | 13 | import java.util.concurrent.ConcurrentLinkedQueue; |
|
40 | 39 | import static org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator.extractIsolation; |
41 | 40 | import static org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator.getConnectionProperties; |
42 | 41 | import static org.hibernate.engine.jdbc.connections.internal.ConnectionProviderInitiator.toIsolationNiceName; |
| 42 | +import static org.hibernate.engine.jdbc.connections.internal.DatabaseConnectionInfoImpl.getFetchSize; |
| 43 | +import static org.hibernate.engine.jdbc.connections.internal.DatabaseConnectionInfoImpl.getIsolation; |
43 | 44 | import static org.hibernate.internal.util.config.ConfigurationHelper.getBoolean; |
44 | 45 | import static org.hibernate.internal.util.config.ConfigurationHelper.getInt; |
45 | 46 | import static org.hibernate.internal.util.config.ConfigurationHelper.getLong; |
@@ -142,43 +143,49 @@ private static ConnectionCreator buildCreator( |
142 | 143 | final Integer isolation = extractIsolation( configurationValues ); |
143 | 144 | final String initSql = (String) configurationValues.get( INIT_SQL ); |
144 | 145 |
|
145 | | - final ConnectionCreatorFactory factory = getConnectionCreatorFactory( configurationValues, serviceRegistry ); |
| 146 | + final var connectionCreator = |
| 147 | + getConnectionCreatorFactory( configurationValues, serviceRegistry ) |
| 148 | + .create( |
| 149 | + driver, |
| 150 | + serviceRegistry, |
| 151 | + url, |
| 152 | + connectionProps, |
| 153 | + autoCommit, |
| 154 | + isolation, |
| 155 | + initSql, |
| 156 | + configurationValues |
| 157 | + ); |
| 158 | + |
| 159 | + ; |
146 | 160 |
|
147 | 161 | dbInfo = new DatabaseConnectionInfoImpl( |
148 | 162 | DriverManagerConnectionProviderImpl.class, |
149 | 163 | url, |
150 | 164 | driverList, |
151 | 165 | SimpleDatabaseVersion.ZERO_VERSION, |
152 | 166 | Boolean.toString( autoCommit ), |
153 | | - isolation != null ? toIsolationNiceName( isolation ) : null, |
| 167 | + isolation != null |
| 168 | + ? toIsolationNiceName( isolation ) |
| 169 | + : toIsolationNiceName( getIsolation( connectionCreator ) ), |
154 | 170 | getInt( MIN_SIZE, configurationValues, 1 ), |
155 | 171 | getInt( AvailableSettings.POOL_SIZE, configurationValues, 20 ), |
156 | | - null |
| 172 | + getFetchSize( connectionCreator ) |
157 | 173 | ); |
158 | 174 |
|
159 | | - return factory.create( |
160 | | - driver, |
161 | | - serviceRegistry, |
162 | | - url, |
163 | | - connectionProps, |
164 | | - autoCommit, |
165 | | - isolation, |
166 | | - initSql, |
167 | | - configurationValues |
168 | | - ); |
| 175 | + return connectionCreator; |
169 | 176 | } |
170 | 177 |
|
171 | 178 | private static String driverList() { |
172 | 179 | //we're hoping that the driver is already loaded |
173 | 180 | ConnectionInfoLogger.INSTANCE.jdbcDriverNotSpecified(); |
174 | | - final StringBuilder list = new StringBuilder(); |
175 | | - final Enumeration<Driver> drivers = DriverManager.getDrivers(); |
176 | | - while ( drivers.hasMoreElements() ) { |
177 | | - if ( !list.isEmpty() ) { |
178 | | - list.append(", "); |
179 | | - } |
180 | | - list.append( drivers.nextElement().getClass().getName() ); |
181 | | - } |
| 181 | + final var list = new StringBuilder(); |
| 182 | + DriverManager.drivers() |
| 183 | + .forEach( driver -> { |
| 184 | + if ( !list.isEmpty() ) { |
| 185 | + list.append( ", " ); |
| 186 | + } |
| 187 | + list.append( driver.getClass().getName() ); |
| 188 | + } ); |
182 | 189 | return list.toString(); |
183 | 190 | } |
184 | 191 |
|
|
0 commit comments