Skip to content

Commit 1b21127

Browse files
author
Zhen
committed
Fix after review
1 parent b0fba93 commit 1b21127

28 files changed

+157
-178
lines changed

driver/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@
212212
<artifactSet>
213213
<includes>
214214
<include>io.netty:*</include>
215-
<include>org.HdrHistogram:*</include>
215+
<include>org.hdrhistogram:*</include>
216216
</includes>
217217
</artifactSet>
218218
<relocations>

driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,10 @@
3838
import org.neo4j.driver.internal.cluster.loadbalancing.LoadBalancingStrategy;
3939
import org.neo4j.driver.internal.cluster.loadbalancing.RoundRobinLoadBalancingStrategy;
4040
import org.neo4j.driver.internal.logging.NettyLogging;
41-
import org.neo4j.driver.internal.metrics.DriverMetricsListener;
42-
import org.neo4j.driver.internal.metrics.InternalAbstractDriverMetrics;
43-
import org.neo4j.driver.internal.metrics.InternalDriverMetrics;
41+
import org.neo4j.driver.internal.metrics.MetricsListener;
42+
import org.neo4j.driver.internal.metrics.InternalAbstractMetrics;
43+
import org.neo4j.driver.internal.metrics.InternalMetrics;
44+
import org.neo4j.driver.internal.metrics.spi.Metrics;
4445
import org.neo4j.driver.internal.retry.ExponentialBackoffRetryLogic;
4546
import org.neo4j.driver.internal.retry.RetryLogic;
4647
import org.neo4j.driver.internal.retry.RetrySettings;
@@ -59,8 +60,8 @@
5960
import org.neo4j.driver.v1.exceptions.ServiceUnavailableException;
6061

6162
import static java.lang.String.format;
62-
import static org.neo4j.driver.internal.metrics.InternalAbstractDriverMetrics.DEV_NULL_METRICS;
63-
import static org.neo4j.driver.internal.metrics.spi.DriverMetrics.isDriverMetricsEnabled;
63+
import static org.neo4j.driver.internal.metrics.InternalAbstractMetrics.DEV_NULL_METRICS;
64+
import static org.neo4j.driver.internal.metrics.spi.Metrics.isMetricsEnabled;
6465
import static org.neo4j.driver.internal.security.SecurityPlan.insecure;
6566

6667
public class DriverFactory
@@ -82,19 +83,17 @@ public final Driver newInstance( URI uri, AuthToken authToken, RoutingSettings r
8283
EventExecutorGroup eventExecutorGroup = bootstrap.config().group();
8384
RetryLogic retryLogic = createRetryLogic( retrySettings, eventExecutorGroup, config.logging() );
8485

85-
InternalAbstractDriverMetrics metrics = createDriverMetrics( config );
86+
InternalAbstractMetrics metrics = createDriverMetrics( config );
8687
ConnectionPool connectionPool = createConnectionPool( authToken, securityPlan, bootstrap, metrics, config );
8788

88-
InternalDriver driver = createDriver( uri, address, connectionPool, config, newRoutingSettings,
89-
eventExecutorGroup, securityPlan, retryLogic );
89+
InternalDriver driver = createDriver( uri, securityPlan, address, connectionPool, eventExecutorGroup, newRoutingSettings, retryLogic, metrics, config );
9090

91-
driver.driverMetrics( metrics );
9291
verifyConnectivity( driver, connectionPool, config );
9392

9493
return driver;
9594
}
9695

97-
protected ConnectionPool createConnectionPool( AuthToken authToken, SecurityPlan securityPlan, Bootstrap bootstrap, DriverMetricsListener metrics, Config config )
96+
protected ConnectionPool createConnectionPool( AuthToken authToken, SecurityPlan securityPlan, Bootstrap bootstrap, MetricsListener metrics, Config config )
9897
{
9998
Clock clock = createClock();
10099
ConnectionSettings settings = new ConnectionSettings( authToken, config.connectionTimeoutMillis() );
@@ -106,11 +105,11 @@ protected ConnectionPool createConnectionPool( AuthToken authToken, SecurityPlan
106105
return new ConnectionPoolImpl( connector, bootstrap, poolSettings, metrics, config.logging(), clock );
107106
}
108107

109-
protected static InternalAbstractDriverMetrics createDriverMetrics( Config config )
108+
protected static InternalAbstractMetrics createDriverMetrics( Config config )
110109
{
111-
if( isDriverMetricsEnabled() )
110+
if( isMetricsEnabled() )
112111
{
113-
return new InternalDriverMetrics( config );
112+
return new InternalMetrics( config );
114113
}
115114
else
116115
{
@@ -124,9 +123,8 @@ protected ChannelConnector createConnector( ConnectionSettings settings, Securit
124123
return new ChannelConnectorImpl( settings, securityPlan, config.logging(), clock );
125124
}
126125

127-
private InternalDriver createDriver( URI uri, BoltServerAddress address,
128-
ConnectionPool connectionPool, Config config, RoutingSettings routingSettings,
129-
EventExecutorGroup eventExecutorGroup, SecurityPlan securityPlan, RetryLogic retryLogic )
126+
private InternalDriver createDriver( URI uri, SecurityPlan securityPlan, BoltServerAddress address, ConnectionPool connectionPool,
127+
EventExecutorGroup eventExecutorGroup, RoutingSettings routingSettings, RetryLogic retryLogic, Metrics metrics, Config config )
130128
{
131129
try
132130
{
@@ -135,10 +133,9 @@ private InternalDriver createDriver( URI uri, BoltServerAddress address,
135133
{
136134
case BOLT_URI_SCHEME:
137135
assertNoRoutingContext( uri, routingSettings );
138-
return createDirectDriver( address, config, securityPlan, retryLogic, connectionPool );
136+
return createDirectDriver( securityPlan, address, connectionPool, retryLogic, metrics, config );
139137
case BOLT_ROUTING_URI_SCHEME:
140-
return createRoutingDriver( address, connectionPool, config, routingSettings, securityPlan, retryLogic,
141-
eventExecutorGroup );
138+
return createRoutingDriver( securityPlan, address, connectionPool, eventExecutorGroup, routingSettings, retryLogic, metrics, config );
142139
default:
143140
throw new ClientException( format( "Unsupported URI scheme: %s", scheme ) );
144141
}
@@ -156,22 +153,21 @@ private InternalDriver createDriver( URI uri, BoltServerAddress address,
156153
* <p>
157154
* <b>This method is protected only for testing</b>
158155
*/
159-
protected InternalDriver createDirectDriver( BoltServerAddress address, Config config,
160-
SecurityPlan securityPlan, RetryLogic retryLogic, ConnectionPool connectionPool )
156+
protected InternalDriver createDirectDriver( SecurityPlan securityPlan, BoltServerAddress address, ConnectionPool connectionPool, RetryLogic retryLogic,
157+
Metrics metrics, Config config )
161158
{
162159
ConnectionProvider connectionProvider = new DirectConnectionProvider( address, connectionPool );
163160
SessionFactory sessionFactory = createSessionFactory( connectionProvider, retryLogic, config );
164-
return createDriver( sessionFactory, securityPlan, config );
161+
return createDriver( securityPlan, sessionFactory, metrics, config );
165162
}
166163

167164
/**
168165
* Creates new a new driver for "bolt+routing" scheme.
169166
* <p>
170167
* <b>This method is protected only for testing</b>
171168
*/
172-
protected InternalDriver createRoutingDriver( BoltServerAddress address, ConnectionPool connectionPool,
173-
Config config, RoutingSettings routingSettings, SecurityPlan securityPlan, RetryLogic retryLogic,
174-
EventExecutorGroup eventExecutorGroup )
169+
protected InternalDriver createRoutingDriver( SecurityPlan securityPlan, BoltServerAddress address, ConnectionPool connectionPool,
170+
EventExecutorGroup eventExecutorGroup, RoutingSettings routingSettings, RetryLogic retryLogic, Metrics metrics, Config config )
175171
{
176172
if ( !securityPlan.isRoutingCompatible() )
177173
{
@@ -180,17 +176,17 @@ protected InternalDriver createRoutingDriver( BoltServerAddress address, Connect
180176
ConnectionProvider connectionProvider = createLoadBalancer( address, connectionPool, eventExecutorGroup,
181177
config, routingSettings );
182178
SessionFactory sessionFactory = createSessionFactory( connectionProvider, retryLogic, config );
183-
return createDriver( sessionFactory, securityPlan, config );
179+
return createDriver( securityPlan, sessionFactory, metrics, config );
184180
}
185181

186182
/**
187183
* Creates new {@link Driver}.
188184
* <p>
189185
* <b>This method is protected only for testing</b>
190186
*/
191-
protected InternalDriver createDriver( SessionFactory sessionFactory, SecurityPlan securityPlan, Config config )
187+
protected InternalDriver createDriver( SecurityPlan securityPlan, SessionFactory sessionFactory, Metrics metrics, Config config )
192188
{
193-
return new InternalDriver( securityPlan, sessionFactory, config.logging() );
189+
return new InternalDriver( securityPlan, sessionFactory, metrics, config.logging() );
194190
}
195191

196192
/**

driver/src/main/java/org/neo4j/driver/internal/InternalDriver.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.concurrent.CompletionStage;
2222
import java.util.concurrent.atomic.AtomicBoolean;
2323

24-
import org.neo4j.driver.internal.metrics.spi.DriverMetrics;
24+
import org.neo4j.driver.internal.metrics.spi.Metrics;
2525
import org.neo4j.driver.internal.security.SecurityPlan;
2626
import org.neo4j.driver.internal.util.Futures;
2727
import org.neo4j.driver.v1.AccessMode;
@@ -39,12 +39,13 @@ public class InternalDriver implements Driver
3939
private final Logger log;
4040

4141
private AtomicBoolean closed = new AtomicBoolean( false );
42-
private DriverMetrics driverMetrics;
42+
private final Metrics metrics;
4343

44-
InternalDriver( SecurityPlan securityPlan, SessionFactory sessionFactory, Logging logging )
44+
InternalDriver( SecurityPlan securityPlan, SessionFactory sessionFactory, Metrics metrics, Logging logging )
4545
{
4646
this.securityPlan = securityPlan;
4747
this.sessionFactory = sessionFactory;
48+
this.metrics = metrics;
4849
this.log = logging.getLog( Driver.class.getSimpleName() );
4950
log.info( "Driver instance %s created", this );
5051
}
@@ -146,14 +147,9 @@ private void assertOpen()
146147
}
147148
}
148149

149-
public DriverMetrics driverMetrics()
150+
public Metrics metrics()
150151
{
151-
return this.driverMetrics;
152-
}
153-
154-
void driverMetrics( DriverMetrics driverMetrics )
155-
{
156-
this.driverMetrics = driverMetrics;
152+
return this.metrics;
157153
}
158154

159155
private static RuntimeException driverCloseException()

driver/src/main/java/org/neo4j/driver/internal/async/NettyConnection.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@
3434
import org.neo4j.driver.internal.messaging.PullAllMessage;
3535
import org.neo4j.driver.internal.messaging.ResetMessage;
3636
import org.neo4j.driver.internal.messaging.RunMessage;
37-
import org.neo4j.driver.internal.metrics.DriverMetricsListener;
38-
import org.neo4j.driver.internal.metrics.ListenerEvent.ConnectionListenerEvent;
37+
import org.neo4j.driver.internal.metrics.ListenerEvent;
38+
import org.neo4j.driver.internal.metrics.MetricsListener;
3939
import org.neo4j.driver.internal.spi.Connection;
4040
import org.neo4j.driver.internal.spi.ResponseHandler;
4141
import org.neo4j.driver.internal.util.Clock;
@@ -56,10 +56,10 @@ public class NettyConnection implements Connection
5656
private final Clock clock;
5757

5858
private final AtomicReference<Status> status = new AtomicReference<>( Status.OPEN );
59-
private final DriverMetricsListener metricsListener;
60-
private final ConnectionListenerEvent inUseEvent;
59+
private final MetricsListener metricsListener;
60+
private final ListenerEvent inUseEvent;
6161

62-
public NettyConnection( Channel channel, ChannelPool channelPool, Clock clock, DriverMetricsListener driverMetricsListener )
62+
public NettyConnection( Channel channel, ChannelPool channelPool, Clock clock, MetricsListener metricsListener )
6363
{
6464
this.channel = channel;
6565
this.messageDispatcher = ChannelAttributes.messageDispatcher( channel );
@@ -68,9 +68,9 @@ public NettyConnection( Channel channel, ChannelPool channelPool, Clock clock, D
6868
this.channelPool = channelPool;
6969
this.releaseFuture = new CompletableFuture<>();
7070
this.clock = clock;
71-
this.metricsListener = driverMetricsListener;
72-
this.inUseEvent = driverMetricsListener.createConnectionListenerEvent();
73-
driverMetricsListener.afterAcquiredOrCreated( this.serverAddress, this.inUseEvent );
71+
this.metricsListener = metricsListener;
72+
this.inUseEvent = metricsListener.createListenerEvent();
73+
metricsListener.afterAcquiredOrCreated( this.serverAddress, this.inUseEvent );
7474
}
7575

7676
@Override

driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
import org.neo4j.driver.internal.BoltServerAddress;
3737
import org.neo4j.driver.internal.async.ChannelConnector;
3838
import org.neo4j.driver.internal.async.NettyConnection;
39-
import org.neo4j.driver.internal.metrics.DriverMetricsListener;
40-
import org.neo4j.driver.internal.metrics.ListenerEvent.PoolListenerEvent;
39+
import org.neo4j.driver.internal.metrics.ListenerEvent;
40+
import org.neo4j.driver.internal.metrics.MetricsListener;
4141
import org.neo4j.driver.internal.spi.Connection;
4242
import org.neo4j.driver.internal.spi.ConnectionPool;
4343
import org.neo4j.driver.internal.util.Clock;
@@ -55,26 +55,26 @@ public class ConnectionPoolImpl implements ConnectionPool
5555
private final PoolSettings settings;
5656
private final Clock clock;
5757
private final Logger log;
58-
private DriverMetricsListener driverMetricsListener;
58+
private MetricsListener metricsListener;
5959

6060
private final ConcurrentMap<BoltServerAddress,ChannelPool> pools = new ConcurrentHashMap<>();
6161
private final AtomicBoolean closed = new AtomicBoolean();
6262

6363
public ConnectionPoolImpl( ChannelConnector connector, Bootstrap bootstrap, PoolSettings settings,
64-
DriverMetricsListener metricsListener, Logging logging, Clock clock )
64+
MetricsListener metricsListener, Logging logging, Clock clock )
6565
{
6666
this( connector, bootstrap, new NettyChannelTracker( metricsListener, logging ), settings, metricsListener, logging, clock );
6767
}
6868

6969
ConnectionPoolImpl( ChannelConnector connector, Bootstrap bootstrap, NettyChannelTracker nettyChannelTracker,
70-
PoolSettings settings, DriverMetricsListener metricsListener, Logging logging, Clock clock )
70+
PoolSettings settings, MetricsListener metricsListener, Logging logging, Clock clock )
7171
{
7272
this.connector = connector;
7373
this.bootstrap = bootstrap;
7474
this.nettyChannelTracker = nettyChannelTracker;
7575
this.channelHealthChecker = new NettyChannelHealthChecker( settings, clock, logging );
7676
this.settings = settings;
77-
this.driverMetricsListener = metricsListener;
77+
this.metricsListener = metricsListener;
7878
this.clock = clock;
7979
this.log = logging.getLog( ConnectionPool.class.getSimpleName() );
8080
}
@@ -87,8 +87,8 @@ public CompletionStage<Connection> acquire( BoltServerAddress address )
8787
assertNotClosed();
8888
ChannelPool pool = getOrCreatePool( address );
8989

90-
PoolListenerEvent acquireEvent = driverMetricsListener.createPoolListenerEvent();
91-
driverMetricsListener.beforeAcquiringOrCreating( address, acquireEvent );
90+
ListenerEvent acquireEvent = metricsListener.createListenerEvent();
91+
metricsListener.beforeAcquiringOrCreating( address, acquireEvent );
9292
Future<Channel> connectionFuture = pool.acquire();
9393

9494
return Futures.asCompletionStage( connectionFuture ).handle( ( channel, error ) ->
@@ -97,11 +97,11 @@ public CompletionStage<Connection> acquire( BoltServerAddress address )
9797
{
9898
processAcquisitionError( error );
9999
assertNotClosed( address, channel, pool );
100-
return new NettyConnection( channel, pool, clock, driverMetricsListener );
100+
return new NettyConnection( channel, pool, clock, metricsListener );
101101
}
102102
finally
103103
{
104-
driverMetricsListener.afterAcquiringOrCreating( address, acquireEvent );
104+
metricsListener.afterAcquiringOrCreating( address, acquireEvent );
105105
}
106106
} );
107107
}
@@ -192,7 +192,7 @@ private ChannelPool getOrCreatePool( BoltServerAddress address )
192192
return pool;
193193
}
194194

195-
driverMetricsListener.addMetrics( address, this );
195+
metricsListener.addMetrics( address, this );
196196
pool = newPool( address );
197197
pools.put( address, pool );
198198
}

driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelPool.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
import org.neo4j.driver.internal.BoltServerAddress;
2828
import org.neo4j.driver.internal.async.ChannelConnector;
29-
import org.neo4j.driver.internal.metrics.ListenerEvent.ConnectionListenerEvent;
29+
import org.neo4j.driver.internal.metrics.ListenerEvent;
3030

3131
import static java.util.Objects.requireNonNull;
3232

@@ -60,7 +60,7 @@ public NettyChannelPool( BoltServerAddress address, ChannelConnector connector,
6060
@Override
6161
protected ChannelFuture connectChannel( Bootstrap bootstrap )
6262
{
63-
ConnectionListenerEvent creatingEvent = handler.beforeChannelCreating( address );
63+
ListenerEvent creatingEvent = handler.beforeChannelCreating( address );
6464
ChannelFuture channelFuture = connector.connect( address, bootstrap );
6565
channelFuture.addListener( future ->
6666
{

driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelTracker.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626
import java.util.concurrent.atomic.AtomicInteger;
2727

2828
import org.neo4j.driver.internal.BoltServerAddress;
29-
import org.neo4j.driver.internal.metrics.DriverMetricsListener;
30-
import org.neo4j.driver.internal.metrics.ListenerEvent.ConnectionListenerEvent;
29+
import org.neo4j.driver.internal.metrics.ListenerEvent;
30+
import org.neo4j.driver.internal.metrics.MetricsListener;
3131
import org.neo4j.driver.v1.Logger;
3232
import org.neo4j.driver.v1.Logging;
3333

@@ -38,9 +38,9 @@ public class NettyChannelTracker implements ChannelPoolHandler
3838
private final Map<BoltServerAddress,AtomicInteger> addressToInUseChannelCount = new ConcurrentHashMap<>();
3939
private final Map<BoltServerAddress,AtomicInteger> addressToIdleChannelCount = new ConcurrentHashMap<>();
4040
private final Logger log;
41-
private DriverMetricsListener metricsListener;
41+
private final MetricsListener metricsListener;
4242

43-
public NettyChannelTracker( DriverMetricsListener metricsListener, Logging logging )
43+
public NettyChannelTracker( MetricsListener metricsListener, Logging logging )
4444
{
4545
this.metricsListener = metricsListener;
4646
this.log = logging.getLog( getClass().getSimpleName() );
@@ -75,14 +75,14 @@ public void channelFailedToCreate( BoltServerAddress address )
7575
metricsListener.afterFailedToCreate( address );
7676
}
7777

78-
public ConnectionListenerEvent beforeChannelCreating( BoltServerAddress address )
78+
public ListenerEvent beforeChannelCreating( BoltServerAddress address )
7979
{
80-
ConnectionListenerEvent creatingEvent = metricsListener.createConnectionListenerEvent();
80+
ListenerEvent creatingEvent = metricsListener.createListenerEvent();
8181
metricsListener.beforeCreating( address, creatingEvent );
8282
return creatingEvent;
8383
}
8484

85-
public void afterChannelCreating( BoltServerAddress address, ConnectionListenerEvent creatingEvent )
85+
public void afterChannelCreating( BoltServerAddress address, ListenerEvent creatingEvent )
8686
{
8787
metricsListener.afterCreating( address, creatingEvent );
8888
}

driver/src/main/java/org/neo4j/driver/internal/metrics/HistogramSnapshot.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
public class HistogramSnapshot implements Histogram
2424
{
25-
private Histogram copy;
26-
private Histogram origin;
25+
private final Histogram copy;
26+
private final Histogram origin;
2727

2828
public HistogramSnapshot( Histogram copy, Histogram origin )
2929
{

0 commit comments

Comments
 (0)