40
40
import org .neo4j .driver .exceptions .ServiceUnavailableException ;
41
41
import org .neo4j .driver .internal .BoltServerAddress ;
42
42
import org .neo4j .driver .internal .async .connection .ChannelConnector ;
43
- import org .neo4j .driver .internal .async .NetworkConnection ;
44
43
import org .neo4j .driver .internal .metrics .ListenerEvent ;
45
44
import org .neo4j .driver .internal .metrics .MetricsListener ;
46
45
import org .neo4j .driver .internal .spi .Connection ;
@@ -57,32 +56,33 @@ public class ConnectionPoolImpl implements ConnectionPool
57
56
private final NettyChannelTracker nettyChannelTracker ;
58
57
private final NettyChannelHealthChecker channelHealthChecker ;
59
58
private final PoolSettings settings ;
60
- private final Clock clock ;
61
59
private final Logger log ;
62
60
private final MetricsListener metricsListener ;
63
61
private final boolean ownsEventLoopGroup ;
64
62
65
63
private final ConcurrentMap <BoltServerAddress ,ExtendedChannelPool > pools = new ConcurrentHashMap <>();
66
64
private final AtomicBoolean closed = new AtomicBoolean ();
65
+ private final ConnectionFactory connectionFactory ;
67
66
68
- public ConnectionPoolImpl ( ChannelConnector connector , Bootstrap bootstrap , PoolSettings settings , MetricsListener metricsListener , Logging logging , Clock clock , boolean ownsEventLoopGroup )
67
+ public ConnectionPoolImpl ( ChannelConnector connector , Bootstrap bootstrap , PoolSettings settings , MetricsListener metricsListener , Logging logging ,
68
+ Clock clock , boolean ownsEventLoopGroup )
69
69
{
70
-
71
- this ( connector , bootstrap , new NettyChannelTracker ( metricsListener , bootstrap . config (). group (). next (), logging ), settings , metricsListener , logging , clock , ownsEventLoopGroup );
70
+ this ( connector , bootstrap , new NettyChannelTracker ( metricsListener , bootstrap . config (). group (). next (), logging ), settings , metricsListener , logging ,
71
+ clock , ownsEventLoopGroup , new NetworkConnectionFactory ( clock , metricsListener ) );
72
72
}
73
73
74
- ConnectionPoolImpl ( ChannelConnector connector , Bootstrap bootstrap , NettyChannelTracker nettyChannelTracker ,
75
- PoolSettings settings , MetricsListener metricsListener , Logging logging , Clock clock , boolean ownsEventLoopGroup )
74
+ public ConnectionPoolImpl ( ChannelConnector connector , Bootstrap bootstrap , NettyChannelTracker nettyChannelTracker , PoolSettings settings ,
75
+ MetricsListener metricsListener , Logging logging , Clock clock , boolean ownsEventLoopGroup , ConnectionFactory connectionFactory )
76
76
{
77
77
this .connector = connector ;
78
78
this .bootstrap = bootstrap ;
79
79
this .nettyChannelTracker = nettyChannelTracker ;
80
80
this .channelHealthChecker = new NettyChannelHealthChecker ( settings , clock , logging );
81
81
this .settings = settings ;
82
82
this .metricsListener = metricsListener ;
83
- this .clock = clock ;
84
83
this .log = logging .getLog ( ConnectionPool .class .getSimpleName () );
85
84
this .ownsEventLoopGroup = ownsEventLoopGroup ;
85
+ this .connectionFactory = connectionFactory ;
86
86
}
87
87
88
88
@ Override
@@ -103,7 +103,7 @@ public CompletionStage<Connection> acquire( BoltServerAddress address )
103
103
{
104
104
processAcquisitionError ( pool , address , error );
105
105
assertNotClosed ( address , channel , pool );
106
- Connection connection = new NetworkConnection ( channel , pool , clock , metricsListener );
106
+ Connection connection = connectionFactory . createConnection ( channel , pool );
107
107
108
108
metricsListener .afterAcquiredOrCreated ( address , acquireEvent );
109
109
return connection ;
0 commit comments