|
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