Skip to content

Commit c3d3459

Browse files
committed
wip
1 parent bfab2a4 commit c3d3459

File tree

7 files changed

+45
-41
lines changed

7 files changed

+45
-41
lines changed

driver/src/main/java/org/neo4j/driver/internal/cluster/RediscoveryImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
import org.neo4j.driver.Bookmark;
3535
import org.neo4j.driver.Logger;
36+
import org.neo4j.driver.Logging;
3637
import org.neo4j.driver.exceptions.DiscoveryException;
3738
import org.neo4j.driver.exceptions.FatalDiscoveryException;
3839
import org.neo4j.driver.exceptions.SecurityException;
@@ -69,11 +70,11 @@ public class RediscoveryImpl implements Rediscovery
6970
private final DomainNameResolver domainNameResolver;
7071

7172
public RediscoveryImpl( BoltServerAddress initialRouter, RoutingSettings settings, ClusterCompositionProvider provider,
72-
EventExecutorGroup eventExecutorGroup, ServerAddressResolver resolver, Logger logger, DomainNameResolver domainNameResolver )
73+
EventExecutorGroup eventExecutorGroup, ServerAddressResolver resolver, Logging logging, DomainNameResolver domainNameResolver )
7374
{
7475
this.initialRouter = initialRouter;
7576
this.settings = settings;
76-
this.logger = logger;
77+
this.logger = logging.getLog( getClass() );
7778
this.provider = provider;
7879
this.resolver = resolver;
7980
this.eventExecutorGroup = eventExecutorGroup;

driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImpl.java

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

2828
import org.neo4j.driver.Logger;
29+
import org.neo4j.driver.Logging;
2930
import org.neo4j.driver.internal.BoltServerAddress;
3031
import org.neo4j.driver.internal.DatabaseName;
3132
import org.neo4j.driver.internal.async.ConnectionContext;
@@ -38,16 +39,16 @@ public class RoutingTableRegistryImpl implements RoutingTableRegistry
3839
private final RoutingTableHandlerFactory factory;
3940
private final Logger logger;
4041

41-
public RoutingTableRegistryImpl( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logger logger, long routingTablePurgeDelayMs )
42+
public RoutingTableRegistryImpl( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logging logging, long routingTablePurgeDelayMs )
4243
{
43-
this( new ConcurrentHashMap<>(), new RoutingTableHandlerFactory( connectionPool, rediscovery, clock, logger, routingTablePurgeDelayMs ), logger );
44+
this( new ConcurrentHashMap<>(), new RoutingTableHandlerFactory( connectionPool, rediscovery, clock, logging, routingTablePurgeDelayMs ), logging );
4445
}
4546

46-
RoutingTableRegistryImpl( ConcurrentMap<DatabaseName,RoutingTableHandler> routingTableHandlers, RoutingTableHandlerFactory factory, Logger logger )
47+
RoutingTableRegistryImpl( ConcurrentMap<DatabaseName,RoutingTableHandler> routingTableHandlers, RoutingTableHandlerFactory factory, Logging logging )
4748
{
4849
this.factory = factory;
4950
this.routingTableHandlers = routingTableHandlers;
50-
this.logger = logger;
51+
this.logger = logging.getLog( getClass() );
5152
}
5253

5354
@Override
@@ -124,12 +125,12 @@ static class RoutingTableHandlerFactory
124125
private final Clock clock;
125126
private final long routingTablePurgeDelayMs;
126127

127-
RoutingTableHandlerFactory( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logger log, long routingTablePurgeDelayMs )
128+
RoutingTableHandlerFactory( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logging logging, long routingTablePurgeDelayMs )
128129
{
129130
this.connectionPool = connectionPool;
130131
this.rediscovery = rediscovery;
131132
this.clock = clock;
132-
this.log = log;
133+
this.log = logging.getLog( getClass() );
133134
this.routingTablePurgeDelayMs = routingTablePurgeDelayMs;
134135
}
135136

driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancer.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -81,25 +81,26 @@ public LoadBalancer( BoltServerAddress initialRouter, RoutingSettings settings,
8181
this( connectionPool, createRediscovery( eventExecutorGroup, initialRouter, resolver, settings, clock, logging, requireNonNull( domainNameResolver ) ),
8282
settings,
8383
loadBalancingStrategy,
84-
eventExecutorGroup, clock, loadBalancerLogger( logging ) );
84+
eventExecutorGroup, clock, logging );
8585
}
8686

8787
private LoadBalancer( ConnectionPool connectionPool, Rediscovery rediscovery, RoutingSettings settings, LoadBalancingStrategy loadBalancingStrategy,
88-
EventExecutorGroup eventExecutorGroup, Clock clock, Logger log )
88+
EventExecutorGroup eventExecutorGroup, Clock clock, Logging logging )
8989
{
90-
this( connectionPool, createRoutingTables( connectionPool, rediscovery, settings, clock, log ), rediscovery, loadBalancingStrategy, eventExecutorGroup,
91-
log );
90+
this( connectionPool, createRoutingTables( connectionPool, rediscovery, settings, clock, logging ), rediscovery, loadBalancingStrategy,
91+
eventExecutorGroup,
92+
logging );
9293
}
9394

9495
LoadBalancer( ConnectionPool connectionPool, RoutingTableRegistry routingTables, Rediscovery rediscovery, LoadBalancingStrategy loadBalancingStrategy,
95-
EventExecutorGroup eventExecutorGroup, Logger log )
96+
EventExecutorGroup eventExecutorGroup, Logging logging )
9697
{
9798
this.connectionPool = connectionPool;
9899
this.routingTables = routingTables;
99100
this.rediscovery = rediscovery;
100101
this.loadBalancingStrategy = loadBalancingStrategy;
101102
this.eventExecutorGroup = eventExecutorGroup;
102-
this.log = log;
103+
this.log = logging.getLog( getClass() );
103104
}
104105

105106
@Override
@@ -268,22 +269,16 @@ private BoltServerAddress selectAddress( AccessMode mode, AddressSet servers )
268269
}
269270

270271
private static RoutingTableRegistry createRoutingTables( ConnectionPool connectionPool, Rediscovery rediscovery, RoutingSettings settings, Clock clock,
271-
Logger log )
272+
Logging logging )
272273
{
273-
return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, log, settings.routingTablePurgeDelayMs() );
274+
return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, logging, settings.routingTablePurgeDelayMs() );
274275
}
275276

276277
private static Rediscovery createRediscovery( EventExecutorGroup eventExecutorGroup, BoltServerAddress initialRouter, ServerAddressResolver resolver,
277278
RoutingSettings settings, Clock clock, Logging logging, DomainNameResolver domainNameResolver )
278279
{
279-
Logger log = loadBalancerLogger( logging );
280280
ClusterCompositionProvider clusterCompositionProvider = new RoutingProcedureClusterCompositionProvider( clock, settings.routingContext() );
281-
return new RediscoveryImpl( initialRouter, settings, clusterCompositionProvider, eventExecutorGroup, resolver, log, domainNameResolver );
282-
}
283-
284-
private static Logger loadBalancerLogger( Logging logging )
285-
{
286-
return logging.getLog( LoadBalancer.class );
281+
return new RediscoveryImpl( initialRouter, settings, clusterCompositionProvider, eventExecutorGroup, resolver, logging, domainNameResolver );
287282
}
288283

289284
private static RuntimeException unknownMode( AccessMode mode )

driver/src/test/java/org/neo4j/driver/internal/cluster/RediscoveryTest.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.Map;
3131

3232
import org.neo4j.driver.Logger;
33+
import org.neo4j.driver.Logging;
3334
import org.neo4j.driver.exceptions.AuthenticationException;
3435
import org.neo4j.driver.exceptions.DiscoveryException;
3536
import org.neo4j.driver.exceptions.ProtocolException;
@@ -40,6 +41,7 @@
4041
import org.neo4j.driver.internal.DefaultDomainNameResolver;
4142
import org.neo4j.driver.internal.DomainNameResolver;
4243
import org.neo4j.driver.internal.InternalBookmark;
44+
import org.neo4j.driver.internal.logging.DevNullLogging;
4345
import org.neo4j.driver.internal.spi.Connection;
4446
import org.neo4j.driver.internal.spi.ConnectionPool;
4547
import org.neo4j.driver.internal.util.FakeClock;
@@ -65,7 +67,6 @@
6567
import static org.mockito.Mockito.when;
6668
import static org.neo4j.driver.internal.DatabaseNameUtil.defaultDatabase;
6769
import static org.neo4j.driver.internal.InternalBookmark.empty;
68-
import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER;
6970
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A;
7071
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B;
7172
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.C;
@@ -176,10 +177,12 @@ void shouldFailImmediatelyWhenClusterCompositionProviderReturnsFailure()
176177
responsesByAddress.put( B, protocolError ); // first -> fatal failure
177178
responsesByAddress.put( C, validComposition ); // second -> valid cluster composition
178179

180+
Logging logging = mock( Logging.class );
179181
Logger logger = mock( Logger.class );
182+
when( logging.getLog( any( Class.class ) ) ).thenReturn( logger );
180183

181184
ClusterCompositionProvider compositionProvider = compositionProviderMock( responsesByAddress );
182-
Rediscovery rediscovery = newRediscovery( A, compositionProvider, mock( ServerAddressResolver.class ), logger );
185+
Rediscovery rediscovery = newRediscovery( A, compositionProvider, mock( ServerAddressResolver.class ), logging );
183186
RoutingTable table = routingTableMock( B, C );
184187

185188
// When
@@ -189,6 +192,7 @@ void shouldFailImmediatelyWhenClusterCompositionProviderReturnsFailure()
189192
ArgumentCaptor<String> warningMessageCaptor = ArgumentCaptor.forClass( String.class );
190193
ArgumentCaptor<String> debugMessageCaptor = ArgumentCaptor.forClass( String.class );
191194
ArgumentCaptor<DiscoveryException> debugThrowableCaptor = ArgumentCaptor.forClass( DiscoveryException.class );
195+
verify( logging ).getLog( RediscoveryImpl.class );
192196
verify( logger ).warn( warningMessageCaptor.capture() );
193197
verify( logger ).debug( debugMessageCaptor.capture(), debugThrowableCaptor.capture() );
194198
assertNotNull( warningMessageCaptor.getValue() );
@@ -383,7 +387,8 @@ void shouldRetryConfiguredNumberOfTimesWithDelay()
383387
ImmediateSchedulingEventExecutor eventExecutor = new ImmediateSchedulingEventExecutor();
384388
RoutingSettings settings = new RoutingSettings( maxRoutingFailures, retryTimeoutDelay, 0 );
385389
Rediscovery rediscovery =
386-
new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, DEV_NULL_LOGGER, DefaultDomainNameResolver.getInstance() );
390+
new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, DevNullLogging.DEV_NULL_LOGGING,
391+
DefaultDomainNameResolver.getInstance() );
387392
RoutingTable table = routingTableMock( A, B );
388393

389394
ClusterComposition actualComposition = await( rediscovery.lookupClusterComposition( table, pool, empty() ) ).getClusterComposition();
@@ -406,16 +411,19 @@ void shouldNotLogWhenSingleRetryAttemptFails()
406411

407412
ImmediateSchedulingEventExecutor eventExecutor = new ImmediateSchedulingEventExecutor();
408413
RoutingSettings settings = new RoutingSettings( maxRoutingFailures, retryTimeoutDelay, 0 );
414+
Logging logging = mock( Logging.class );
409415
Logger logger = mock( Logger.class );
416+
when( logging.getLog( any( Class.class ) ) ).thenReturn( logger );
410417
Rediscovery rediscovery =
411-
new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, logger, DefaultDomainNameResolver.getInstance() );
418+
new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, logging, DefaultDomainNameResolver.getInstance() );
412419
RoutingTable table = routingTableMock( A );
413420

414421
ServiceUnavailableException e =
415422
assertThrows( ServiceUnavailableException.class, () -> await( rediscovery.lookupClusterComposition( table, pool, empty() ) ) );
416423
assertThat( e.getMessage(), containsString( "Could not perform discovery" ) );
417424

418425
// rediscovery should not log about retries and should not schedule any retries
426+
verify( logging ).getLog( RediscoveryImpl.class );
419427
verify( logger, never() ).info( startsWith( "Unable to fetch new routing table, will try again in " ) );
420428
assertEquals( 0, eventExecutor.scheduleDelays().size() );
421429
}
@@ -440,14 +448,14 @@ void shouldResolveToIP() throws UnknownHostException
440448
private Rediscovery newRediscovery( BoltServerAddress initialRouter, ClusterCompositionProvider compositionProvider,
441449
ServerAddressResolver resolver )
442450
{
443-
return newRediscovery( initialRouter, compositionProvider, resolver, DEV_NULL_LOGGER );
451+
return newRediscovery( initialRouter, compositionProvider, resolver, DevNullLogging.DEV_NULL_LOGGING );
444452
}
445453

446454
private Rediscovery newRediscovery( BoltServerAddress initialRouter, ClusterCompositionProvider compositionProvider,
447-
ServerAddressResolver resolver, Logger logger )
455+
ServerAddressResolver resolver, Logging logging )
448456
{
449457
RoutingSettings settings = new RoutingSettings( 1, 0, 0 );
450-
return new RediscoveryImpl( initialRouter, settings, compositionProvider, GlobalEventExecutor.INSTANCE, resolver, logger,
458+
return new RediscoveryImpl( initialRouter, settings, compositionProvider, GlobalEventExecutor.INSTANCE, resolver, logging,
451459
DefaultDomainNameResolver.getInstance() );
452460
}
453461

driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImplTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
import static org.neo4j.driver.internal.DatabaseNameUtil.database;
5656
import static org.neo4j.driver.internal.DatabaseNameUtil.defaultDatabase;
5757
import static org.neo4j.driver.internal.cluster.RoutingSettings.STALE_ROUTING_TABLE_PURGE_DELAY_MS;
58-
import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER;
58+
import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING;
5959
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A;
6060
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B;
6161
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.C;
@@ -71,8 +71,8 @@ void factoryShouldCreateARoutingTableWithSameDatabaseName() throws Throwable
7171
{
7272
Clock clock = Clock.SYSTEM;
7373
RoutingTableHandlerFactory factory =
74-
new RoutingTableHandlerFactory( mock( ConnectionPool.class ), mock( RediscoveryImpl.class ), clock, DEV_NULL_LOGGER,
75-
STALE_ROUTING_TABLE_PURGE_DELAY_MS );
74+
new RoutingTableHandlerFactory( mock( ConnectionPool.class ), mock( RediscoveryImpl.class ), clock, DEV_NULL_LOGGING,
75+
STALE_ROUTING_TABLE_PURGE_DELAY_MS );
7676

7777
RoutingTableHandler handler = factory.newInstance( database( "Molly" ), null );
7878
RoutingTable table = handler.routingTable();
@@ -136,7 +136,7 @@ void shouldReturnFreshRoutingTable( AccessMode mode ) throws Throwable
136136
ConcurrentMap<DatabaseName,RoutingTableHandler> map = new ConcurrentHashMap<>();
137137
RoutingTableHandler handler = mockedRoutingTableHandler();
138138
RoutingTableHandlerFactory factory = mockedHandlerFactory( handler );
139-
RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGER );
139+
RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGING );
140140

141141
ImmutableConnectionContext context = new ImmutableConnectionContext( defaultDatabase(), InternalBookmark.empty(), mode );
142142
// When
@@ -155,7 +155,7 @@ void shouldReturnServersInAllRoutingTables() throws Throwable
155155
map.put( database( "Banana" ), mockedRoutingTableHandler( B, C, D ) );
156156
map.put( database( "Orange" ), mockedRoutingTableHandler( E, F, C ) );
157157
RoutingTableHandlerFactory factory = mockedHandlerFactory();
158-
RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGER );
158+
RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGING );
159159

160160
// When
161161
Set<BoltServerAddress> servers = routingTables.allServers();
@@ -210,7 +210,7 @@ private RoutingTableHandler mockedRoutingTableHandler( BoltServerAddress... serv
210210

211211
private RoutingTableRegistryImpl newRoutingTables( ConcurrentMap<DatabaseName,RoutingTableHandler> handlers, RoutingTableHandlerFactory factory )
212212
{
213-
return new RoutingTableRegistryImpl( handlers, factory, DEV_NULL_LOGGER );
213+
return new RoutingTableRegistryImpl( handlers, factory, DEV_NULL_LOGGING );
214214
}
215215

216216
private RoutingTableHandlerFactory mockedHandlerFactory( RoutingTableHandler handler )

driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancerTest.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878
import static org.neo4j.driver.internal.async.ImmutableConnectionContext.simple;
7979
import static org.neo4j.driver.internal.cluster.RediscoveryUtil.contextWithDatabase;
8080
import static org.neo4j.driver.internal.cluster.RediscoveryUtil.contextWithMode;
81-
import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER;
8281
import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING;
8382
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A;
8483
import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B;
@@ -414,7 +413,7 @@ private static LoadBalancer newLoadBalancer( ConnectionPool connectionPool, Rout
414413
when( routingTables.ensureRoutingTable( any( ConnectionContext.class ) ) ).thenReturn( CompletableFuture.completedFuture( handler ) );
415414
Rediscovery rediscovery = mock( Rediscovery.class );
416415
return new LoadBalancer( connectionPool, routingTables, rediscovery, new LeastConnectedLoadBalancingStrategy( connectionPool, DEV_NULL_LOGGING ),
417-
GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGER );
416+
GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGING );
418417
}
419418

420419
private static LoadBalancer newLoadBalancer( ConnectionPool connectionPool, Rediscovery rediscovery )
@@ -428,6 +427,6 @@ private static LoadBalancer newLoadBalancer( ConnectionPool connectionPool, Rout
428427
{
429428
// Used only in testing
430429
return new LoadBalancer( connectionPool, routingTables, rediscovery, new LeastConnectedLoadBalancingStrategy( connectionPool, DEV_NULL_LOGGING ),
431-
GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGER );
430+
GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGING );
432431
}
433432
}

driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/RoutingTableAndConnectionPoolTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,14 +322,14 @@ private ConnectionPool newConnectionPool()
322322

323323
private RoutingTableRegistryImpl newRoutingTables( ConnectionPool connectionPool, Rediscovery rediscovery )
324324
{
325-
return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, logging.getLog( "RT" ), STALE_ROUTING_TABLE_PURGE_DELAY_MS );
325+
return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, logging, STALE_ROUTING_TABLE_PURGE_DELAY_MS );
326326
}
327327

328328
private LoadBalancer newLoadBalancer( ConnectionPool connectionPool, RoutingTableRegistry routingTables )
329329
{
330330
Rediscovery rediscovery = mock( Rediscovery.class );
331331
return new LoadBalancer( connectionPool, routingTables, rediscovery, new LeastConnectedLoadBalancingStrategy( connectionPool, logging ),
332-
GlobalEventExecutor.INSTANCE, logging.getLog( "LB" ) );
332+
GlobalEventExecutor.INSTANCE, logging );
333333
}
334334

335335
private CompletableFuture<ClusterCompositionLookupResult> clusterComposition( BoltServerAddress... addresses )

0 commit comments

Comments
 (0)