Skip to content

Commit

Permalink
Change session tracker to not be a service
Browse files Browse the repository at this point in the history
- Rename SessionManager to SessionTracker
  • Loading branch information
henriknyman committed Jul 13, 2016
1 parent 86c7f91 commit 0a34e88
Show file tree
Hide file tree
Showing 19 changed files with 147 additions and 96 deletions.
Expand Up @@ -57,7 +57,7 @@
import org.neo4j.graphdb.factory.GraphDatabaseSettings.BoltConnector;
import org.neo4j.helpers.HostnamePort;
import org.neo4j.helpers.Service;
import org.neo4j.kernel.api.bolt.SessionManager;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.configuration.Internal;
import org.neo4j.kernel.extension.KernelExtensionFactory;
Expand Down Expand Up @@ -123,7 +123,7 @@ public interface Dependencies

ThreadToStatementContextBridge txBridge();

SessionManager sessionManager();
SessionTracker sessionManager();
}

public BoltKernelExtension()
Expand Down
Expand Up @@ -34,7 +34,7 @@
import org.neo4j.kernel.GraphDatabaseQueryService;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.Statement;
import org.neo4j.kernel.api.bolt.SessionManager;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.api.exceptions.KernelException;
import org.neo4j.kernel.api.exceptions.Status;
import org.neo4j.kernel.api.security.AccessMode;
Expand Down Expand Up @@ -705,10 +705,10 @@ RecordStream run( SessionStateMachine ctx, String statement, Map<String, Object>
void sessionHalted( Session session );
}
public SessionStateMachine( String connectionDescriptor, UsageData usageData, GraphDatabaseFacade db, ThreadToStatementContextBridge txBridge,
StatementRunner engine, LogService logging, Authentication authentication, SessionManager sessionManager )
StatementRunner engine, LogService logging, Authentication authentication, SessionTracker sessionTracker )
{
this( new StandardStateMachineSPI( connectionDescriptor, usageData, db, engine, logging, authentication,
txBridge, sessionManager ));
txBridge, sessionTracker ));
}
public SessionStateMachine( SPI spi )
{
Expand Down

This file was deleted.

Expand Up @@ -25,7 +25,7 @@
import org.neo4j.bolt.v1.runtime.Sessions;
import org.neo4j.graphdb.DependencyResolver;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.kernel.api.bolt.SessionManager;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.api.security.AuthManager;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
Expand All @@ -47,13 +47,13 @@ public class StandardSessions extends LifecycleAdapter implements Sessions
private final UsageData usageData;
private final LogService logging;
private final Authentication authentication;
private final SessionManager sessionManager;
private final SessionTracker sessionTracker;

private CypherStatementRunner statementRunner;
private ThreadToStatementContextBridge txBridge;

public StandardSessions( GraphDatabaseFacade gds, UsageData usageData, LogService logging,
ThreadToStatementContextBridge txBridge, SessionManager sessionManager )
ThreadToStatementContextBridge txBridge, SessionTracker sessionTracker )
{
this.gds = gds;
this.usageData = usageData;
Expand All @@ -62,7 +62,7 @@ public StandardSessions( GraphDatabaseFacade gds, UsageData usageData, LogServic
DependencyResolver dependencyResolver = gds.getDependencyResolver();
this.txBridge = dependencyResolver.resolveDependency( ThreadToStatementContextBridge.class );
this.authentication = authentication( dependencyResolver );
this.sessionManager = sessionManager;
this.sessionTracker = sessionTracker;
}

@Override
Expand Down Expand Up @@ -96,7 +96,7 @@ public void shutdown() throws Throwable
public Session newSession( String connectionDescriptor, boolean isEncrypted )
{
return new SessionStateMachine( connectionDescriptor, usageData, gds, txBridge, statementRunner, logging,
authentication, sessionManager );
authentication, sessionTracker );
}

private Authentication authentication( DependencyResolver dependencyResolver )
Expand Down
Expand Up @@ -28,7 +28,7 @@
import org.neo4j.bolt.v1.runtime.spi.RecordStream;
import org.neo4j.bolt.v1.runtime.spi.StatementRunner;
import org.neo4j.concurrent.DecayingFlags;
import org.neo4j.kernel.api.bolt.SessionManager;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.api.security.AccessMode;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.Statement;
Expand All @@ -51,11 +51,11 @@ class StandardStateMachineSPI implements SessionStateMachine.SPI
private final Authentication authentication;
private final ThreadToStatementContextBridge txBridge;
private final DecayingFlags featureUsage;
private final SessionManager sessionManager;
private final SessionTracker sessionTracker;

StandardStateMachineSPI( String connectionDescriptor, UsageData usageData, GraphDatabaseFacade db, StatementRunner statementRunner,
LogService logging, Authentication authentication, ThreadToStatementContextBridge txBridge,
SessionManager sessionManager )
SessionTracker sessionTracker )
{
this.connectionDescriptor = connectionDescriptor;
this.usageData = usageData;
Expand All @@ -66,7 +66,7 @@ class StandardStateMachineSPI implements SessionStateMachine.SPI
this.errorReporter = new ErrorReporter( logging );
this.log = logging.getInternalLog( SessionStateMachine.class );
this.authentication = authentication;
this.sessionManager = sessionManager;
this.sessionTracker = sessionTracker;
}

@Override
Expand Down Expand Up @@ -135,12 +135,12 @@ public Statement currentStatement()
@Override
public void sessionActivated( Session session )
{
sessionManager.sessionActivated( session );
sessionTracker.sessionActivated( session );
}

@Override
public void sessionHalted( Session session )
{
sessionManager.sessionHalted( session );
sessionTracker.sessionHalted( session );
}
}

This file was deleted.

Expand Up @@ -33,12 +33,12 @@

import org.neo4j.bolt.v1.runtime.Session;
import org.neo4j.bolt.v1.runtime.Sessions;
import org.neo4j.bolt.v1.runtime.internal.StandardSessionManager;
import org.neo4j.bolt.v1.runtime.internal.StandardSessions;
import org.neo4j.bolt.v1.runtime.internal.concurrent.ThreadedSessions;
import org.neo4j.graphdb.DependencyResolver;
import org.neo4j.graphdb.config.Setting;
import org.neo4j.graphdb.factory.GraphDatabaseSettings;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.impl.core.ThreadToStatementContextBridge;
import org.neo4j.kernel.impl.factory.GraphDatabaseFacade;
import org.neo4j.kernel.impl.logging.NullLogService;
Expand Down Expand Up @@ -72,7 +72,7 @@ public void evaluate() throws Throwable
StandardSessions sessions = life.add(
new StandardSessions( gdb, new UsageData( scheduler ), NullLogService.getInstance(),
resolver.resolveDependency( ThreadToStatementContextBridge.class ),
new StandardSessionManager() )
SessionTracker.NOOP )
);
actual = new ThreadedSessions(
sessions,
Expand Down
Expand Up @@ -35,7 +35,7 @@
import org.neo4j.bolt.v1.runtime.spi.StatementRunner;
import org.neo4j.cypher.SyntaxException;
import org.neo4j.graphdb.TransactionFailureException;
import org.neo4j.kernel.api.bolt.SessionManager;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.api.security.AccessMode;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.exceptions.Status;
Expand Down Expand Up @@ -64,7 +64,7 @@ public class StateMachineErrorTest
private StatementRunner runner = mock( StatementRunner.class );
private InternalTransaction tx = mock( InternalTransaction.class );
private JobScheduler scheduler = mock( JobScheduler.class );
private SessionManager sessionManager = mock( SessionManager.class );
private SessionTracker sessionTracker = mock( SessionTracker.class );

@Before
public void setup()
Expand Down Expand Up @@ -95,7 +95,7 @@ private SessionStateMachine newIdleMachine()
{
SessionStateMachine machine =
new SessionStateMachine( "<idle>", new UsageData( scheduler ), db, txBridge, runner,
NullLogService.getInstance(), Authentication.NONE, sessionManager );
NullLogService.getInstance(), Authentication.NONE, sessionTracker );
machine.init( "FunClient", map(), null, Session.Callback.NO_OP );
return machine;
}
Expand Down Expand Up @@ -225,7 +225,7 @@ public void actionsDisallowedBeforeInitialized() throws Throwable
// Given
RecordingCallback messages = new RecordingCallback();
SessionStateMachine machine = new SessionStateMachine( "<test>", new UsageData( scheduler ), db, txBridge,
runner, NullLogService.getInstance(), Authentication.NONE, sessionManager );
runner, NullLogService.getInstance(), Authentication.NONE, sessionTracker );

// When
machine.run( "RETURN 1", null, null, messages );
Expand Down
Expand Up @@ -19,13 +19,33 @@
*/
package org.neo4j.kernel.api.bolt;

import java.util.Collections;
import java.util.Set;

public interface SessionManager
public interface SessionTracker
{
void sessionActivated( HaltableUserSession session );

void sessionHalted( HaltableUserSession session );

Set<HaltableUserSession> getActiveSessions();

SessionTracker NOOP = new SessionTracker()
{
@Override
public void sessionActivated( HaltableUserSession session )
{
}

@Override
public void sessionHalted( HaltableUserSession session )
{
}

@Override
public Set<HaltableUserSession> getActiveSessions()
{
return Collections.emptySet();
}
};
}
Expand Up @@ -118,6 +118,8 @@ public CommunityEditionModule( PlatformModule platformModule )
registerRecovery( platformModule.databaseInfo, life, dependencies );

publishEditionInfo( dependencies.resolveDependency( UsageData.class ), platformModule.databaseInfo, config );

dependencies.satisfyDependency( createSessionTracker() );
}

protected IdTypeConfigurationProvider createIdTypeConfigurationProvider( Config config )
Expand Down
Expand Up @@ -40,7 +40,6 @@
import org.neo4j.kernel.api.KernelAPI;
import org.neo4j.kernel.api.KernelTransaction;
import org.neo4j.kernel.api.Statement;
import org.neo4j.kernel.api.bolt.SessionManager;
import org.neo4j.kernel.api.dbms.DbmsOperations;
import org.neo4j.kernel.api.legacyindex.AutoIndexing;
import org.neo4j.kernel.api.security.AuthSubject;
Expand Down Expand Up @@ -171,11 +170,6 @@ public DataSourceModule( final GraphDatabaseFacadeFactory.Dependencies dependenc

deps.satisfyDependency( new NonTransactionalDbmsOperations.Factory( procedures ) );

for ( SessionManager candidate : Service.load( SessionManager.class ) )
{
deps.satisfyDependency( candidate );
}

NonTransactionalTokenNameLookup tokenNameLookup = new NonTransactionalTokenNameLookup(
editionModule.labelTokenHolder,
editionModule.relationshipTypeTokenHolder,
Expand Down
Expand Up @@ -24,6 +24,7 @@
import org.neo4j.helpers.Service;
import org.neo4j.io.pagecache.IOLimiter;
import org.neo4j.kernel.NeoStoreDataSource;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.api.security.AuthManager;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.api.CommitProcessFactory;
Expand Down Expand Up @@ -140,4 +141,9 @@ else if ( key.isEmpty() )

throw new IllegalArgumentException( "No auth manager found with the name '" + key + "'." );
}

protected SessionTracker createSessionTracker()
{
return SessionTracker.NOOP;
}
}
Expand Up @@ -115,6 +115,7 @@
import org.neo4j.io.pagecache.PageCache;
import org.neo4j.kernel.DatabaseAvailability;
import org.neo4j.kernel.NeoStoreDataSource;
import org.neo4j.kernel.api.bolt.SessionTracker;
import org.neo4j.kernel.api.exceptions.ProcedureException;
import org.neo4j.kernel.configuration.Config;
import org.neo4j.kernel.impl.api.SchemaWriteGuard;
Expand All @@ -125,6 +126,7 @@
import org.neo4j.kernel.impl.coreapi.CoreAPIAvailabilityGuard;
import org.neo4j.kernel.impl.enterprise.EnterpriseConstraintSemantics;
import org.neo4j.kernel.impl.enterprise.id.EnterpriseIdTypeConfigurationProvider;
import org.neo4j.kernel.impl.enterprise.StandardSessionTracker;
import org.neo4j.kernel.impl.enterprise.transaction.log.checkpoint.ConfigurableIOLimiter;
import org.neo4j.kernel.impl.factory.CommunityEditionModule;
import org.neo4j.kernel.impl.factory.DatabaseInfo;
Expand Down Expand Up @@ -528,6 +530,8 @@ expectedClusterSize, electionTimeout1, systemUTC(),
life.add( CoreServerStartupProcess.createLifeSupport(
platformModule.dataSourceManager, replicatedIdGeneratorFactory, raft, coreState, raftServer,
catchupServer, raftTimeoutService, membershipWaiter, joinCatchupTimeout, logProvider ) );

dependencies.satisfyDependency( createSessionTracker() );
}

private RaftLog createRaftLog( Config config, LifeSupport life, FileSystemAbstraction fileSystem,
Expand Down Expand Up @@ -693,4 +697,10 @@ public void stop() throws Throwable
{
}
}

@Override
protected SessionTracker createSessionTracker()
{
return new StandardSessionTracker();
}
}

0 comments on commit 0a34e88

Please sign in to comment.