@@ -170,7 +170,7 @@ private InternalDriver createDriver(
170170 try {
171171 var homeDatabaseCache =
172172 HomeDatabaseCache .newInstance (uri .getScheme ().startsWith ("neo4j" ));
173- boltConnectionProvider = createBoltConnectionProvider (
173+ boltConnectionProvider = createDriverBoltConnectionProvider (
174174 uri ,
175175 config ,
176176 eventLoopGroup ,
@@ -223,7 +223,7 @@ private Function<BoltServerAddress, Set<BoltServerAddress>> createBoltServerAddr
223223 .collect (Collectors .toCollection (LinkedHashSet ::new ));
224224 }
225225
226- private DriverBoltConnectionProvider createBoltConnectionProvider (
226+ private DriverBoltConnectionProvider createDriverBoltConnectionProvider (
227227 URI uri ,
228228 Config config ,
229229 EventLoopGroup eventLoopGroup ,
@@ -236,8 +236,48 @@ private DriverBoltConnectionProvider createBoltConnectionProvider(
236236 String userAgent ,
237237 int connectTimeoutMillis ,
238238 MetricsListener metricsListener ) {
239- DriverBoltConnectionProvider boltConnectionProvider ;
240239 var clock = createClock ();
240+ var boltConnectionProvider = createBoltConnectionProvider (
241+ uri ,
242+ config ,
243+ eventLoopGroup ,
244+ routingSettings ,
245+ rediscoverySupplier ,
246+ boltConnectionListener ,
247+ address ,
248+ routingContext ,
249+ boltAgent ,
250+ userAgent ,
251+ connectTimeoutMillis ,
252+ metricsListener ,
253+ clock );
254+ return new AdaptingDriverBoltConnectionProvider (
255+ boltConnectionProvider ,
256+ ErrorMapper .getInstance (),
257+ BoltValueFactory .getInstance (),
258+ uri .getScheme ().startsWith ("neo4j" ),
259+ address ,
260+ routingContext ,
261+ boltAgent ,
262+ userAgent ,
263+ connectTimeoutMillis );
264+ }
265+
266+ protected BoltConnectionProvider createBoltConnectionProvider (
267+ URI uri ,
268+ Config config ,
269+ EventLoopGroup eventLoopGroup ,
270+ RoutingSettings routingSettings ,
271+ Supplier <Rediscovery > rediscoverySupplier ,
272+ BoltConnectionListener boltConnectionListener ,
273+ BoltServerAddress address ,
274+ RoutingContext routingContext ,
275+ BoltAgent boltAgent ,
276+ String userAgent ,
277+ int connectTimeoutMillis ,
278+ MetricsListener metricsListener ,
279+ Clock clock ) {
280+ BoltConnectionProvider boltConnectionProvider ;
241281 var loggingProvider = new BoltLoggingProvider (config .logging ());
242282 Function <BoltServerAddress , BoltConnectionProvider > pooledBoltConnectionProviderSupplier =
243283 selectedAddress -> createPooledBoltConnectionProvider (
@@ -252,42 +292,23 @@ private DriverBoltConnectionProvider createBoltConnectionProvider(
252292 userAgent ,
253293 connectTimeoutMillis ,
254294 metricsListener );
255- var errorMapper = ErrorMapper . getInstance ();
256- if ( uri . getScheme (). startsWith ( "bolt" )) {
257- assertNoRoutingContext ( uri , routingSettings );
258- boltConnectionProvider = new AdaptingDriverBoltConnectionProvider (
259- pooledBoltConnectionProviderSupplier . apply ( address ) ,
260- errorMapper ,
261- BoltValueFactory . getInstance () ,
262- false ,
295+ if ( uri . getScheme (). startsWith ( "neo4j" )) {
296+ boltConnectionProvider = createRoutedBoltConnectionProvider (
297+ config ,
298+ pooledBoltConnectionProviderSupplier ,
299+ routingSettings ,
300+ rediscoverySupplier ,
301+ clock ,
302+ loggingProvider ,
263303 address ,
264304 routingContext ,
265305 boltAgent ,
266306 userAgent ,
267- connectTimeoutMillis );
307+ connectTimeoutMillis ,
308+ metricsListener );
268309 } else {
269- boltConnectionProvider = new AdaptingDriverBoltConnectionProvider (
270- createRoutedBoltConnectionProvider (
271- config ,
272- pooledBoltConnectionProviderSupplier ,
273- routingSettings ,
274- rediscoverySupplier ,
275- clock ,
276- loggingProvider ,
277- address ,
278- routingContext ,
279- boltAgent ,
280- userAgent ,
281- connectTimeoutMillis ,
282- metricsListener ),
283- errorMapper ,
284- BoltValueFactory .getInstance (),
285- true ,
286- address ,
287- routingContext ,
288- boltAgent ,
289- userAgent ,
290- connectTimeoutMillis );
310+ assertNoRoutingContext (uri , routingSettings );
311+ boltConnectionProvider = pooledBoltConnectionProviderSupplier .apply (address );
291312 }
292313 return boltConnectionProvider ;
293314 }
0 commit comments