protected ConnectionPool createConnectionPool( AuthToken authToken, SecurityPlan securityPlan, Bootstrap bootstrap, MetricsListener metrics, Config config ) { Clock clock = createClock(); ConnectionSettings settings = new ConnectionSettings( authToken, config.connectionTimeoutMillis() ); ChannelConnector connector = createConnector( settings, securityPlan, config, clock ); PoolSettings poolSettings = new PoolSettings( config.maxConnectionPoolSize(), config.connectionAcquisitionTimeoutMillis(), config.maxConnectionLifetimeMillis(), config.idleTimeBeforeConnectionTest() ); return new ConnectionPoolImpl( connector, bootstrap, poolSettings, metrics, config.logging(), clock ); }