diff --git a/driver/clirr-ignored-differences.xml b/driver/clirr-ignored-differences.xml index 662b81680e..d48c56e400 100644 --- a/driver/clirr-ignored-differences.xml +++ b/driver/clirr-ignored-differences.xml @@ -25,4 +25,10 @@ void debug(java.lang.String, java.lang.Throwable) + + org/neo4j/driver/Logging + 7012 + org.neo4j.driver.Logger getLog(java.lang.Class) + + diff --git a/driver/src/main/java/org/neo4j/driver/GraphDatabase.java b/driver/src/main/java/org/neo4j/driver/GraphDatabase.java index 830b8d9473..86b98272d2 100644 --- a/driver/src/main/java/org/neo4j/driver/GraphDatabase.java +++ b/driver/src/main/java/org/neo4j/driver/GraphDatabase.java @@ -36,8 +36,6 @@ */ public class GraphDatabase { - private static final String LOGGER_NAME = GraphDatabase.class.getSimpleName(); - /** * Return a driver for a Neo4j instance with the default configuration settings * @@ -206,7 +204,7 @@ private static void assertRoutingUris( Iterable uris ) private static Logger createLogger( Config config ) { Logging logging = getOrDefault( config ).logging(); - return logging.getLog( LOGGER_NAME ); + return logging.getLog( GraphDatabase.class ); } private static Config getOrDefault( Config config ) diff --git a/driver/src/main/java/org/neo4j/driver/Logging.java b/driver/src/main/java/org/neo4j/driver/Logging.java index 60a1204e75..aa2bfd5f08 100644 --- a/driver/src/main/java/org/neo4j/driver/Logging.java +++ b/driver/src/main/java/org/neo4j/driver/Logging.java @@ -87,6 +87,18 @@ */ public interface Logging { + /** + * Obtain a {@link Logger} instance by class, its name will be the fully qualified name of the class. + * + * @param clazz class whose name should be used as the {@link Logger} name. + * @return {@link Logger} instance + */ + default Logger getLog( Class clazz ) + { + String canonicalName = clazz.getCanonicalName(); + return getLog( canonicalName != null ? canonicalName : clazz.getName() ); + } + /** * Obtain a {@link Logger} instance by name. * diff --git a/driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java b/driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java index fe7e31a631..968db9d367 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java +++ b/driver/src/main/java/org/neo4j/driver/internal/DriverFactory.java @@ -169,7 +169,7 @@ protected InternalDriver createDirectDriver( SecurityPlan securityPlan, BoltServ ConnectionProvider connectionProvider = new DirectConnectionProvider( address, connectionPool ); SessionFactory sessionFactory = createSessionFactory( connectionProvider, retryLogic, config ); InternalDriver driver = createDriver( securityPlan, sessionFactory, metricsProvider, config ); - Logger log = config.logging().getLog( Driver.class.getSimpleName() ); + Logger log = config.logging().getLog( getClass() ); log.info( "Direct driver instance %s created for server address %s", driver.hashCode(), address ); return driver; } @@ -186,7 +186,7 @@ protected InternalDriver createRoutingDriver( SecurityPlan securityPlan, BoltSer config, routingSettings ); SessionFactory sessionFactory = createSessionFactory( connectionProvider, retryLogic, config ); InternalDriver driver = createDriver( securityPlan, sessionFactory, metricsProvider, config ); - Logger log = config.logging().getLog( Driver.class.getSimpleName() ); + Logger log = config.logging().getLog( getClass() ); log.info( "Routing driver instance %s created for server address %s", driver.hashCode(), address ); return driver; } diff --git a/driver/src/main/java/org/neo4j/driver/internal/InternalDriver.java b/driver/src/main/java/org/neo4j/driver/internal/InternalDriver.java index 78f5f6ad8a..b2c975da1c 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/InternalDriver.java +++ b/driver/src/main/java/org/neo4j/driver/internal/InternalDriver.java @@ -54,7 +54,7 @@ public class InternalDriver implements Driver this.securityPlan = securityPlan; this.sessionFactory = sessionFactory; this.metricsProvider = metricsProvider; - this.log = logging.getLog( Driver.class.getSimpleName() ); + this.log = logging.getLog( getClass() ); } @Override diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSession.java b/driver/src/main/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSession.java index 141d00bd99..73c999ab2b 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSession.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSession.java @@ -51,9 +51,9 @@ private void logLeakIfNeeded() Boolean isOpen = Futures.blockingGet( currentConnectionIsOpen() ); if ( isOpen ) { - logger.error( "Neo4j Session object leaked, please ensure that your application " + - "fully consumes results in Sessions or explicitly calls `close` on Sessions before disposing of the objects.\n" + - "Session was create at:\n" + stackTrace, null ); + log.error( "Neo4j Session object leaked, please ensure that your application " + + "fully consumes results in Sessions or explicitly calls `close` on Sessions before disposing of the objects.\n" + + "Session was create at:\n" + stackTrace, null ); } } private static String captureStackTrace() diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/NetworkConnection.java b/driver/src/main/java/org/neo4j/driver/internal/async/NetworkConnection.java index 8b6f6c8fbc..84e1c1cc2a 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/NetworkConnection.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/NetworkConnection.java @@ -75,7 +75,7 @@ public class NetworkConnection implements Connection public NetworkConnection( Channel channel, ExtendedChannelPool channelPool, Clock clock, MetricsListener metricsListener, Logging logging ) { - this.log = logging.getLog( this.getClass().getCanonicalName() ); + this.log = logging.getLog( getClass() ); this.channel = channel; this.messageDispatcher = ChannelAttributes.messageDispatcher( channel ); this.serverAgent = ChannelAttributes.serverAgent( channel ); diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/NetworkSession.java b/driver/src/main/java/org/neo4j/driver/internal/async/NetworkSession.java index 022ec8d2c0..1ff1aabe66 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/NetworkSession.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/NetworkSession.java @@ -48,13 +48,11 @@ public class NetworkSession { - private static final String LOG_NAME = "Session"; - private final ConnectionProvider connectionProvider; private final NetworkSessionConnectionContext connectionContext; private final AccessMode mode; private final RetryLogic retryLogic; - protected final Logger logger; + protected final Logger log; private final BookmarkHolder bookmarkHolder; private final long fetchSize; @@ -70,7 +68,7 @@ public NetworkSession( ConnectionProvider connectionProvider, RetryLogic retryLo this.connectionProvider = connectionProvider; this.mode = mode; this.retryLogic = retryLogic; - this.logger = new PrefixedLogger( "[" + hashCode() + "]", logging.getLog( LOG_NAME ) ); + this.log = new PrefixedLogger( "[" + hashCode() + "]", logging.getLog( getClass() ) ); this.bookmarkHolder = bookmarkHolder; this.connectionContext = new NetworkSessionConnectionContext( databaseName, bookmarkHolder.getBookmark() ); this.fetchSize = fetchSize; diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java b/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java index 479d5bdb08..03c7b8a2d2 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/pool/ConnectionPoolImpl.java @@ -85,7 +85,7 @@ protected ConnectionPoolImpl( ChannelConnector connector, Bootstrap bootstrap, N this.channelHealthChecker = nettyChannelHealthChecker; this.settings = settings; this.metricsListener = metricsListener; - this.log = logging.getLog( ConnectionPool.class.getSimpleName() ); + this.log = logging.getLog( getClass() ); this.ownsEventLoopGroup = ownsEventLoopGroup; this.connectionFactory = connectionFactory; } diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelHealthChecker.java b/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelHealthChecker.java index 792ad0bbd1..f337f01deb 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelHealthChecker.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelHealthChecker.java @@ -42,6 +42,7 @@ public class NettyChannelHealthChecker implements ChannelHealthChecker, Authoriz { private final PoolSettings poolSettings; private final Clock clock; + private final Logging logging; private final Logger log; private final AtomicReference> minCreationTimestampMillisOpt; @@ -49,7 +50,8 @@ public NettyChannelHealthChecker( PoolSettings poolSettings, Clock clock, Loggin { this.poolSettings = poolSettings; this.clock = clock; - this.log = logging.getLog( getClass().getSimpleName() ); + this.logging = logging; + this.log = logging.getLog( getClass() ); this.minCreationTimestampMillisOpt = new AtomicReference<>( Optional.empty() ); } @@ -129,7 +131,7 @@ private boolean hasBeenIdleForTooLong( Channel channel ) private Future ping( Channel channel ) { Promise result = channel.eventLoop().newPromise(); - messageDispatcher( channel ).enqueue( new PingResponseHandler( result, channel, log ) ); + messageDispatcher( channel ).enqueue( new PingResponseHandler( result, channel, logging ) ); channel.writeAndFlush( ResetMessage.RESET, channel.voidPromise() ); return result; } diff --git a/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelTracker.java b/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelTracker.java index 3cdfcc6abe..341bf9a8cb 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelTracker.java +++ b/driver/src/main/java/org/neo4j/driver/internal/async/pool/NettyChannelTracker.java @@ -61,7 +61,7 @@ public NettyChannelTracker( MetricsListener metricsListener, EventExecutor event public NettyChannelTracker( MetricsListener metricsListener, ChannelGroup channels, Logging logging ) { this.metricsListener = metricsListener; - this.log = logging.getLog( getClass().getSimpleName() ); + this.log = logging.getLog( getClass() ); this.allChannels = channels; } diff --git a/driver/src/main/java/org/neo4j/driver/internal/cluster/RediscoveryImpl.java b/driver/src/main/java/org/neo4j/driver/internal/cluster/RediscoveryImpl.java index adb06f7372..8013c560c2 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/cluster/RediscoveryImpl.java +++ b/driver/src/main/java/org/neo4j/driver/internal/cluster/RediscoveryImpl.java @@ -33,6 +33,7 @@ import org.neo4j.driver.Bookmark; import org.neo4j.driver.Logger; +import org.neo4j.driver.Logging; import org.neo4j.driver.exceptions.DiscoveryException; import org.neo4j.driver.exceptions.FatalDiscoveryException; import org.neo4j.driver.exceptions.SecurityException; @@ -62,18 +63,18 @@ public class RediscoveryImpl implements Rediscovery private final BoltServerAddress initialRouter; private final RoutingSettings settings; - private final Logger logger; + private final Logger log; private final ClusterCompositionProvider provider; private final ServerAddressResolver resolver; private final EventExecutorGroup eventExecutorGroup; private final DomainNameResolver domainNameResolver; public RediscoveryImpl( BoltServerAddress initialRouter, RoutingSettings settings, ClusterCompositionProvider provider, - EventExecutorGroup eventExecutorGroup, ServerAddressResolver resolver, Logger logger, DomainNameResolver domainNameResolver ) + EventExecutorGroup eventExecutorGroup, ServerAddressResolver resolver, Logging logging, DomainNameResolver domainNameResolver ) { this.initialRouter = initialRouter; this.settings = settings; - this.logger = logger; + this.log = logging.getLog( getClass() ); this.provider = provider; this.resolver = resolver; this.eventExecutorGroup = eventExecutorGroup; @@ -127,7 +128,7 @@ else if ( compositionLookupResult != null ) else { long nextDelay = Math.max( settings.retryTimeoutDelay(), previousDelay * 2 ); - logger.info( "Unable to fetch new routing table, will try again in " + nextDelay + "ms" ); + log.info( "Unable to fetch new routing table, will try again in " + nextDelay + "ms" ); eventExecutorGroup.next().schedule( () -> lookupClusterComposition( routingTable, pool, newFailures, nextDelay, result, bookmark, baseError ), nextDelay, TimeUnit.MILLISECONDS @@ -291,8 +292,8 @@ private ClusterComposition handleRoutingProcedureError( Throwable error, Routing DiscoveryException discoveryError = new DiscoveryException( format( RECOVERABLE_ROUTING_ERROR, routerAddress ), error ); Futures.combineErrors( baseError, discoveryError ); // we record each failure here String warningMessage = format( RECOVERABLE_DISCOVERY_ERROR_WITH_SERVER, routerAddress ); - logger.warn( warningMessage ); - logger.debug( warningMessage, discoveryError ); + log.warn( warningMessage ); + log.debug( warningMessage, discoveryError ); routingTable.forget( routerAddress ); return null; } diff --git a/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerImpl.java b/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerImpl.java index 7605b48ee8..62af10e3a9 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerImpl.java +++ b/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerImpl.java @@ -25,6 +25,7 @@ import java.util.concurrent.CompletionStage; import org.neo4j.driver.Logger; +import org.neo4j.driver.Logging; import org.neo4j.driver.internal.BoltServerAddress; import org.neo4j.driver.internal.DatabaseName; import org.neo4j.driver.internal.async.ConnectionContext; @@ -45,15 +46,16 @@ public class RoutingTableHandlerImpl implements RoutingTableHandler private final long routingTablePurgeDelayMs; private final Set resolvedInitialRouters = new HashSet<>(); - public RoutingTableHandlerImpl( RoutingTable routingTable, Rediscovery rediscovery, ConnectionPool connectionPool, RoutingTableRegistry routingTableRegistry, - Logger log, long routingTablePurgeDelayMs ) + public RoutingTableHandlerImpl( RoutingTable routingTable, Rediscovery rediscovery, ConnectionPool connectionPool, + RoutingTableRegistry routingTableRegistry, + Logging logging, long routingTablePurgeDelayMs ) { this.routingTable = routingTable; this.databaseName = routingTable.database(); this.rediscovery = rediscovery; this.connectionPool = connectionPool; this.routingTableRegistry = routingTableRegistry; - this.log = log; + this.log = logging.getLog( getClass() ); this.routingTablePurgeDelayMs = routingTablePurgeDelayMs; } diff --git a/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImpl.java b/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImpl.java index 018dcb6586..45cf335306 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImpl.java +++ b/driver/src/main/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImpl.java @@ -26,6 +26,7 @@ import java.util.concurrent.ConcurrentMap; import org.neo4j.driver.Logger; +import org.neo4j.driver.Logging; import org.neo4j.driver.internal.BoltServerAddress; import org.neo4j.driver.internal.DatabaseName; import org.neo4j.driver.internal.async.ConnectionContext; @@ -36,18 +37,18 @@ public class RoutingTableRegistryImpl implements RoutingTableRegistry { private final ConcurrentMap routingTableHandlers; private final RoutingTableHandlerFactory factory; - private final Logger logger; + private final Logger log; - public RoutingTableRegistryImpl( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logger logger, long routingTablePurgeDelayMs ) + public RoutingTableRegistryImpl( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logging logging, long routingTablePurgeDelayMs ) { - this( new ConcurrentHashMap<>(), new RoutingTableHandlerFactory( connectionPool, rediscovery, clock, logger, routingTablePurgeDelayMs ), logger ); + this( new ConcurrentHashMap<>(), new RoutingTableHandlerFactory( connectionPool, rediscovery, clock, logging, routingTablePurgeDelayMs ), logging ); } - RoutingTableRegistryImpl( ConcurrentMap routingTableHandlers, RoutingTableHandlerFactory factory, Logger logger ) + RoutingTableRegistryImpl( ConcurrentMap routingTableHandlers, RoutingTableHandlerFactory factory, Logging logging ) { this.factory = factory; this.routingTableHandlers = routingTableHandlers; - this.logger = logger; + this.log = logging.getLog( getClass() ); } @Override @@ -74,7 +75,7 @@ public Set allServers() public void remove( DatabaseName databaseName ) { routingTableHandlers.remove( databaseName ); - logger.debug( "Routing table handler for database '%s' is removed.", databaseName.description() ); + log.debug( "Routing table handler for database '%s' is removed.", databaseName.description() ); } @Override @@ -85,7 +86,7 @@ public void removeAged() { if ( handler.isRoutingTableAged() ) { - logger.info( + log.info( "Routing table handler for database '%s' is removed because it has not been used for a long time. Routing table: %s", databaseName.description(), handler.routingTable() ); routingTableHandlers.remove( databaseName ); @@ -111,7 +112,7 @@ private RoutingTableHandler getOrCreate( DatabaseName databaseName ) databaseName, name -> { RoutingTableHandler handler = factory.newInstance( name, this ); - logger.debug( "Routing table handler for database '%s' is added.", databaseName.description() ); + log.debug( "Routing table handler for database '%s' is added.", databaseName.description() ); return handler; } ); } @@ -120,23 +121,23 @@ static class RoutingTableHandlerFactory { private final ConnectionPool connectionPool; private final Rediscovery rediscovery; - private final Logger log; + private final Logging logging; private final Clock clock; private final long routingTablePurgeDelayMs; - RoutingTableHandlerFactory( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logger log, long routingTablePurgeDelayMs ) + RoutingTableHandlerFactory( ConnectionPool connectionPool, Rediscovery rediscovery, Clock clock, Logging logging, long routingTablePurgeDelayMs ) { this.connectionPool = connectionPool; this.rediscovery = rediscovery; this.clock = clock; - this.log = log; + this.logging = logging; this.routingTablePurgeDelayMs = routingTablePurgeDelayMs; } RoutingTableHandler newInstance( DatabaseName databaseName, RoutingTableRegistry allTables ) { ClusterRoutingTable routingTable = new ClusterRoutingTable( databaseName, clock ); - return new RoutingTableHandlerImpl( routingTable, rediscovery, connectionPool, allTables, log, routingTablePurgeDelayMs ); + return new RoutingTableHandlerImpl( routingTable, rediscovery, connectionPool, allTables, logging, routingTablePurgeDelayMs ); } } } diff --git a/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategy.java b/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategy.java index fe30c1ae59..ad632e12b4 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategy.java +++ b/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategy.java @@ -18,10 +18,10 @@ */ package org.neo4j.driver.internal.cluster.loadbalancing; -import org.neo4j.driver.internal.BoltServerAddress; -import org.neo4j.driver.internal.spi.ConnectionPool; import org.neo4j.driver.Logger; import org.neo4j.driver.Logging; +import org.neo4j.driver.internal.BoltServerAddress; +import org.neo4j.driver.internal.spi.ConnectionPool; /** * Load balancing strategy that finds server with least amount of active (checked out of the pool) connections from @@ -30,8 +30,6 @@ */ public class LeastConnectedLoadBalancingStrategy implements LoadBalancingStrategy { - private static final String LOGGER_NAME = LeastConnectedLoadBalancingStrategy.class.getSimpleName(); - private final RoundRobinArrayIndex readersIndex = new RoundRobinArrayIndex(); private final RoundRobinArrayIndex writersIndex = new RoundRobinArrayIndex(); @@ -41,7 +39,7 @@ public class LeastConnectedLoadBalancingStrategy implements LoadBalancingStrateg public LeastConnectedLoadBalancingStrategy( ConnectionPool connectionPool, Logging logging ) { this.connectionPool = connectionPool; - this.log = logging.getLog( LOGGER_NAME ); + this.log = logging.getLog( getClass() ); } @Override diff --git a/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancer.java b/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancer.java index 16a741efb8..e8e05cca77 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancer.java +++ b/driver/src/main/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancer.java @@ -62,7 +62,6 @@ public class LoadBalancer implements ConnectionProvider { - private static final String LOAD_BALANCER_LOG_NAME = "LoadBalancer"; private static final String CONNECTION_ACQUISITION_COMPLETION_FAILURE_MESSAGE = "Connection acquisition failed for all available addresses."; private static final String CONNECTION_ACQUISITION_COMPLETION_EXCEPTION_MESSAGE = "Failed to obtain connection towards %s server. Known routing table is: %s"; @@ -80,27 +79,25 @@ public LoadBalancer( BoltServerAddress initialRouter, RoutingSettings settings, LoadBalancingStrategy loadBalancingStrategy, ServerAddressResolver resolver, DomainNameResolver domainNameResolver ) { this( connectionPool, createRediscovery( eventExecutorGroup, initialRouter, resolver, settings, clock, logging, requireNonNull( domainNameResolver ) ), - settings, - loadBalancingStrategy, - eventExecutorGroup, clock, loadBalancerLogger( logging ) ); + settings, loadBalancingStrategy, eventExecutorGroup, clock, logging ); } private LoadBalancer( ConnectionPool connectionPool, Rediscovery rediscovery, RoutingSettings settings, LoadBalancingStrategy loadBalancingStrategy, - EventExecutorGroup eventExecutorGroup, Clock clock, Logger log ) + EventExecutorGroup eventExecutorGroup, Clock clock, Logging logging ) { - this( connectionPool, createRoutingTables( connectionPool, rediscovery, settings, clock, log ), rediscovery, loadBalancingStrategy, eventExecutorGroup, - log ); + this( connectionPool, createRoutingTables( connectionPool, rediscovery, settings, clock, logging ), rediscovery, loadBalancingStrategy, + eventExecutorGroup, logging ); } LoadBalancer( ConnectionPool connectionPool, RoutingTableRegistry routingTables, Rediscovery rediscovery, LoadBalancingStrategy loadBalancingStrategy, - EventExecutorGroup eventExecutorGroup, Logger log ) + EventExecutorGroup eventExecutorGroup, Logging logging ) { this.connectionPool = connectionPool; this.routingTables = routingTables; this.rediscovery = rediscovery; this.loadBalancingStrategy = loadBalancingStrategy; this.eventExecutorGroup = eventExecutorGroup; - this.log = log; + this.log = logging.getLog( getClass() ); } @Override @@ -269,22 +266,16 @@ private BoltServerAddress selectAddress( AccessMode mode, AddressSet servers ) } private static RoutingTableRegistry createRoutingTables( ConnectionPool connectionPool, Rediscovery rediscovery, RoutingSettings settings, Clock clock, - Logger log ) + Logging logging ) { - return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, log, settings.routingTablePurgeDelayMs() ); + return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, logging, settings.routingTablePurgeDelayMs() ); } private static Rediscovery createRediscovery( EventExecutorGroup eventExecutorGroup, BoltServerAddress initialRouter, ServerAddressResolver resolver, RoutingSettings settings, Clock clock, Logging logging, DomainNameResolver domainNameResolver ) { - Logger log = loadBalancerLogger( logging ); ClusterCompositionProvider clusterCompositionProvider = new RoutingProcedureClusterCompositionProvider( clock, settings.routingContext() ); - return new RediscoveryImpl( initialRouter, settings, clusterCompositionProvider, eventExecutorGroup, resolver, log, domainNameResolver ); - } - - private static Logger loadBalancerLogger( Logging logging ) - { - return logging.getLog( LOAD_BALANCER_LOG_NAME ); + return new RediscoveryImpl( initialRouter, settings, clusterCompositionProvider, eventExecutorGroup, resolver, logging, domainNameResolver ); } private static RuntimeException unknownMode( AccessMode mode ) diff --git a/driver/src/main/java/org/neo4j/driver/internal/handlers/PingResponseHandler.java b/driver/src/main/java/org/neo4j/driver/internal/handlers/PingResponseHandler.java index 864d4cfc00..ba3e15461d 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/handlers/PingResponseHandler.java +++ b/driver/src/main/java/org/neo4j/driver/internal/handlers/PingResponseHandler.java @@ -23,9 +23,10 @@ import java.util.Map; -import org.neo4j.driver.internal.spi.ResponseHandler; import org.neo4j.driver.Logger; +import org.neo4j.driver.Logging; import org.neo4j.driver.Value; +import org.neo4j.driver.internal.spi.ResponseHandler; public class PingResponseHandler implements ResponseHandler { @@ -33,11 +34,11 @@ public class PingResponseHandler implements ResponseHandler private final Channel channel; private final Logger log; - public PingResponseHandler( Promise result, Channel channel, Logger log ) + public PingResponseHandler( Promise result, Channel channel, Logging logging ) { this.result = result; this.channel = channel; - this.log = log; + this.log = logging.getLog( getClass() ); } @Override diff --git a/driver/src/main/java/org/neo4j/driver/internal/logging/ChannelActivityLogger.java b/driver/src/main/java/org/neo4j/driver/internal/logging/ChannelActivityLogger.java index cb845d7869..5ccd1f1ef9 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/logging/ChannelActivityLogger.java +++ b/driver/src/main/java/org/neo4j/driver/internal/logging/ChannelActivityLogger.java @@ -20,10 +20,10 @@ import io.netty.channel.Channel; -import org.neo4j.driver.internal.BoltServerAddress; -import org.neo4j.driver.internal.async.connection.ChannelAttributes; import org.neo4j.driver.Logger; import org.neo4j.driver.Logging; +import org.neo4j.driver.internal.BoltServerAddress; +import org.neo4j.driver.internal.async.connection.ChannelAttributes; import static java.lang.String.format; import static org.neo4j.driver.internal.util.Format.valueOrEmpty; @@ -38,7 +38,7 @@ public class ChannelActivityLogger extends ReformattedLogger public ChannelActivityLogger( Channel channel, Logging logging, Class owner ) { - this( channel, logging.getLog( owner.getSimpleName() ) ); + this( channel, logging.getLog( owner ) ); } private ChannelActivityLogger( Channel channel, Logger delegate ) diff --git a/driver/src/main/java/org/neo4j/driver/internal/metrics/InternalMetrics.java b/driver/src/main/java/org/neo4j/driver/internal/metrics/InternalMetrics.java index 65e8ef4c7f..a83b033529 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/metrics/InternalMetrics.java +++ b/driver/src/main/java/org/neo4j/driver/internal/metrics/InternalMetrics.java @@ -45,7 +45,7 @@ public class InternalMetrics extends InternalAbstractMetrics Objects.requireNonNull( clock ); this.connectionPoolMetrics = new ConcurrentHashMap<>(); this.clock = clock; - this.log = logging.getLog( getClass().getSimpleName() ); + this.log = logging.getLog( getClass() ); } @Override diff --git a/driver/src/main/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogic.java b/driver/src/main/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogic.java index 4c3e8d3913..8c42d4a772 100644 --- a/driver/src/main/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogic.java +++ b/driver/src/main/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogic.java @@ -51,8 +51,6 @@ public class ExponentialBackoffRetryLogic implements RetryLogic { - private final static String RETRY_LOGIC_LOG_NAME = "RetryLogic"; - static final long DEFAULT_MAX_RETRY_TIME_MS = SECONDS.toMillis( 30 ); private static final long INITIAL_RETRY_DELAY_MS = SECONDS.toMillis( 1 ); @@ -84,7 +82,7 @@ public ExponentialBackoffRetryLogic( RetrySettings settings, EventExecutorGroup this.jitterFactor = jitterFactor; this.eventExecutorGroup = eventExecutorGroup; this.clock = clock; - this.log = logging.getLog( RETRY_LOGIC_LOG_NAME ); + this.log = logging.getLog( getClass() ); verifyAfterConstruction(); } diff --git a/driver/src/test/java/org/neo4j/driver/GraphDatabaseTest.java b/driver/src/test/java/org/neo4j/driver/GraphDatabaseTest.java index df4be61c9d..0b6b751a46 100644 --- a/driver/src/test/java/org/neo4j/driver/GraphDatabaseTest.java +++ b/driver/src/test/java/org/neo4j/driver/GraphDatabaseTest.java @@ -38,7 +38,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -102,7 +101,7 @@ void shouldLogWhenUnableToCreateRoutingDriver() throws Exception Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); Config config = Config.builder() .withoutEncryption() diff --git a/driver/src/test/java/org/neo4j/driver/integration/LoggingIT.java b/driver/src/test/java/org/neo4j/driver/integration/LoggingIT.java index e8ae544e00..5671577e2e 100644 --- a/driver/src/test/java/org/neo4j/driver/integration/LoggingIT.java +++ b/driver/src/test/java/org/neo4j/driver/integration/LoggingIT.java @@ -50,7 +50,7 @@ void logShouldRecordDebugAndTraceInfo() Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); when( logger.isDebugEnabled() ).thenReturn( true ); when( logger.isTraceEnabled() ).thenReturn( true ); diff --git a/driver/src/test/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSessionTest.java b/driver/src/test/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSessionTest.java index ea31b361b5..1d9106621b 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSessionTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/async/LeakLoggingNetworkSessionTest.java @@ -55,7 +55,7 @@ void logsNothingDuringFinalizationIfClosed() throws Exception { Logging logging = mock( Logging.class ); Logger log = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( log ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( log ); LeakLoggingNetworkSession session = newSession( logging, false ); finalize( session ); @@ -68,7 +68,7 @@ void logsMessageWithStacktraceDuringFinalizationIfLeaked( TestInfo testInfo ) th { Logging logging = mock( Logging.class ); Logger log = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( log ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( log ); LeakLoggingNetworkSession session = newSession( logging, true ); // begin transaction to make session obtain a connection session.beginTransactionAsync( TransactionConfig.empty() ); diff --git a/driver/src/test/java/org/neo4j/driver/internal/async/inbound/ChunkDecoderTest.java b/driver/src/test/java/org/neo4j/driver/internal/async/inbound/ChunkDecoderTest.java index b048760d6a..0ee94b7c06 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/async/inbound/ChunkDecoderTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/async/inbound/ChunkDecoderTest.java @@ -34,6 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -213,7 +214,7 @@ private static Logger newTraceLogger() private static Logging newLogging( Logger logger ) { Logging logging = mock( Logging.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); return logging; } } diff --git a/driver/src/test/java/org/neo4j/driver/internal/cluster/RediscoveryTest.java b/driver/src/test/java/org/neo4j/driver/internal/cluster/RediscoveryTest.java index 0987774f0b..63eb032fd5 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/cluster/RediscoveryTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/cluster/RediscoveryTest.java @@ -30,6 +30,7 @@ import java.util.Map; import org.neo4j.driver.Logger; +import org.neo4j.driver.Logging; import org.neo4j.driver.exceptions.AuthenticationException; import org.neo4j.driver.exceptions.DiscoveryException; import org.neo4j.driver.exceptions.ProtocolException; @@ -65,7 +66,7 @@ import static org.mockito.Mockito.when; import static org.neo4j.driver.internal.DatabaseNameUtil.defaultDatabase; import static org.neo4j.driver.internal.InternalBookmark.empty; -import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER; +import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.C; @@ -176,10 +177,12 @@ void shouldFailImmediatelyWhenClusterCompositionProviderReturnsFailure() responsesByAddress.put( B, protocolError ); // first -> fatal failure responsesByAddress.put( C, validComposition ); // second -> valid cluster composition + Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ClusterCompositionProvider compositionProvider = compositionProviderMock( responsesByAddress ); - Rediscovery rediscovery = newRediscovery( A, compositionProvider, mock( ServerAddressResolver.class ), logger ); + Rediscovery rediscovery = newRediscovery( A, compositionProvider, mock( ServerAddressResolver.class ), logging ); RoutingTable table = routingTableMock( B, C ); // When @@ -189,6 +192,7 @@ void shouldFailImmediatelyWhenClusterCompositionProviderReturnsFailure() ArgumentCaptor warningMessageCaptor = ArgumentCaptor.forClass( String.class ); ArgumentCaptor debugMessageCaptor = ArgumentCaptor.forClass( String.class ); ArgumentCaptor debugThrowableCaptor = ArgumentCaptor.forClass( DiscoveryException.class ); + verify( logging ).getLog( RediscoveryImpl.class ); verify( logger ).warn( warningMessageCaptor.capture() ); verify( logger ).debug( debugMessageCaptor.capture(), debugThrowableCaptor.capture() ); assertNotNull( warningMessageCaptor.getValue() ); @@ -383,7 +387,8 @@ void shouldRetryConfiguredNumberOfTimesWithDelay() ImmediateSchedulingEventExecutor eventExecutor = new ImmediateSchedulingEventExecutor(); RoutingSettings settings = new RoutingSettings( maxRoutingFailures, retryTimeoutDelay, 0 ); Rediscovery rediscovery = - new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, DEV_NULL_LOGGER, DefaultDomainNameResolver.getInstance() ); + new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, DEV_NULL_LOGGING, + DefaultDomainNameResolver.getInstance() ); RoutingTable table = routingTableMock( A, B ); ClusterComposition actualComposition = await( rediscovery.lookupClusterComposition( table, pool, empty() ) ).getClusterComposition(); @@ -406,9 +411,11 @@ void shouldNotLogWhenSingleRetryAttemptFails() ImmediateSchedulingEventExecutor eventExecutor = new ImmediateSchedulingEventExecutor(); RoutingSettings settings = new RoutingSettings( maxRoutingFailures, retryTimeoutDelay, 0 ); + Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); Rediscovery rediscovery = - new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, logger, DefaultDomainNameResolver.getInstance() ); + new RediscoveryImpl( A, settings, compositionProvider, eventExecutor, resolver, logging, DefaultDomainNameResolver.getInstance() ); RoutingTable table = routingTableMock( A ); ServiceUnavailableException e = @@ -416,6 +423,7 @@ void shouldNotLogWhenSingleRetryAttemptFails() assertThat( e.getMessage(), containsString( "Could not perform discovery" ) ); // rediscovery should not log about retries and should not schedule any retries + verify( logging ).getLog( RediscoveryImpl.class ); verify( logger, never() ).info( startsWith( "Unable to fetch new routing table, will try again in " ) ); assertEquals( 0, eventExecutor.scheduleDelays().size() ); } @@ -427,7 +435,7 @@ void shouldResolveToIP() throws UnknownHostException DomainNameResolver domainNameResolver = mock( DomainNameResolver.class ); InetAddress localhost = InetAddress.getLocalHost(); when( domainNameResolver.resolve( A.host() ) ).thenReturn( new InetAddress[]{localhost} ); - Rediscovery rediscovery = new RediscoveryImpl( A, null, null, null, resolver, null, domainNameResolver ); + Rediscovery rediscovery = new RediscoveryImpl( A, null, null, null, resolver, DEV_NULL_LOGGING, domainNameResolver ); List addresses = rediscovery.resolve(); @@ -440,14 +448,14 @@ void shouldResolveToIP() throws UnknownHostException private Rediscovery newRediscovery( BoltServerAddress initialRouter, ClusterCompositionProvider compositionProvider, ServerAddressResolver resolver ) { - return newRediscovery( initialRouter, compositionProvider, resolver, DEV_NULL_LOGGER ); + return newRediscovery( initialRouter, compositionProvider, resolver, DEV_NULL_LOGGING ); } private Rediscovery newRediscovery( BoltServerAddress initialRouter, ClusterCompositionProvider compositionProvider, - ServerAddressResolver resolver, Logger logger ) + ServerAddressResolver resolver, Logging logging ) { RoutingSettings settings = new RoutingSettings( 1, 0, 0 ); - return new RediscoveryImpl( initialRouter, settings, compositionProvider, GlobalEventExecutor.INSTANCE, resolver, logger, + return new RediscoveryImpl( initialRouter, settings, compositionProvider, GlobalEventExecutor.INSTANCE, resolver, logging, DefaultDomainNameResolver.getInstance() ); } diff --git a/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerTest.java b/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerTest.java index b725731639..6a56b1f276 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableHandlerTest.java @@ -59,7 +59,7 @@ import static org.neo4j.driver.internal.async.ImmutableConnectionContext.simple; import static org.neo4j.driver.internal.cluster.RediscoveryUtil.contextWithMode; import static org.neo4j.driver.internal.cluster.RoutingSettings.STALE_ROUTING_TABLE_PURGE_DELAY_MS; -import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER; +import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.C; @@ -308,13 +308,14 @@ private static ConnectionPool newConnectionPoolMockWithFailures( private static RoutingTableHandler newRoutingTableHandler( RoutingTable routingTable, Rediscovery rediscovery, ConnectionPool connectionPool ) { - return new RoutingTableHandlerImpl( routingTable, rediscovery, connectionPool, newRoutingTableRegistryMock(), DEV_NULL_LOGGER, - STALE_ROUTING_TABLE_PURGE_DELAY_MS ); + return new RoutingTableHandlerImpl( routingTable, rediscovery, connectionPool, newRoutingTableRegistryMock(), DEV_NULL_LOGGING, + STALE_ROUTING_TABLE_PURGE_DELAY_MS ); } private static RoutingTableHandler newRoutingTableHandler( RoutingTable routingTable, Rediscovery rediscovery, ConnectionPool connectionPool, RoutingTableRegistry routingTableRegistry ) { - return new RoutingTableHandlerImpl( routingTable, rediscovery, connectionPool, routingTableRegistry, DEV_NULL_LOGGER, STALE_ROUTING_TABLE_PURGE_DELAY_MS ); + return new RoutingTableHandlerImpl( routingTable, rediscovery, connectionPool, routingTableRegistry, DEV_NULL_LOGGING, + STALE_ROUTING_TABLE_PURGE_DELAY_MS ); } } diff --git a/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImplTest.java b/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImplTest.java index 7070487f70..a15db7caab 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImplTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/cluster/RoutingTableRegistryImplTest.java @@ -55,7 +55,7 @@ import static org.neo4j.driver.internal.DatabaseNameUtil.database; import static org.neo4j.driver.internal.DatabaseNameUtil.defaultDatabase; import static org.neo4j.driver.internal.cluster.RoutingSettings.STALE_ROUTING_TABLE_PURGE_DELAY_MS; -import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER; +import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.C; @@ -71,8 +71,8 @@ void factoryShouldCreateARoutingTableWithSameDatabaseName() throws Throwable { Clock clock = Clock.SYSTEM; RoutingTableHandlerFactory factory = - new RoutingTableHandlerFactory( mock( ConnectionPool.class ), mock( RediscoveryImpl.class ), clock, DEV_NULL_LOGGER, - STALE_ROUTING_TABLE_PURGE_DELAY_MS ); + new RoutingTableHandlerFactory( mock( ConnectionPool.class ), mock( RediscoveryImpl.class ), clock, DEV_NULL_LOGGING, + STALE_ROUTING_TABLE_PURGE_DELAY_MS ); RoutingTableHandler handler = factory.newInstance( database( "Molly" ), null ); RoutingTable table = handler.routingTable(); @@ -136,7 +136,7 @@ void shouldReturnFreshRoutingTable( AccessMode mode ) throws Throwable ConcurrentMap map = new ConcurrentHashMap<>(); RoutingTableHandler handler = mockedRoutingTableHandler(); RoutingTableHandlerFactory factory = mockedHandlerFactory( handler ); - RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGER ); + RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGING ); ImmutableConnectionContext context = new ImmutableConnectionContext( defaultDatabase(), InternalBookmark.empty(), mode ); // When @@ -155,7 +155,7 @@ void shouldReturnServersInAllRoutingTables() throws Throwable map.put( database( "Banana" ), mockedRoutingTableHandler( B, C, D ) ); map.put( database( "Orange" ), mockedRoutingTableHandler( E, F, C ) ); RoutingTableHandlerFactory factory = mockedHandlerFactory(); - RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGER ); + RoutingTableRegistryImpl routingTables = new RoutingTableRegistryImpl( map, factory, DEV_NULL_LOGGING ); // When Set servers = routingTables.allServers(); @@ -210,7 +210,7 @@ private RoutingTableHandler mockedRoutingTableHandler( BoltServerAddress... serv private RoutingTableRegistryImpl newRoutingTables( ConcurrentMap handlers, RoutingTableHandlerFactory factory ) { - return new RoutingTableRegistryImpl( handlers, factory, DEV_NULL_LOGGER ); + return new RoutingTableRegistryImpl( handlers, factory, DEV_NULL_LOGGING ); } private RoutingTableHandlerFactory mockedHandlerFactory( RoutingTableHandler handler ) diff --git a/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategyTest.java b/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategyTest.java index c2592e4a51..aacf936c64 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategyTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LeastConnectedLoadBalancingStrategyTest.java @@ -22,23 +22,22 @@ import org.junit.jupiter.api.Test; import org.mockito.Mock; -import org.neo4j.driver.internal.BoltServerAddress; -import org.neo4j.driver.internal.spi.ConnectionPool; import org.neo4j.driver.Logger; import org.neo4j.driver.Logging; +import org.neo4j.driver.internal.BoltServerAddress; +import org.neo4j.driver.internal.spi.ConnectionPool; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.startsWith; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; -import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A; import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING; +import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A; class LeastConnectedLoadBalancingStrategyTest { @@ -164,7 +163,7 @@ void shouldTraceLogWhenNoAddressSelected() { Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); LoadBalancingStrategy strategy = new LeastConnectedLoadBalancingStrategy( connectionPool, logging ); @@ -180,7 +179,7 @@ void shouldTraceLogSelectedAddress() { Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); when( connectionPool.inUseConnections( any( BoltServerAddress.class ) ) ).thenReturn( 42 ); diff --git a/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancerTest.java b/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancerTest.java index 520c81946c..516f2eec4e 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancerTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/LoadBalancerTest.java @@ -78,7 +78,6 @@ import static org.neo4j.driver.internal.async.ImmutableConnectionContext.simple; import static org.neo4j.driver.internal.cluster.RediscoveryUtil.contextWithDatabase; import static org.neo4j.driver.internal.cluster.RediscoveryUtil.contextWithMode; -import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER; import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.A; import static org.neo4j.driver.internal.util.ClusterCompositionUtil.B; @@ -414,7 +413,7 @@ private static LoadBalancer newLoadBalancer( ConnectionPool connectionPool, Rout when( routingTables.ensureRoutingTable( any( ConnectionContext.class ) ) ).thenReturn( CompletableFuture.completedFuture( handler ) ); Rediscovery rediscovery = mock( Rediscovery.class ); return new LoadBalancer( connectionPool, routingTables, rediscovery, new LeastConnectedLoadBalancingStrategy( connectionPool, DEV_NULL_LOGGING ), - GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGER ); + GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGING ); } private static LoadBalancer newLoadBalancer( ConnectionPool connectionPool, Rediscovery rediscovery ) @@ -428,6 +427,6 @@ private static LoadBalancer newLoadBalancer( ConnectionPool connectionPool, Rout { // Used only in testing return new LoadBalancer( connectionPool, routingTables, rediscovery, new LeastConnectedLoadBalancingStrategy( connectionPool, DEV_NULL_LOGGING ), - GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGER ); + GlobalEventExecutor.INSTANCE, DEV_NULL_LOGGING ); } } diff --git a/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/RoutingTableAndConnectionPoolTest.java b/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/RoutingTableAndConnectionPoolTest.java index cff0a9bba9..a2bd57d35d 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/RoutingTableAndConnectionPoolTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/cluster/loadbalancing/RoutingTableAndConnectionPoolTest.java @@ -322,14 +322,14 @@ private ConnectionPool newConnectionPool() private RoutingTableRegistryImpl newRoutingTables( ConnectionPool connectionPool, Rediscovery rediscovery ) { - return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, logging.getLog( "RT" ), STALE_ROUTING_TABLE_PURGE_DELAY_MS ); + return new RoutingTableRegistryImpl( connectionPool, rediscovery, clock, logging, STALE_ROUTING_TABLE_PURGE_DELAY_MS ); } private LoadBalancer newLoadBalancer( ConnectionPool connectionPool, RoutingTableRegistry routingTables ) { Rediscovery rediscovery = mock( Rediscovery.class ); return new LoadBalancer( connectionPool, routingTables, rediscovery, new LeastConnectedLoadBalancingStrategy( connectionPool, logging ), - GlobalEventExecutor.INSTANCE, logging.getLog( "LB" ) ); + GlobalEventExecutor.INSTANCE, logging ); } private CompletableFuture clusterComposition( BoltServerAddress... addresses ) diff --git a/driver/src/test/java/org/neo4j/driver/internal/handlers/PingResponseHandlerTest.java b/driver/src/test/java/org/neo4j/driver/internal/handlers/PingResponseHandlerTest.java index f090464646..23334120c5 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/handlers/PingResponseHandlerTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/handlers/PingResponseHandlerTest.java @@ -30,7 +30,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.mock; -import static org.neo4j.driver.internal.logging.DevNullLogger.DEV_NULL_LOGGER; +import static org.neo4j.driver.internal.logging.DevNullLogging.DEV_NULL_LOGGING; class PingResponseHandlerTest { @@ -73,6 +73,6 @@ private static Promise newPromise() private static PingResponseHandler newHandler( Promise result ) { - return new PingResponseHandler( result, mock( Channel.class ), DEV_NULL_LOGGER ); + return new PingResponseHandler( result, mock( Channel.class ), DEV_NULL_LOGGING ); } } diff --git a/driver/src/test/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogicTest.java b/driver/src/test/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogicTest.java index f55dc6c160..d345daf75e 100644 --- a/driver/src/test/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogicTest.java +++ b/driver/src/test/java/org/neo4j/driver/internal/retry/ExponentialBackoffRetryLogicTest.java @@ -773,7 +773,7 @@ void doesRetryOnClientExceptionWithRetryableCause() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); AtomicBoolean exceptionThrown = new AtomicBoolean( false ); @@ -795,7 +795,7 @@ void doesRetryOnAuthorizationExpiredException() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); AtomicBoolean exceptionThrown = new AtomicBoolean( false ); @@ -817,7 +817,7 @@ void doesRetryOnConnectionReadTimeoutException() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); AtomicBoolean exceptionThrown = new AtomicBoolean( false ); @@ -862,7 +862,7 @@ void eachRetryIsLogged() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); @@ -880,7 +880,7 @@ void doesRetryOnClientExceptionWithRetryableCauseAsync() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); @@ -903,7 +903,7 @@ void doesRetryOnAuthorizationExpiredExceptionAsync() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); AtomicBoolean exceptionThrown = new AtomicBoolean( false ); @@ -950,7 +950,7 @@ void eachRetryIsLoggedAsync() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); @@ -969,7 +969,7 @@ void doesRetryOnClientExceptionWithRetryableCauseRx() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); @@ -992,7 +992,7 @@ void doesRetryOnAuthorizationExpiredExceptionRx() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); AtomicBoolean exceptionThrown = new AtomicBoolean( false ); @@ -1039,7 +1039,7 @@ void eachRetryIsLoggedRx() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); ExponentialBackoffRetryLogic logic = new ExponentialBackoffRetryLogic( RetrySettings.DEFAULT, eventExecutor, clock, logging ); @@ -1108,7 +1108,7 @@ void correctNumberOfRetiesAreLoggedOnFailure() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); RetrySettings settings = RetrySettings.DEFAULT; RetryLogic logic = new ExponentialBackoffRetryLogic( settings, eventExecutor, clock, logging ); @@ -1146,7 +1146,7 @@ void correctNumberOfRetiesAreLoggedOnFailureAsync() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); RetrySettings settings = RetrySettings.DEFAULT; RetryLogic logic = new ExponentialBackoffRetryLogic( settings, eventExecutor, clock, logging ); @@ -1184,7 +1184,7 @@ void correctNumberOfRetiesAreLoggedOnFailureRx() Clock clock = mock( Clock.class ); Logging logging = mock( Logging.class ); Logger logger = mock( Logger.class ); - when( logging.getLog( anyString() ) ).thenReturn( logger ); + when( logging.getLog( any( Class.class ) ) ).thenReturn( logger ); RetrySettings settings = RetrySettings.DEFAULT; RetryLogic logic = new ExponentialBackoffRetryLogic( settings, eventExecutor, clock, logging );