diff --git a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java index 49ce291166d03..4f8e8e7b76ee7 100644 --- a/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java +++ b/community/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/CommunityCypherEngineProvider.java @@ -22,7 +22,6 @@ import org.neo4j.cypher.internal.CommunityCompatibilityFactory; import org.neo4j.graphdb.DependencyResolver; import org.neo4j.helpers.Service; -import org.neo4j.kernel.api.KernelAPI; import org.neo4j.kernel.impl.logging.LogService; import org.neo4j.kernel.impl.query.QueryEngineProvider; import org.neo4j.kernel.impl.query.QueryExecutionEngine; @@ -53,11 +52,10 @@ protected QueryExecutionEngine createEngine( Dependencies deps, GraphDatabaseAPI DependencyResolver resolver = graphAPI.getDependencyResolver(); LogService logService = resolver.resolveDependency( LogService.class ); - KernelAPI kernelAPI = resolver.resolveDependency( KernelAPI.class ); Monitors monitors = resolver.resolveDependency( Monitors.class ); LogProvider logProvider = logService.getInternalLogProvider(); CommunityCompatibilityFactory compatibilityFactory = - new CommunityCompatibilityFactory( queryService, kernelAPI, monitors, logProvider ); + new CommunityCompatibilityFactory( queryService, monitors, logProvider ); deps.satisfyDependencies( compatibilityFactory ); return new ExecutionEngine( queryService, logProvider, compatibilityFactory ); } diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompatibilityCache.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompatibilityCache.scala index c0f202c58484a..1676a677569a1 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompatibilityCache.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompatibilityCache.scala @@ -29,7 +29,6 @@ import org.neo4j.cypher.internal.compiler.v3_4.CypherCompilerConfiguration import org.neo4j.cypher.{CypherPlanner, CypherRuntime, CypherUpdateStrategy} import org.neo4j.helpers.Clock import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.{Log, LogProvider} @@ -49,23 +48,23 @@ trait CompatibilityFactory { def create(spec: PlannerSpec_v3_4, config: CypherCompilerConfiguration): Compatibility[_,_] } -class CommunityCompatibilityFactory(graph: GraphDatabaseQueryService, kernelAPI: KernelAPI, kernelMonitors: KernelMonitors, +class CommunityCompatibilityFactory(graph: GraphDatabaseQueryService, kernelMonitors: KernelMonitors, logProvider: LogProvider) extends CompatibilityFactory { private val log: Log = logProvider.getLog(getClass) override def create(spec: PlannerSpec_v2_3, config: CypherCompilerConfiguration): v2_3.Compatibility = spec.planner match { case CypherPlanner.rule => - v2_3.RuleCompatibility(graph, as2_3(config), Clock.SYSTEM_CLOCK, kernelMonitors, kernelAPI) + v2_3.RuleCompatibility(graph, as2_3(config), Clock.SYSTEM_CLOCK, kernelMonitors) case _ => - v2_3.CostCompatibility(graph, as2_3(config), Clock.SYSTEM_CLOCK, kernelMonitors, kernelAPI, log, spec.planner, spec.runtime) + v2_3.CostCompatibility(graph, as2_3(config), Clock.SYSTEM_CLOCK, kernelMonitors, log, spec.planner, spec.runtime) } override def create(spec: PlannerSpec_v3_1, config: CypherCompilerConfiguration): v3_1.Compatibility = spec.planner match { case CypherPlanner.rule => - v3_1.RuleCompatibility(graph, as3_1(config), CompilerEngineDelegator.CLOCK, kernelMonitors, kernelAPI) + v3_1.RuleCompatibility(graph, as3_1(config), CompilerEngineDelegator.CLOCK, kernelMonitors) case _ => - v3_1.CostCompatibility(graph, as3_1(config), CompilerEngineDelegator.CLOCK, kernelMonitors, kernelAPI, log, spec.planner, spec.runtime, spec.updateStrategy) + v3_1.CostCompatibility(graph, as3_1(config), CompilerEngineDelegator.CLOCK, kernelMonitors, log, spec.planner, spec.runtime, spec.updateStrategy) } override def create(spec: PlannerSpec_v3_4, config: CypherCompilerConfiguration): Compatibility[_,_] = @@ -73,7 +72,7 @@ class CommunityCompatibilityFactory(graph: GraphDatabaseQueryService, kernelAPI: case (CypherPlanner.rule, _) => throw new InvalidArgumentException("The rule planner is no longer a valid planner option in Neo4j 3.4. If you need to use it, please compatibility mode Cypher 3.1") case _ => - CostCompatibility(config, CompilerEngineDelegator.CLOCK, kernelMonitors, kernelAPI, log, + CostCompatibility(config, CompilerEngineDelegator.CLOCK, kernelMonitors, log, spec.planner, spec.runtime, spec.updateStrategy, CommunityRuntimeBuilder, CommunityRuntimeContextCreator) } diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala index 08698fdbeed3c..7914ee56f439c 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/CompilerEngineDelegator.scala @@ -30,7 +30,6 @@ import org.neo4j.graphdb.factory.GraphDatabaseSettings import org.neo4j.graphdb.impl.notification.NotificationCode.{CREATE_UNIQUE_UNAVAILABLE_FALLBACK, RULE_PLANNER_UNAVAILABLE_FALLBACK, START_DEPRECATED, START_UNAVAILABLE_FALLBACK} import org.neo4j.graphdb.impl.notification.NotificationDetail.Factory.message import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.configuration.Config import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.{Log, LogProvider} @@ -71,7 +70,6 @@ This class is responsible for managing the pre-parsing of queries and based on t Cypher compiler to use */ class CompilerEngineDelegator(graph: GraphDatabaseQueryService, - kernelAPI: KernelAPI, kernelMonitors: KernelMonitors, configuredVersion: CypherVersion, configuredPlanner: CypherPlanner, diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala index 8c07ec8c9a693..c8f5c0ea34b35 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/ExecutionEngine.scala @@ -33,7 +33,7 @@ import org.neo4j.graphdb.config.Setting import org.neo4j.graphdb.factory.GraphDatabaseSettings import org.neo4j.kernel.api.query.SchemaIndexUsage import org.neo4j.kernel.api.security.AccessMode -import org.neo4j.kernel.api.{KernelAPI, ReadOperations} +import org.neo4j.kernel.api.ReadOperations import org.neo4j.kernel.configuration.Config import org.neo4j.kernel.impl.locking.ResourceTypes import org.neo4j.kernel.impl.query.{QueryExecutionMonitor, TransactionalContext} @@ -57,7 +57,6 @@ class ExecutionEngine(val queryService: GraphDatabaseQueryService, // true means we run inside REST server protected val isServer = false private val resolver = queryService.getDependencyResolver - private val kernel = resolver.resolveDependency(classOf[KernelAPI]) private val lastCommittedTxId = LastCommittedTxIdProvider(queryService) private val kernelMonitors: KernelMonitors = resolver.resolveDependency(classOf[KernelMonitors]) private val compilationTracer: CompilationTracer = @@ -305,7 +304,7 @@ class ExecutionEngine(val queryService: GraphDatabaseQueryService, } val compatibilityCache = new CompatibilityCache(compatibilityFactory) - new CompilerEngineDelegator(queryService, kernel, kernelMonitors, version, planner, runtime, + new CompilerEngineDelegator(queryService, kernelMonitors, version, planner, runtime, useErrorsOverWarnings, idpMaxTableSize, idpIterationDuration, errorIfShortestPathFallbackUsedAtRuntime, errorIfShortestPathHasCommonNodesAtRuntime, legacyCsvQuoteEscaping, logProvider, compatibilityCache) } diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala index 0c4d62e4bbab3..47ba9ec3c931e 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/Compatibility.scala @@ -36,7 +36,6 @@ import org.neo4j.cypher.internal.runtime.interpreted.{LastCommittedTxIdProvider, import org.neo4j.cypher.internal.spi.v2_3.{TransactionBoundGraphStatistics, TransactionBoundPlanContext, TransactionBoundQueryContext} import org.neo4j.graphdb.{Node, Relationship, Result} import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.api.query.{IndexUsage, PlannerInfo} import org.neo4j.kernel.impl.core.NodeManager import org.neo4j.kernel.impl.query.QueryExecutionMonitor @@ -54,7 +53,6 @@ trait Compatibility { val graph: GraphDatabaseQueryService val queryCacheSize: Int val kernelMonitors: KernelMonitors - val kernelAPI: KernelAPI protected val rewriterSequencer: (String) => RewriterStepSequencer = { import org.neo4j.cypher.internal.compiler.v2_3.tracing.rewriters.RewriterStepSequencer._ diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala index 9d7f3bae377e5..b48561fb84995 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/CostCompatibility.scala @@ -24,7 +24,6 @@ import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService import org.neo4j.cypher.{CypherPlanner, CypherRuntime} import org.neo4j.helpers.Clock import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.impl.core.NodeManager import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.Log @@ -33,7 +32,6 @@ case class CostCompatibility(graph: GraphDatabaseQueryService, config: CypherCompilerConfiguration, clock: Clock, kernelMonitors: KernelMonitors, - kernelAPI: KernelAPI, log: Log, planner: CypherPlanner, runtime: CypherRuntime) extends Compatibility { diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala index 618e53eace320..38fa35640dc7f 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v2_3/RuleCompatibility.scala @@ -23,15 +23,13 @@ import org.neo4j.cypher.internal.compiler.v2_3.{CypherCompilerConfiguration, Cyp import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService import org.neo4j.helpers.Clock import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.impl.core.NodeManager import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} case class RuleCompatibility(graph: GraphDatabaseQueryService, config: CypherCompilerConfiguration, clock: Clock, - kernelMonitors: KernelMonitors, - kernelAPI: KernelAPI) extends Compatibility { + kernelMonitors: KernelMonitors) extends Compatibility { protected val compiler = { val nodeManager = graph.getDependencyResolver.resolveDependency(classOf[NodeManager]) val entityAccessor = new EntityAccessorWrapper(nodeManager) diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala index 91796d3bb74fe..85fc77ad16f52 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/Compatibility.scala @@ -30,14 +30,12 @@ import org.neo4j.cypher.internal.compiler.v3_1.executionplan.{ExecutionPlan => E import org.neo4j.cypher.internal.compiler.v3_1.tracing.rewriters.RewriterStepSequencer import org.neo4j.cypher.internal.compiler.v3_1.{CompilationPhaseTracer, InfoLogger, ExplainMode => ExplainModev3_1, NormalMode => NormalModev3_1, ProfileMode => ProfileModev3_1, _} import org.neo4j.cypher.internal.javacompat.ExecutionResult -import org.neo4j.cypher.internal.runtime.interpreted.LastCommittedTxIdProvider +import org.neo4j.cypher.internal.runtime.interpreted.{LastCommittedTxIdProvider, TransactionalContextWrapper => TransactionalContextWrapperV3_4} import org.neo4j.cypher.internal.spi.v3_1.TransactionBoundQueryContext.IndexSearchMonitor import org.neo4j.cypher.internal.spi.v3_1.{TransactionalContextWrapper => TransactionalContextWrapperV3_1, _} -import org.neo4j.cypher.internal.runtime.interpreted.{TransactionalContextWrapper => TransactionalContextWrapperV3_4} import org.neo4j.cypher.internal.{frontend, _} import org.neo4j.graphdb.Result import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.api.query.{IndexUsage, PlannerInfo} import org.neo4j.kernel.impl.query.QueryExecutionMonitor import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} @@ -53,7 +51,6 @@ trait Compatibility { val graph: GraphDatabaseQueryService val queryCacheSize: Int val kernelMonitors: KernelMonitors - val kernelAPI: KernelAPI protected val rewriterSequencer: (String) => RewriterStepSequencer = { import org.neo4j.cypher.internal.compiler.v3_1.tracing.rewriters.RewriterStepSequencer._ diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/CostCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/CostCompatibility.scala index 22f28e6a639a6..8d356410f9828 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/CostCompatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/CostCompatibility.scala @@ -25,7 +25,6 @@ import org.neo4j.cypher.internal.compiler.v3_1._ import org.neo4j.cypher.internal.spi.v3_1.codegen.GeneratedQueryStructure import org.neo4j.cypher.{CypherPlanner, CypherRuntime, CypherUpdateStrategy} import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.Log @@ -33,7 +32,6 @@ case class CostCompatibility(graph: GraphDatabaseQueryService, config: CypherCompilerConfiguration, clock: Clock, kernelMonitors: KernelMonitors, - kernelAPI: KernelAPI, log: Log, planner: CypherPlanner, runtime: CypherRuntime, diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/RuleCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/RuleCompatibility.scala index b0773d7023c2f..02b89e078aaa8 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/RuleCompatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_1/RuleCompatibility.scala @@ -23,14 +23,12 @@ import java.time.Clock import org.neo4j.cypher.internal.compiler.v3_1.{CypherCompilerConfiguration, CypherCompilerFactory} import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} case class RuleCompatibility(graph: GraphDatabaseQueryService, config: CypherCompilerConfiguration, clock: Clock, - kernelMonitors: KernelMonitors, - kernelAPI: KernelAPI) extends Compatibility { + kernelMonitors: KernelMonitors) extends Compatibility { protected val compiler = { val monitors = WrappedMonitors(kernelMonitors) CypherCompilerFactory.ruleBasedCompiler(graph, config, clock, monitors, rewriterSequencer, typeConversions) diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala index 2f659debb966b..0dc6423e3844a 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/Compatibility.scala @@ -21,9 +21,7 @@ package org.neo4j.cypher.internal.compatibility.v3_4 import java.time.Clock -import org.neo4j.cypher.{CypherExecutionMode, exceptionHandler} import org.neo4j.cypher.internal._ -import org.neo4j.cypher.internal.util.v3_4.InputPosition import org.neo4j.cypher.internal.compatibility._ import org.neo4j.cypher.internal.compatibility.v3_4.runtime._ import org.neo4j.cypher.internal.compatibility.v3_4.runtime.executionplan.procs.ProcedureCallOrSchemaCommandExecutionPlanBuilder @@ -40,12 +38,13 @@ import org.neo4j.cypher.internal.frontend.v3_4.helpers.rewriting.RewriterStepSeq import org.neo4j.cypher.internal.frontend.v3_4.phases._ import org.neo4j.cypher.internal.javacompat.ExecutionResult import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, DPPlannerName, IDPPlannerName, PlanContext} -import org.neo4j.cypher.internal.runtime.{ExplainMode, InternalExecutionResult, NormalMode, ProfileMode} import org.neo4j.cypher.internal.runtime.interpreted.TransactionBoundQueryContext.IndexSearchMonitor import org.neo4j.cypher.internal.runtime.interpreted._ +import org.neo4j.cypher.internal.runtime.{ExplainMode, InternalExecutionResult, NormalMode, ProfileMode} +import org.neo4j.cypher.internal.util.v3_4.InputPosition import org.neo4j.cypher.internal.v3_4.logical.plans.{ExplicitNodeIndexUsage, ExplicitRelationshipIndexUsage, SchemaIndexScanUsage, SchemaIndexSeekUsage} +import org.neo4j.cypher.{CypherExecutionMode, exceptionHandler} import org.neo4j.graphdb.Result -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.api.query.IndexUsage.{explicitIndexUsage, schemaIndexUsage} import org.neo4j.kernel.api.query.PlannerInfo import org.neo4j.kernel.impl.query.QueryExecutionMonitor @@ -59,7 +58,6 @@ import scala.util.Try trait Compatibility[CONTEXT <: CommunityRuntimeContext, T <: Transformer[CONTEXT, LogicalPlanState, CompilationState]] { val kernelMonitors: KernelMonitors - val kernelAPI: KernelAPI val clock: Clock val monitors: Monitors val config: CypherCompilerConfiguration diff --git a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala index dca659faee0e3..da2438ba0cf4e 100644 --- a/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala +++ b/community/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/compatibility/v3_4/CostCompatibility.scala @@ -30,7 +30,6 @@ import org.neo4j.cypher.internal.frontend.v3_4.ast.Statement import org.neo4j.cypher.internal.frontend.v3_4.phases.{Monitors, Transformer} import org.neo4j.cypher.internal.planner.v3_4.spi.{CostBasedPlannerName, DPPlannerName, IDPPlannerName} import org.neo4j.cypher.{CypherPlanner, CypherRuntime, CypherUpdateStrategy} -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.Log @@ -38,7 +37,6 @@ case class CostCompatibility[CONTEXT <: CommunityRuntimeContext, T <: Transformer[CONTEXT, LogicalPlanState, CompilationState]](config: CypherCompilerConfiguration, clock: Clock, kernelMonitors: KernelMonitors, - kernelAPI: KernelAPI, log: Log, planner: CypherPlanner, runtime: CypherRuntime, diff --git a/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java b/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java index 1dca601e9ff96..0254beb579b7a 100644 --- a/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java +++ b/community/cypher/cypher/src/test/java/org/neo4j/cypher/internal/javacompat/ExecutionEngineTest.java @@ -29,7 +29,6 @@ import org.neo4j.cypher.internal.CommunityCompatibilityFactory; import org.neo4j.graphdb.Result; import org.neo4j.kernel.GraphDatabaseQueryService; -import org.neo4j.kernel.api.KernelAPI; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.security.SecurityContext; import org.neo4j.kernel.impl.coreapi.InternalTransaction; @@ -58,12 +57,11 @@ public class ExecutionEngineTest public void shouldConvertListsAndMapsWhenPassingFromScalaToJava() throws Exception { GraphDatabaseQueryService graph = new GraphDatabaseCypherService( this.database.getGraphDatabaseAPI() ); - KernelAPI kernelAPI = graph.getDependencyResolver().resolveDependency( KernelAPI.class ); Monitors monitors = graph.getDependencyResolver().resolveDependency( Monitors.class ); NullLogProvider nullLogProvider = NullLogProvider.getInstance(); CommunityCompatibilityFactory compatibilityFactory = - new CommunityCompatibilityFactory( graph, kernelAPI, monitors, nullLogProvider ); + new CommunityCompatibilityFactory( graph, monitors, nullLogProvider ); ExecutionEngine executionEngine = new ExecutionEngine( graph, nullLogProvider, compatibilityFactory ); Result result; diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala index e46e33195d929..f30508b3ef20b 100644 --- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala +++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/ExecutionEngineTestSupport.scala @@ -30,7 +30,6 @@ import org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService import org.neo4j.cypher.internal.runtime.{InternalExecutionResult, RuntimeScalaValueConverter} import org.neo4j.graphdb.{GraphDatabaseService, Result} import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.{LogProvider, NullLogProvider} @@ -84,7 +83,6 @@ object ExecutionEngineHelper { def createEngine(graphDatabaseCypherService: GraphDatabaseQueryService, logProvider: LogProvider = NullLogProvider.getInstance()): ExecutionEngine = { val resolver = graphDatabaseCypherService.getDependencyResolver - val kernel = resolver.resolveDependency(classOf[KernelAPI]) val kernelMonitors: KernelMonitors = resolver.resolveDependency(classOf[KernelMonitors]) val compatibilityFactory = resolver.resolveDependency( classOf[CompatibilityFactory] ) diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/KillQueryTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/KillQueryTest.scala index 271acd8e412a6..f199473d6edf7 100644 --- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/KillQueryTest.scala +++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/KillQueryTest.scala @@ -53,7 +53,7 @@ class KillQueryTest extends ExecutionEngineFunSuite { } val logProvider = NullLogProvider.getInstance() - val compatibilityFactory = new CommunityCompatibilityFactory(graph, kernelAPI, kernelMonitors, logProvider) + val compatibilityFactory = new CommunityCompatibilityFactory(graph, kernelMonitors, logProvider) val engine = new ExecutionEngine(graph, logProvider, compatibilityFactory) val query = "MATCH (n:Label) WHERE n.x > 12 RETURN n.name" diff --git a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala index 1c5bc8551340e..9750ac080b3e6 100644 --- a/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala +++ b/community/cypher/cypher/src/test/scala/org/neo4j/cypher/internal/compatibility/v3_4/CypherCompilerAstCacheAcceptanceTest.scala @@ -59,7 +59,7 @@ class CypherCompilerAstCacheAcceptanceTest extends CypherFunSuite with GraphData nonIndexedLabelWarningThreshold = 10000L ) CostCompatibility(config, clock, kernelMonitors, - kernelAPI, log, CypherPlanner.default, CypherRuntime.default, + log, CypherPlanner.default, CypherRuntime.default, CypherUpdateStrategy.default, CommunityRuntimeBuilder, CommunityRuntimeContextCreator) } diff --git a/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala index 570cda12150e0..9c733b44fb497 100644 --- a/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala +++ b/community/cypher/runtime-util/src/test/scala/org/neo4j/cypher/GraphDatabaseTestSupport.scala @@ -24,7 +24,8 @@ import org.neo4j.cypher.internal.util.v3_4.test_helpers.{CypherFunSuite, CypherT import org.neo4j.graphdb._ import org.neo4j.graphdb.config.Setting import org.neo4j.kernel.api.proc._ -import org.neo4j.kernel.api.{KernelAPI, Statement} +import org.neo4j.kernel.api.{InwardKernel, Statement} +import org.neo4j.kernel.monitoring.Monitors import org.neo4j.kernel.{GraphDatabaseQueryService, monitoring} import org.neo4j.test.TestGraphDatabaseFactory import org.scalatest.matchers.{MatchResult, Matcher} @@ -249,9 +250,9 @@ trait GraphDatabaseTestSupport extends CypherTestSupport with GraphIcing { func } - def kernelMonitors = graph.getDependencyResolver.resolveDependency(classOf[monitoring.Monitors]) + def kernelMonitors: Monitors = graph.getDependencyResolver.resolveDependency(classOf[monitoring.Monitors]) - def kernelAPI = graph.getDependencyResolver.resolveDependency(classOf[KernelAPI]) + private def kernelAPI: InwardKernel = graph.getDependencyResolver.resolveDependency(classOf[InwardKernel]) case class haveConstraints(expectedConstraints: String*) extends Matcher[GraphDatabaseQueryService] { def apply(graph: GraphDatabaseQueryService): MatchResult = { diff --git a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/Transaction.java b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/Transaction.java index 3d9c15b90b843..c0a4b2fdb0587 100644 --- a/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/Transaction.java +++ b/community/kernel-api/src/main/java/org/neo4j/internal/kernel/api/Transaction.java @@ -31,7 +31,8 @@ public interface Transaction /** * Commit this transaction. - * @return the id of the commited transaction, or {@link READ_ONLY_TRANSACTION} if this was a read only transaction. + * @return the id of the commited transaction, or {@link Transaction#READ_ONLY_TRANSACTION} if this was a read only + * transaction. */ long commit(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java index 581ae453ba113..bc73d9c7254ae 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreDataSource.java @@ -39,7 +39,7 @@ import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.io.pagecache.IOLimiter; import org.neo4j.io.pagecache.PageCache; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.explicitindex.AutoIndexing; import org.neo4j.kernel.api.index.PropertyAccessor; import org.neo4j.kernel.api.index.SchemaIndexProvider; @@ -676,7 +676,7 @@ private NeoStoreKernelModule buildKernel( TransactionAppender appender, * This is used by explicit indexes and constraint indexes whenever a transaction is to be spawned * from within an existing transaction. It smells, and we should look over alternatives when time permits. */ - Supplier kernelProvider = () -> kernelModule.kernelAPI(); + Supplier kernelProvider = () -> kernelModule.kernelAPI(); ConstraintIndexCreator constraintIndexCreator = new ConstraintIndexCreator( kernelProvider, indexingService, propertyAccessor ); @@ -698,7 +698,7 @@ private NeoStoreKernelModule buildKernel( TransactionAppender appender, buildTransactionMonitor( kernelTransactions, clock, config ); final Kernel kernel = new Kernel( kernelTransactions, hooks, databaseHealth, transactionMonitor, procedures, - config ); + config, storageEngine ); kernel.registerTransactionHook( transactionEventHandlers ); @@ -787,7 +787,7 @@ public boolean isReadOnly() return readOnly; } - public KernelAPI getKernel() + public InwardKernel getKernel() { return kernelModule.kernelAPI(); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreKernelModule.java b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreKernelModule.java index ef3dea793e777..ba9524d60112b 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreKernelModule.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/NeoStoreKernelModule.java @@ -19,7 +19,7 @@ */ package org.neo4j.kernel; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.impl.api.Kernel; import org.neo4j.kernel.impl.api.KernelTransactions; import org.neo4j.kernel.impl.api.TransactionCommitProcess; @@ -42,7 +42,7 @@ class NeoStoreKernelModule this.fileListing = fileListing; } - public KernelAPI kernelAPI() + public InwardKernel kernelAPI() { return kernel; } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/KernelAPI.java b/community/kernel/src/main/java/org/neo4j/kernel/api/InwardKernel.java similarity index 93% rename from community/kernel/src/main/java/org/neo4j/kernel/api/KernelAPI.java rename to community/kernel/src/main/java/org/neo4j/kernel/api/InwardKernel.java index 932dcaa3407eb..66e2b2a4cf45d 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/KernelAPI.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/InwardKernel.java @@ -19,6 +19,7 @@ */ package org.neo4j.kernel.api; +import org.neo4j.internal.kernel.api.Kernel; import org.neo4j.kernel.api.exceptions.ProcedureException; import org.neo4j.kernel.api.exceptions.TransactionFailureException; import org.neo4j.kernel.api.proc.CallableProcedure; @@ -35,7 +36,7 @@ * inside the transaction are visible in read operations for {@link Statement statements} * executed within that transaction context. */ -public interface KernelAPI +public interface InwardKernel extends Kernel { /** * Creates and returns a new {@link KernelTransaction} capable of modifying the @@ -64,13 +65,6 @@ KernelTransaction newTransaction( KernelTransaction.Type type, SecurityContext s */ void registerTransactionHook( TransactionHook hook ); - /** - * Unregisters an already registered {@link TransactionHook} so that it will no longer receive notifications - * about transactions. - * @param hook {@link TransactionHook} to unregister. - */ - void unregisterTransactionHook( TransactionHook hook ); - /** * Register a procedure that should be available from this kernel. This is not a transactional method, the procedure is not * durably stored, and is not propagated in a cluster. diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java index 67f5ea93066d0..e7e4be160e09e 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/ReadOperations.java @@ -62,7 +62,7 @@ import org.neo4j.values.storable.Value; /** - * Defines all types of read operations that can be done from the {@link KernelAPI}. + * Defines all types of read operations that can be done from the {@link InwardKernel}. */ public interface ReadOperations { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/api/dbms/DbmsOperations.java b/community/kernel/src/main/java/org/neo4j/kernel/api/dbms/DbmsOperations.java index 859e738394a5c..ba552479512b3 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/api/dbms/DbmsOperations.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/api/dbms/DbmsOperations.java @@ -20,14 +20,14 @@ package org.neo4j.kernel.api.dbms; import org.neo4j.collection.RawIterator; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.exceptions.ProcedureException; import org.neo4j.kernel.api.proc.QualifiedName; import org.neo4j.kernel.api.security.SecurityContext; /** * Defines all types of system-oriented operations - i.e. those which do not read from or - * write to the graph - that can be done from the {@link KernelAPI}. + * write to the graph - that can be done from the {@link InwardKernel}. * An example of this is changing a user's password */ public interface DbmsOperations diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/Kernel.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/Kernel.java index 14b80affeb54e..7cb2439890749 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/Kernel.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/Kernel.java @@ -20,8 +20,10 @@ package org.neo4j.kernel.impl.api; -import org.neo4j.graphdb.factory.GraphDatabaseSettings; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.internal.kernel.api.CursorFactory; +import org.neo4j.internal.kernel.api.Permissions; +import org.neo4j.internal.kernel.api.Session; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.TransactionHook; import org.neo4j.kernel.api.exceptions.ProcedureException; @@ -31,10 +33,12 @@ import org.neo4j.kernel.api.proc.CallableUserFunction; import org.neo4j.kernel.api.security.SecurityContext; import org.neo4j.kernel.configuration.Config; +import org.neo4j.kernel.impl.newapi.NewKernel; import org.neo4j.kernel.impl.proc.Procedures; import org.neo4j.kernel.impl.transaction.TransactionMonitor; import org.neo4j.kernel.internal.DatabaseHealth; import org.neo4j.kernel.lifecycle.LifecycleAdapter; +import org.neo4j.storageengine.api.StorageEngine; import static org.neo4j.graphdb.factory.GraphDatabaseSettings.transaction_timeout; @@ -42,6 +46,8 @@ * This is the Neo4j Kernel, an implementation of the Kernel API which is an internal component used by Cypher and the * Core API (the API under org.neo4j.graphdb). * + * WARNING: This class is under transition. + * *

Structure

* * The Kernel lets you start transactions. The transactions allow you to create "statements", which, in turn, operate @@ -60,7 +66,7 @@ * finally {@link org.neo4j.storageengine.api.StoreReadLayer} will read the current committed state from * the stores or caches. */ -public class Kernel extends LifecycleAdapter implements KernelAPI +public class Kernel extends LifecycleAdapter implements InwardKernel { private final KernelTransactions transactions; private final TransactionHooks hooks; @@ -69,8 +75,10 @@ public class Kernel extends LifecycleAdapter implements KernelAPI private final Procedures procedures; private final Config config; + private final NewKernel newKernel; + public Kernel( KernelTransactions transactionFactory, TransactionHooks hooks, DatabaseHealth health, - TransactionMonitor transactionMonitor, Procedures procedures, Config config ) + TransactionMonitor transactionMonitor, Procedures procedures, Config config, StorageEngine engine ) { this.transactions = transactionFactory; this.hooks = hooks; @@ -78,6 +86,7 @@ public Kernel( KernelTransactions transactionFactory, TransactionHooks hooks, Da this.transactionMonitor = transactionMonitor; this.procedures = procedures; this.config = config; + this.newKernel = new NewKernel( engine, transactions ); } @Override @@ -103,12 +112,6 @@ public void registerTransactionHook( TransactionHook hook ) hooks.register( hook ); } - @Override - public void unregisterTransactionHook( TransactionHook hook ) - { - hooks.unregister( hook ); - } - @Override public void registerProcedure( CallableProcedure procedure ) throws ProcedureException { @@ -132,4 +135,16 @@ public void stop() throws Throwable { transactions.disposeAll(); } + + @Override + public CursorFactory cursors() + { + return newKernel.cursors(); + } + + @Override + public Session beginSession( Permissions permissions ) + { + return newKernel.beginSession( permissions ); + } } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/state/ConstraintIndexCreator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/state/ConstraintIndexCreator.java index 53edc40a01a38..9a0ff8219d427 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/api/state/ConstraintIndexCreator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/api/state/ConstraintIndexCreator.java @@ -22,7 +22,7 @@ import java.io.IOException; import java.util.function.Supplier; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.StatementTokenNameLookup; @@ -58,10 +58,10 @@ public class ConstraintIndexCreator { private final IndexingService indexingService; - private final Supplier kernelSupplier; + private final Supplier kernelSupplier; private final PropertyAccessor propertyAccessor; - public ConstraintIndexCreator( Supplier kernelSupplier, IndexingService indexingService, + public ConstraintIndexCreator( Supplier kernelSupplier, IndexingService indexingService, PropertyAccessor propertyAccessor ) { this.kernelSupplier = kernelSupplier; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultLabelIdCreator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultLabelIdCreator.java index 805235adc4ba3..a3ae561bac006 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultLabelIdCreator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultLabelIdCreator.java @@ -21,7 +21,7 @@ import java.util.function.Supplier; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.schema.IllegalTokenNameException; import org.neo4j.kernel.api.exceptions.schema.TooManyLabelsException; @@ -30,7 +30,7 @@ public class DefaultLabelIdCreator extends IsolatedTransactionTokenCreator { - public DefaultLabelIdCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) + public DefaultLabelIdCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { super( kernelSupplier, idGeneratorFactory ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultPropertyTokenCreator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultPropertyTokenCreator.java index 8e80eca9b1121..4f5c7c1be6623 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultPropertyTokenCreator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultPropertyTokenCreator.java @@ -21,7 +21,7 @@ import java.util.function.Supplier; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.schema.IllegalTokenNameException; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; @@ -29,7 +29,7 @@ public class DefaultPropertyTokenCreator extends IsolatedTransactionTokenCreator { - public DefaultPropertyTokenCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) + public DefaultPropertyTokenCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { super( kernelSupplier, idGeneratorFactory ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultRelationshipTypeCreator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultRelationshipTypeCreator.java index bd029cdfe245a..6878cf2c83147 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultRelationshipTypeCreator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/DefaultRelationshipTypeCreator.java @@ -21,7 +21,7 @@ import java.util.function.Supplier; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.schema.IllegalTokenNameException; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; @@ -29,7 +29,7 @@ public class DefaultRelationshipTypeCreator extends IsolatedTransactionTokenCreator { - public DefaultRelationshipTypeCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) + public DefaultRelationshipTypeCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { super( kernelSupplier, idGeneratorFactory ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/IsolatedTransactionTokenCreator.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/IsolatedTransactionTokenCreator.java index 5d66e7feea572..bbaa9f3e7cbfe 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/core/IsolatedTransactionTokenCreator.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/core/IsolatedTransactionTokenCreator.java @@ -22,7 +22,7 @@ import java.util.function.Supplier; import org.neo4j.internal.kernel.api.exceptions.KernelException; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KernelTransaction.Type; import org.neo4j.kernel.api.Statement; @@ -40,9 +40,9 @@ public abstract class IsolatedTransactionTokenCreator implements TokenCreator { protected final IdGeneratorFactory idGeneratorFactory; - private final Supplier kernelSupplier; + private final Supplier kernelSupplier; - public IsolatedTransactionTokenCreator( Supplier kernelSupplier, + public IsolatedTransactionTokenCreator( Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { this.kernelSupplier = kernelSupplier; @@ -52,7 +52,7 @@ public IsolatedTransactionTokenCreator( Supplier kernelSupplier, @Override public synchronized int getOrCreate( String name ) throws KernelException { - KernelAPI kernel = kernelSupplier.get(); + InwardKernel kernel = kernelSupplier.get(); try ( KernelTransaction transaction = kernel.newTransaction( Type.implicit, AUTH_DISABLED ) ) { try ( Statement statement = transaction.acquireStatement() ) diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java index 4770f1adb1a58..3c085d614908b 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java @@ -39,7 +39,7 @@ import org.neo4j.kernel.AvailabilityGuard; import org.neo4j.kernel.DatabaseAvailability; import org.neo4j.kernel.NeoStoreDataSource; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.explicitindex.AutoIndexing; @@ -109,7 +109,7 @@ public class DataSourceModule public final NeoStoreDataSource neoStoreDataSource; - public final Supplier kernelAPI; + public final Supplier kernelAPI; public final Supplier queryExecutor; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/ExplicitIndexStore.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/ExplicitIndexStore.java index 5d83e2052591a..3e273a81bf4db 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/index/ExplicitIndexStore.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/index/ExplicitIndexStore.java @@ -32,7 +32,7 @@ import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.TransactionFailureException; import org.neo4j.helpers.collection.MapUtil; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.explicitindex.ExplicitIndexNotFoundKernelException; @@ -50,9 +50,9 @@ public class ExplicitIndexStore private final IndexConfigStore indexStore; private final Config config; private final Function indexProviders; - private final Supplier kernel; + private final Supplier kernel; - public ExplicitIndexStore( @Nonnull Config config, IndexConfigStore indexStore, Supplier kernel, + public ExplicitIndexStore( @Nonnull Config config, IndexConfigStore indexStore, Supplier kernel, Function indexProviders ) { this.config = config; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java index 6a3dbb96d2835..1f65156e12555 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/AllStoreHolder.java @@ -38,15 +38,14 @@ import org.neo4j.kernel.api.schema.index.IndexDescriptorFactory; import org.neo4j.kernel.api.txstate.ExplicitIndexTransactionState; import org.neo4j.kernel.impl.api.store.PropertyUtil; -import org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine; import org.neo4j.kernel.impl.store.AbstractDynamicStore; -import org.neo4j.kernel.impl.store.NeoStores; import org.neo4j.kernel.impl.store.NodeStore; import org.neo4j.kernel.impl.store.PropertyStore; import org.neo4j.kernel.impl.store.RecordCursor; import org.neo4j.kernel.impl.store.RecordStore; import org.neo4j.kernel.impl.store.RelationshipGroupStore; import org.neo4j.kernel.impl.store.RelationshipStore; +import org.neo4j.kernel.impl.store.StoreHolder; import org.neo4j.kernel.impl.store.record.AbstractBaseRecord; import org.neo4j.kernel.impl.store.record.DynamicRecord; import org.neo4j.kernel.impl.store.record.NodeRecord; @@ -54,6 +53,7 @@ import org.neo4j.kernel.impl.store.record.RecordLoad; import org.neo4j.kernel.impl.store.record.RelationshipGroupRecord; import org.neo4j.kernel.impl.store.record.RelationshipRecord; +import org.neo4j.storageengine.api.StorageEngine; import org.neo4j.storageengine.api.StorageStatement; import org.neo4j.storageengine.api.StoreReadLayer; import org.neo4j.storageengine.api.schema.IndexReader; @@ -76,11 +76,11 @@ class AllStoreHolder extends Read implements Token private final StoreReadLayer read; private final Lazy explicitIndexes; - AllStoreHolder( RecordStorageEngine engine, Supplier explicitIndexes ) + AllStoreHolder( StorageEngine engine, Supplier explicitIndexes ) { read = engine.storeReadLayer(); statement = read.newStatement(); - NeoStores stores = engine.testAccessNeoStores(); + StoreHolder stores = engine.stores(); this.nodeStore = stores.getNodeStore(); this.relationshipStore = stores.getRelationshipStore(); this.groupStore = stores.getRelationshipGroupStore(); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NewKernel.java similarity index 84% rename from community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java rename to community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NewKernel.java index cbd15a367b9a5..5b17ca1f6dc17 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/TempKernel.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/newapi/NewKernel.java @@ -19,7 +19,6 @@ */ package org.neo4j.kernel.impl.newapi; -import org.neo4j.graphdb.DependencyResolver; import org.neo4j.internal.kernel.api.CursorFactory; import org.neo4j.internal.kernel.api.ExplicitIndexRead; import org.neo4j.internal.kernel.api.ExplicitIndexWrite; @@ -33,24 +32,20 @@ import org.neo4j.internal.kernel.api.Token; import org.neo4j.internal.kernel.api.Write; import org.neo4j.kernel.impl.api.KernelTransactions; -import org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine; -import org.neo4j.kernel.internal.GraphDatabaseAPI; +import org.neo4j.storageengine.api.StorageEngine; /** * This is a temporary implementation of Kernel, used to enable early testing. The plan is to merge this * class with org.neo4j.kernel.impl.api.Kernel. */ -class TempKernel implements Kernel, Session +public class NewKernel implements Kernel, Session { private final Transaction tx; private final Cursors cursors; - TempKernel( GraphDatabaseAPI db ) + public NewKernel( StorageEngine engine, KernelTransactions ktxs ) { - DependencyResolver resolver = db.getDependencyResolver(); - RecordStorageEngine engine = resolver.resolveDependency( RecordStorageEngine.class ); - KernelTransactions ktx = resolver.resolveDependency( KernelTransactions.class ); - this.tx = new Transaction( engine, ktx ); + this.tx = new Transaction( engine, ktxs ); this.cursors = new Cursors( tx ); } @@ -85,7 +80,7 @@ public void close() private static class Transaction extends AllStoreHolder implements org.neo4j.internal.kernel.api.Transaction { - Transaction( RecordStorageEngine engine, KernelTransactions ktx ) + Transaction( StorageEngine engine, KernelTransactions ktx ) { super( engine, ktx.explicitIndexTxStateSupplier() ); } diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java index b7d4e1c035c5e..aa7edbc27f396 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/storageengine/impl/recordstorage/RecordStorageEngine.java @@ -79,6 +79,7 @@ import org.neo4j.kernel.impl.store.RecordStore; import org.neo4j.kernel.impl.store.SchemaStorage; import org.neo4j.kernel.impl.store.StoreFactory; +import org.neo4j.kernel.impl.store.StoreHolder; import org.neo4j.kernel.impl.store.StoreType; import org.neo4j.kernel.impl.store.format.RecordFormat; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; @@ -398,6 +399,12 @@ public void satisfyDependencies( DependencySatisfier satisfier ) satisfier.satisfyDependency( indexStoreView ); } + @Override + public StoreHolder stores() + { + return neoStores; + } + @Override public void init() throws Throwable { diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java index 2d3dc1688704c..00fc5c8c5f12b 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/NeoStores.java @@ -51,7 +51,6 @@ import org.neo4j.kernel.impl.store.id.IdType; import org.neo4j.kernel.impl.store.kvstore.DataInitializer; import org.neo4j.kernel.impl.store.record.AbstractBaseRecord; -import org.neo4j.kernel.impl.store.record.RelationshipGroupRecord; import org.neo4j.kernel.info.DiagnosticsManager; import org.neo4j.logging.Log; import org.neo4j.logging.LogProvider; @@ -69,7 +68,7 @@ * anything but extends the AbstractStore for the "type and version" validation * performed in there. */ -public class NeoStores implements AutoCloseable +public class NeoStores implements AutoCloseable, StoreHolder { private static final String STORE_ALREADY_CLOSED_MESSAGE = "Specified store was already closed."; private static final String STORE_NOT_INITIALIZED_TEMPLATE = "Specified store was not initialized. Please specify" + @@ -313,6 +312,7 @@ public MetaDataStore getMetaDataStore() /** * @return The node store */ + @Override public NodeStore getNodeStore() { return (NodeStore) getStore( StoreType.NODE ); @@ -328,6 +328,7 @@ private DynamicArrayStore getNodeLabelStore() * * @return The relationship store */ + @Override public RelationshipStore getRelationshipStore() { return (RelationshipStore) getStore( StoreType.RELATIONSHIP ); @@ -368,6 +369,7 @@ private DynamicStringStore getLabelTokenNamesStore() * * @return The property store */ + @Override public PropertyStore getPropertyStore() { return (PropertyStore) getStore( StoreType.PROPERTY ); @@ -396,6 +398,12 @@ private DynamicStringStore getPropertyKeyTokenNamesStore() return (DynamicStringStore) getStore( StoreType.PROPERTY_KEY_TOKEN_NAME ); } + /** + * The relationship group store. + * + * @return The relationship group store. + */ + @Override public RelationshipGroupStore getRelationshipGroupStore() { return (RelationshipGroupStore) getStore( StoreType.RELATIONSHIP_GROUP ); diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/store/StoreHolder.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/StoreHolder.java new file mode 100644 index 0000000000000..8bb2f3a8cf214 --- /dev/null +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/store/StoreHolder.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2002-2017 "Neo Technology," + * Network Engine for Objects in Lund AB [http://neotechnology.com] + * + * This file is part of Neo4j. + * + * Neo4j is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package org.neo4j.kernel.impl.store; + +/** + * Interface for accessing the current stores: NodeStore, RelationshipStore, + * PropertyStore and RelationshipTypeStore. + */ +public interface StoreHolder +{ + /** + * @return The node store + */ + NodeStore getNodeStore(); + + /** + * The relationship store. + * + * @return The relationship store + */ + RelationshipStore getRelationshipStore(); + + /** + * The relationship group store. + * + * @return The relationship group store + */ + RelationshipGroupStore getRelationshipGroupStore(); + + /** + * Returns the property store. + * + * @return The property store + */ + PropertyStore getPropertyStore(); +} diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/DataSourceManager.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/DataSourceManager.java index b045eb29fc9a3..05c6bc15d8ff2 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/DataSourceManager.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/transaction/state/DataSourceManager.java @@ -24,7 +24,7 @@ import org.neo4j.graphdb.DependencyResolver; import org.neo4j.helpers.Listeners; import org.neo4j.kernel.NeoStoreDataSource; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.lifecycle.LifeSupport; import org.neo4j.kernel.lifecycle.Lifecycle; import org.neo4j.kernel.lifecycle.LifecycleStatus; @@ -32,10 +32,10 @@ /** * Adds change listener features to a {@link NeoStoreDataSource}. *

- * TODO This being a {@link KernelAPI} {@link Supplier} is a smell, it comes from established bad dependency hierarchy - * where {@link NeoStoreDataSource} and {@link KernelAPI} are needed before they exist. + * TODO This being a {@link InwardKernel} {@link Supplier} is a smell, it comes from established bad dependency hierarchy + * where {@link NeoStoreDataSource} and {@link InwardKernel} are needed before they exist. */ -public class DataSourceManager implements Lifecycle, Supplier +public class DataSourceManager implements Lifecycle, Supplier { public interface Listener { @@ -128,7 +128,7 @@ public void shutdown() throws Throwable } @Override - public KernelAPI get() + public InwardKernel get() { return dataSource.getKernel(); } diff --git a/community/kernel/src/main/java/org/neo4j/storageengine/api/StorageEngine.java b/community/kernel/src/main/java/org/neo4j/storageengine/api/StorageEngine.java index b70373905c469..7dadd948e6017 100644 --- a/community/kernel/src/main/java/org/neo4j/storageengine/api/StorageEngine.java +++ b/community/kernel/src/main/java/org/neo4j/storageengine/api/StorageEngine.java @@ -26,6 +26,7 @@ import org.neo4j.kernel.api.exceptions.TransactionFailureException; import org.neo4j.kernel.api.exceptions.schema.ConstraintValidationException; import org.neo4j.kernel.api.exceptions.schema.CreateConstraintFailureException; +import org.neo4j.kernel.impl.store.StoreHolder; import org.neo4j.kernel.info.DiagnosticsManager; import org.neo4j.storageengine.api.lock.ResourceLocker; import org.neo4j.storageengine.api.txstate.ReadableTransactionState; @@ -118,6 +119,11 @@ void createCommands( */ void forceClose(); + /** + * @return A store holder with access to the open stores. + */ + StoreHolder stores(); + /** * Startup process have reached the conclusion that recovery is required. Make the necessary * preparations to be ready for recovering transactions. diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelSchemaStateFlushingTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelSchemaStateFlushingTest.java index 326feb8a333f8..b132086fd1fae 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelSchemaStateFlushingTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/KernelSchemaStateFlushingTest.java @@ -26,7 +26,7 @@ import java.util.concurrent.locks.LockSupport; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.internal.kernel.api.exceptions.KernelException; @@ -49,7 +49,7 @@ public class KernelSchemaStateFlushingTest public ImpermanentDatabaseRule dbRule = new ImpermanentDatabaseRule(); private GraphDatabaseAPI db; - private KernelAPI kernel; + private InwardKernel kernel; @Test public void shouldKeepSchemaStateIfSchemaIsNotModified() throws TransactionFailureException @@ -224,7 +224,7 @@ private String getOrCreateFromState( KernelTransaction tx, String key, final Str public void setup() { db = dbRule.getGraphDatabaseAPI(); - kernel = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + kernel = db.getDependencyResolver().resolveDependency( InwardKernel.class ); } @After diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/constraints/ConstraintIndexCreatorTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/constraints/ConstraintIndexCreatorTest.java index d29a83b8bb93a..80c956f6c9a39 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/constraints/ConstraintIndexCreatorTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/constraints/ConstraintIndexCreatorTest.java @@ -25,7 +25,10 @@ import java.util.List; import java.util.Optional; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.internal.kernel.api.CursorFactory; +import org.neo4j.internal.kernel.api.Permissions; +import org.neo4j.internal.kernel.api.Session; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.TransactionHook; @@ -300,7 +303,7 @@ public void shouldFailOnExistingOwnedConstraintIndex() throws Exception verifyNoMoreInteractions( constraintCreationContext.schemaReadOperations() ); } - private class StubKernel implements KernelAPI + private class StubKernel implements InwardKernel { private final List statements = new ArrayList<>(); @@ -323,12 +326,6 @@ public void registerTransactionHook( TransactionHook hook ) throw new UnsupportedOperationException( "Please implement" ); } - @Override - public void unregisterTransactionHook( TransactionHook hook ) - { - throw new UnsupportedOperationException( "Please implement" ); - } - @Override public void registerProcedure( CallableProcedure procedure ) { @@ -348,6 +345,18 @@ public void registerUserAggregationFunction( CallableUserAggregationFunction fun throw new UnsupportedOperationException(); } + @Override + public CursorFactory cursors() + { + throw new UnsupportedOperationException(); + } + + @Override + public Session beginSession( Permissions permissions ) + { + throw new UnsupportedOperationException(); + } + private class StubKernelTransaction implements KernelTransaction { private long timeout; diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java index 0d7d1c3876513..fb8466a05109e 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/index/IndexPopulationJobTest.java @@ -40,7 +40,7 @@ import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.helpers.collection.Pair; import org.neo4j.helpers.collection.Visitor; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.TransactionFailureException; @@ -115,7 +115,7 @@ public class IndexPopulationJobTest private final String name = "name"; private final String age = "age"; - private KernelAPI kernel; + private InwardKernel kernel; private IndexStoreView indexStoreView; private DatabaseSchemaState stateHolder; private int labelId; @@ -125,7 +125,7 @@ public void before() throws Exception { db = (GraphDatabaseAPI) new TestGraphDatabaseFactory().newImpermanentDatabaseBuilder() .setConfig( GraphDatabaseSettings.record_id_batch_size, "1" ).newGraphDatabase(); - kernel = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + kernel = db.getDependencyResolver().resolveDependency( InwardKernel.class ); stateHolder = new DatabaseSchemaState( NullLogProvider.getInstance() ); indexStoreView = indexStoreView(); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/CompositeUniquenessConstraintValidationIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/CompositeUniquenessConstraintValidationIT.java index a6a37a2653a55..cd8cb04d801af 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/CompositeUniquenessConstraintValidationIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/CompositeUniquenessConstraintValidationIT.java @@ -34,7 +34,7 @@ import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Transaction; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.internal.kernel.api.exceptions.KernelException; @@ -102,14 +102,14 @@ public CompositeUniquenessConstraintValidationIT( TestParams params ) private KernelTransaction transaction; private Statement statement; private GraphDatabaseAPI graphDatabaseAPI; - protected KernelAPI kernel; + protected InwardKernel kernel; @Before public void setup() throws Exception { graphDatabaseAPI = dbRule.getGraphDatabaseAPI(); - kernel = graphDatabaseAPI.getDependencyResolver().resolveDependency( KernelAPI.class ); + kernel = graphDatabaseAPI.getDependencyResolver().resolveDependency( InwardKernel.class ); newTransaction(); statement.schemaWriteOperations().uniquePropertyConstraintCreate( forLabel( label, propertyIds() ) ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIntegrationTest.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIntegrationTest.java index 2500493d8b89b..48177ef7c8303 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIntegrationTest.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/KernelIntegrationTest.java @@ -27,7 +27,7 @@ import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.factory.GraphDatabaseBuilder; import org.neo4j.kernel.api.DataWriteOperations; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.ProcedureCallOperations; import org.neo4j.kernel.api.ReadOperations; @@ -58,7 +58,7 @@ public abstract class KernelIntegrationTest @SuppressWarnings( "deprecation" ) protected GraphDatabaseAPI db; ThreadToStatementContextBridge statementContextSupplier; - protected KernelAPI kernel; + protected InwardKernel kernel; protected IndexingService indexingService; private KernelTransaction transaction; @@ -157,7 +157,7 @@ public void cleanup() throws Exception protected void startDb() { db = (GraphDatabaseAPI) createGraphDatabase(); - kernel = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + kernel = db.getDependencyResolver().resolveDependency( InwardKernel.class ); indexingService = db.getDependencyResolver().resolveDependency( IndexingService.class ); statementContextSupplier = db.getDependencyResolver().resolveDependency( ThreadToStatementContextBridge.class ); dbmsOperations = db.getDependencyResolver().resolveDependency( DbmsOperations.class ); diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/ManyPropertyKeysIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/ManyPropertyKeysIT.java index b0ddd42e5bd9d..8377571a0a86a 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/core/ManyPropertyKeysIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/core/ManyPropertyKeysIT.java @@ -33,7 +33,7 @@ import org.neo4j.graphdb.Transaction; import org.neo4j.helpers.collection.Iterables; import org.neo4j.io.pagecache.PageCache; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.TransactionFailureException; @@ -169,7 +169,7 @@ private Node createNodeWithProperty( GraphDatabaseService db, String key, Object private int propertyKeyCount( GraphDatabaseAPI db ) throws TransactionFailureException { - KernelAPI kernelAPI = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernelAPI = db.getDependencyResolver().resolveDependency( InwardKernel.class ); try ( KernelTransaction tx = kernelAPI.newTransaction( KernelTransaction.Type.implicit, AnonymousContext.read() ); Statement statement = tx.acquireStatement() ) { diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/newapi/ReadTestSupport.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/newapi/ReadTestSupport.java index ae0955d84243a..bd5fea5b92e7f 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/newapi/ReadTestSupport.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/newapi/ReadTestSupport.java @@ -25,12 +25,15 @@ import java.util.Map; import java.util.function.Consumer; +import org.neo4j.graphdb.DependencyResolver; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.config.Setting; import org.neo4j.graphdb.factory.GraphDatabaseBuilder; import org.neo4j.internal.kernel.api.Kernel; import org.neo4j.internal.kernel.api.KernelAPIReadTestSupport; +import org.neo4j.kernel.impl.api.KernelTransactions; import org.neo4j.kernel.internal.GraphDatabaseAPI; +import org.neo4j.storageengine.api.StorageEngine; import org.neo4j.test.TestGraphDatabaseFactory; class ReadTestSupport implements KernelAPIReadTestSupport @@ -55,7 +58,10 @@ public void setup( File storeDir, Consumer create ) throws @Override public Kernel kernelToTest() { - return new TempKernel( (GraphDatabaseAPI) db ); + DependencyResolver resolver = ((GraphDatabaseAPI) this.db).getDependencyResolver(); + return new NewKernel( + resolver.resolveDependency( StorageEngine.class ), + resolver.resolveDependency( KernelTransactions.class ) ); } @Override diff --git a/community/neo4j/src/test/java/schema/IndexPopulationFlipRaceIT.java b/community/neo4j/src/test/java/schema/IndexPopulationFlipRaceIT.java index 4294151dc26ca..507cdd760b357 100644 --- a/community/neo4j/src/test/java/schema/IndexPopulationFlipRaceIT.java +++ b/community/neo4j/src/test/java/schema/IndexPopulationFlipRaceIT.java @@ -26,7 +26,7 @@ import org.neo4j.graphdb.Node; import org.neo4j.graphdb.Transaction; import org.neo4j.helpers.collection.Pair; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.schema.index.IndexDescriptor; @@ -137,7 +137,7 @@ private Pair createDataThatGoesIntoToThoseIndexes( int i ) private void verifyThatThereAreExactlyOneIndexEntryPerNodeInTheIndexes( int i, Pair data ) throws Exception { - KernelAPI kernelAPI = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernelAPI = db.getDependencyResolver().resolveDependency( InwardKernel.class ); try ( KernelTransaction tx = kernelAPI.newTransaction( KernelTransaction.Type.implicit, AnonymousContext.read() ); Statement statement = tx.acquireStatement() ) { diff --git a/community/server/src/test/java/org/neo4j/server/rest/domain/GraphDbHelper.java b/community/server/src/test/java/org/neo4j/server/rest/domain/GraphDbHelper.java index ced27762d31dd..734b0acc5712f 100644 --- a/community/server/src/test/java/org/neo4j/server/rest/domain/GraphDbHelper.java +++ b/community/server/src/test/java/org/neo4j/server/rest/domain/GraphDbHelper.java @@ -40,7 +40,7 @@ import org.neo4j.helpers.collection.IterableWrapper; import org.neo4j.helpers.collection.Iterables; import org.neo4j.helpers.collection.MapUtil; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.Statement; import org.neo4j.kernel.api.exceptions.TransactionFailureException; @@ -64,7 +64,7 @@ public GraphDbHelper( Database database ) public int getNumberOfNodes() { - KernelAPI kernelAPI = database.getGraph().getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernelAPI = database.getGraph().getDependencyResolver().resolveDependency( InwardKernel.class ); try ( KernelTransaction tx = kernelAPI.newTransaction( implicit, AnonymousContext.read() ); Statement statement = tx.acquireStatement() ) { @@ -78,7 +78,7 @@ public int getNumberOfNodes() public int getNumberOfRelationships() { - KernelAPI kernelAPI = database.getGraph().getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernelAPI = database.getGraph().getDependencyResolver().resolveDependency( InwardKernel.class ); try ( KernelTransaction tx = kernelAPI.newTransaction( implicit, AnonymousContext.read() ); Statement statement = tx.acquireStatement() ) { diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterDiscoveryIT.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterDiscoveryIT.java index ea66141420ca8..300861158b11b 100644 --- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterDiscoveryIT.java +++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterDiscoveryIT.java @@ -30,7 +30,7 @@ import java.util.Map; import org.neo4j.causalclustering.discovery.Cluster; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KernelTransaction.Type; import org.neo4j.kernel.api.Statement; @@ -123,7 +123,7 @@ public void shouldNotBeAbleToDiscoverFromReadReplicas() throws Exception private List> getMembers( GraphDatabaseFacade db ) throws TransactionFailureException, org .neo4j.kernel.api.exceptions.ProcedureException { - KernelAPI kernel = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernel = db.getDependencyResolver().resolveDependency( InwardKernel.class ); KernelTransaction transaction = kernel.newTransaction( Type.implicit, AnonymousContext.read() ); try ( Statement statement = transaction.acquireStatement() ) { diff --git a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterOverviewIT.java b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterOverviewIT.java index ce95dbdf205f3..51bfdcb829ffe 100644 --- a/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterOverviewIT.java +++ b/enterprise/causal-clustering/src/test/java/org/neo4j/causalclustering/scenarios/ClusterOverviewIT.java @@ -46,7 +46,7 @@ import org.neo4j.causalclustering.discovery.procedures.Role; import org.neo4j.collection.RawIterator; import org.neo4j.internal.kernel.api.exceptions.KernelException; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.KernelTransaction.Type; import org.neo4j.kernel.api.Statement; @@ -331,7 +331,7 @@ private Matcher> doesNotContainRole( Role unexpectedRole ) private List clusterOverview( GraphDatabaseFacade db ) throws TransactionFailureException, ProcedureException { - KernelAPI kernel = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernel = db.getDependencyResolver().resolveDependency( InwardKernel.class ); KernelTransaction transaction = kernel.newTransaction( Type.implicit, AnonymousContext.read() ); List infos = new ArrayList<>(); try ( Statement statement = transaction.acquireStatement() ) diff --git a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala index 6cfc8d95679d1..a8fceda929ae2 100644 --- a/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala +++ b/enterprise/cypher/acceptance-spec-suite/src/test/scala/org/neo4j/internal/cypher/acceptance/MatchLongPatternAcceptanceTest.scala @@ -30,7 +30,6 @@ import org.neo4j.cypher.internal.{CommunityCompatibilityFactory, ExecutionEngine import org.neo4j.graphdb.config.Setting import org.neo4j.graphdb.factory.GraphDatabaseSettings import org.neo4j.graphdb.factory.GraphDatabaseSettings.{cypher_idp_solver_duration_threshold, cypher_idp_solver_table_threshold} -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.monitoring import org.neo4j.kernel.monitoring.Monitors import org.neo4j.logging.NullLogProvider @@ -245,11 +244,10 @@ class MatchLongPatternAcceptanceTest extends ExecutionEngineFunSuite with QueryS val graph = new GraphDatabaseCypherService(new ImpermanentGraphDatabase(new File("target/test-data/pattern-acceptance"), config)) try { - val kernelAPI = graph.getDependencyResolver.resolveDependency(classOf[KernelAPI]) val monitors = graph.getDependencyResolver.resolveDependency(classOf[Monitors]) val logProvider = NullLogProvider.getInstance() // FIXME: probably both? - val factory = new CommunityCompatibilityFactory(graph, kernelAPI, monitors, logProvider) + val factory = new CommunityCompatibilityFactory(graph, monitors, logProvider) val engine = new ExecutionEngine(graph, logProvider, factory) run(engine, graph) } finally { diff --git a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java index 3444ad18ea9aa..48b6981cf4e09 100644 --- a/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java +++ b/enterprise/cypher/cypher/src/main/java/org/neo4j/cypher/internal/javacompat/EnterpriseCypherEngineProvider.java @@ -23,7 +23,6 @@ import org.neo4j.cypher.internal.EnterpriseCompatibilityFactory; import org.neo4j.graphdb.DependencyResolver; import org.neo4j.helpers.Service; -import org.neo4j.kernel.api.KernelAPI; import org.neo4j.kernel.impl.logging.LogService; import org.neo4j.kernel.impl.query.QueryEngineProvider; import org.neo4j.kernel.impl.query.QueryExecutionEngine; @@ -54,14 +53,13 @@ protected QueryExecutionEngine createEngine( Dependencies deps, GraphDatabaseAPI DependencyResolver resolver = graphAPI.getDependencyResolver(); LogService logService = resolver.resolveDependency( LogService.class ); - KernelAPI kernelAPI = resolver.resolveDependency( KernelAPI.class ); Monitors monitors = resolver.resolveDependency( Monitors.class ); LogProvider logProvider = logService.getInternalLogProvider(); CommunityCompatibilityFactory inner = - new CommunityCompatibilityFactory( queryService, kernelAPI, monitors, logProvider ); + new CommunityCompatibilityFactory( queryService, monitors, logProvider ); EnterpriseCompatibilityFactory compatibilityFactory = - new EnterpriseCompatibilityFactory( inner, queryService, kernelAPI, monitors, logProvider ); + new EnterpriseCompatibilityFactory( inner, queryService, monitors, logProvider ); deps.satisfyDependency( compatibilityFactory ); return new ExecutionEngine( queryService, logProvider, compatibilityFactory ); } diff --git a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/EnterpriseCompatibilityFactory.scala b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/EnterpriseCompatibilityFactory.scala index cb2af3f3bddc7..aefd7fcc69fe0 100644 --- a/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/EnterpriseCompatibilityFactory.scala +++ b/enterprise/cypher/cypher/src/main/scala/org/neo4j/cypher/internal/EnterpriseCompatibilityFactory.scala @@ -28,14 +28,13 @@ import org.neo4j.cypher.internal.runtime.vectorized.dispatcher.{ParallelDispatch import org.neo4j.cypher.internal.spi.v3_4.codegen.GeneratedQueryStructure import org.neo4j.graphdb.factory.GraphDatabaseSettings import org.neo4j.kernel.GraphDatabaseQueryService -import org.neo4j.kernel.api.KernelAPI import org.neo4j.kernel.configuration.Config import org.neo4j.kernel.monitoring.{Monitors => KernelMonitors} import org.neo4j.logging.LogProvider import org.neo4j.scheduler.JobScheduler class EnterpriseCompatibilityFactory(inner: CompatibilityFactory, graph: GraphDatabaseQueryService, - kernelAPI: KernelAPI, kernelMonitors: KernelMonitors, + kernelMonitors: KernelMonitors, logProvider: LogProvider) extends CompatibilityFactory { override def create(spec: PlannerSpec_v2_3, config: CypherCompilerConfiguration): v2_3.Compatibility = inner.create(spec, config) @@ -60,7 +59,7 @@ class EnterpriseCompatibilityFactory(inner: CompatibilityFactory, graph: GraphDa new ParallelDispatcher(morselSize, numberOfThreads, executorService) } - CostCompatibility(config, CompilerEngineDelegator.CLOCK, kernelMonitors, kernelAPI, logProvider.getLog(getClass), + CostCompatibility(config, CompilerEngineDelegator.CLOCK, kernelMonitors, logProvider.getLog(getClass), spec.planner, spec.runtime, spec.updateStrategy, EnterpriseRuntimeBuilder, EnterpriseRuntimeContextCreator(GeneratedQueryStructure, dispatcher)) } diff --git a/enterprise/cypher/spec-suite-tools/src/test/scala/cypher/feature/steps/SpecSuiteSteps.scala b/enterprise/cypher/spec-suite-tools/src/test/scala/cypher/feature/steps/SpecSuiteSteps.scala index 2ef58492d811e..faef0a0526cf3 100644 --- a/enterprise/cypher/spec-suite-tools/src/test/scala/cypher/feature/steps/SpecSuiteSteps.scala +++ b/enterprise/cypher/spec-suite-tools/src/test/scala/cypher/feature/steps/SpecSuiteSteps.scala @@ -34,7 +34,7 @@ import org.neo4j.collection.RawIterator import org.neo4j.cypher.internal.util.v3_4.symbols.{CypherType, _} import org.neo4j.graphdb.factory.{EnterpriseGraphDatabaseFactory, GraphDatabaseSettings} import org.neo4j.graphdb.{GraphDatabaseService, QueryStatistics, Result, Transaction} -import org.neo4j.kernel.api.KernelAPI +import org.neo4j.kernel.api.InwardKernel import org.neo4j.kernel.api.exceptions.ProcedureException import org.neo4j.kernel.api.proc.CallableProcedure.BasicProcedure import org.neo4j.kernel.api.proc.{Context, Neo4jTypes} @@ -120,7 +120,7 @@ trait SpecSuiteSteps extends FunSuiteLike with Matchers with TCKCucumberTemplate scenarioBuilder.procedureRegistration { g: GraphDatabaseAPI => val parsedSignature = ProcedureSignature.parse(signatureText) val kernelProcedure = buildProcedure(parsedSignature, values) - Try(g.getDependencyResolver.resolveDependency(classOf[KernelAPI]).registerProcedure(kernelProcedure)) match { + Try(g.getDependencyResolver.resolveDependency(classOf[InwardKernel]).registerProcedure(kernelProcedure)) match { case Success(_) => case Failure(e) => System.err.println(s"\nRegistration of procedure $signatureText failed: " + e.getMessage) } diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/LabelTokenCreatorSwitcher.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/LabelTokenCreatorSwitcher.java index def9688ac9262..f1e6cad5a1aaf 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/LabelTokenCreatorSwitcher.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/LabelTokenCreatorSwitcher.java @@ -22,7 +22,7 @@ import java.util.function.Supplier; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.ha.DelegateInvocationHandler; import org.neo4j.kernel.ha.SlaveLabelTokenCreator; import org.neo4j.kernel.ha.com.RequestContextFactory; @@ -34,12 +34,12 @@ public class LabelTokenCreatorSwitcher extends AbstractComponentSwitcher master; private final RequestContextFactory requestContextFactory; - private final Supplier kernelSupplier; + private final Supplier kernelSupplier; private final IdGeneratorFactory idGeneratorFactory; public LabelTokenCreatorSwitcher( DelegateInvocationHandler delegate, DelegateInvocationHandler master, RequestContextFactory requestContextFactory, - Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) + Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { super( delegate ); this.master = master; diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/PropertyKeyCreatorSwitcher.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/PropertyKeyCreatorSwitcher.java index 257b33675b37d..c591c700ce8a3 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/PropertyKeyCreatorSwitcher.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/PropertyKeyCreatorSwitcher.java @@ -22,7 +22,7 @@ import java.util.function.Supplier; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.ha.DelegateInvocationHandler; import org.neo4j.kernel.ha.SlavePropertyTokenCreator; import org.neo4j.kernel.ha.com.RequestContextFactory; @@ -34,12 +34,12 @@ public class PropertyKeyCreatorSwitcher extends AbstractComponentSwitcher master; private final RequestContextFactory requestContextFactory; - private final Supplier kernelSupplier; + private final Supplier kernelSupplier; private final IdGeneratorFactory idGeneratorFactory; public PropertyKeyCreatorSwitcher( DelegateInvocationHandler delegate, DelegateInvocationHandler master, RequestContextFactory requestContextFactory, - Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) + Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { super( delegate ); this.master = master; diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/RelationshipTypeCreatorSwitcher.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/RelationshipTypeCreatorSwitcher.java index 7469d80decb45..9b85a5efa4b72 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/RelationshipTypeCreatorSwitcher.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/cluster/modeswitch/RelationshipTypeCreatorSwitcher.java @@ -22,7 +22,7 @@ import java.util.function.Supplier; import org.neo4j.kernel.impl.store.id.IdGeneratorFactory; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.ha.DelegateInvocationHandler; import org.neo4j.kernel.ha.SlaveRelationshipTypeCreator; import org.neo4j.kernel.ha.com.RequestContextFactory; @@ -34,12 +34,12 @@ public class RelationshipTypeCreatorSwitcher extends AbstractComponentSwitcher master; private final RequestContextFactory requestContextFactory; - private final Supplier kernelSupplier; + private final Supplier kernelSupplier; private final IdGeneratorFactory idGeneratorFactory; public RelationshipTypeCreatorSwitcher( DelegateInvocationHandler delegate, DelegateInvocationHandler master, RequestContextFactory requestContextFactory, - Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) + Supplier kernelSupplier, IdGeneratorFactory idGeneratorFactory ) { super( delegate ); this.master = master; diff --git a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java index 75c55cfe363fb..e37d80dc91843 100644 --- a/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java +++ b/enterprise/ha/src/main/java/org/neo4j/kernel/ha/factory/HighlyAvailableEditionModule.java @@ -63,7 +63,7 @@ import org.neo4j.io.pagecache.PageCache; import org.neo4j.kernel.AvailabilityGuard; import org.neo4j.kernel.NeoStoreDataSource; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.bolt.BoltConnectionTracker; import org.neo4j.kernel.api.exceptions.InvalidTransactionTypeKernelException; import org.neo4j.kernel.configuration.Config; @@ -237,7 +237,7 @@ public HighlyAvailableEditionModule( final PlatformModule platformModule ) new TransactionCommittingResponseUnpacker( dependencies, config.get( HaSettings.pull_apply_batch_size ), idReuseSafeZone ) ); - Supplier kernelProvider = dependencies.provideDependency( KernelAPI.class ); + Supplier kernelProvider = dependencies.provideDependency( InwardKernel.class ); transactionStartTimeout = config.get( HaSettings.state_switch_timeout ).toMillis(); @@ -702,7 +702,7 @@ private Locks createLockManager( ComponentSwitcherContainer componentSwitcherCon private TokenCreator createRelationshipTypeCreator( Config config, ComponentSwitcherContainer componentSwitcherContainer, DelegateInvocationHandler masterInvocationHandler, RequestContextFactory requestContextFactory, - Supplier kernelProvider ) + Supplier kernelProvider ) { if ( config.get( GraphDatabaseSettings.read_only ) ) { @@ -724,7 +724,7 @@ private TokenCreator createRelationshipTypeCreator( Config config, private TokenCreator createPropertyKeyCreator( Config config, ComponentSwitcherContainer componentSwitcherContainer, DelegateInvocationHandler masterDelegateInvocationHandler, - RequestContextFactory requestContextFactory, Supplier kernelProvider ) + RequestContextFactory requestContextFactory, Supplier kernelProvider ) { if ( config.get( GraphDatabaseSettings.read_only ) ) { @@ -746,7 +746,7 @@ private TokenCreator createPropertyKeyCreator( Config config, ComponentSwitcherC private TokenCreator createLabelIdCreator( Config config, ComponentSwitcherContainer componentSwitcherContainer, DelegateInvocationHandler masterDelegateInvocationHandler, - RequestContextFactory requestContextFactory, Supplier kernelProvider ) + RequestContextFactory requestContextFactory, Supplier kernelProvider ) { if ( config.get( GraphDatabaseSettings.read_only ) ) { diff --git a/integrationtests/src/test/java/org/neo4j/storeupgrade/StoreUpgradeIT.java b/integrationtests/src/test/java/org/neo4j/storeupgrade/StoreUpgradeIT.java index f0da7caeb752d..68f5bb8b34475 100644 --- a/integrationtests/src/test/java/org/neo4j/storeupgrade/StoreUpgradeIT.java +++ b/integrationtests/src/test/java/org/neo4j/storeupgrade/StoreUpgradeIT.java @@ -50,7 +50,7 @@ import org.neo4j.helpers.Exceptions; import org.neo4j.helpers.collection.Iterables; import org.neo4j.io.fs.FileUtils; -import org.neo4j.kernel.api.KernelAPI; +import org.neo4j.kernel.api.InwardKernel; import org.neo4j.kernel.api.KernelTransaction; import org.neo4j.kernel.api.ReadOperations; import org.neo4j.kernel.api.Statement; @@ -422,7 +422,7 @@ private static void checkInstance( Store store, GraphDatabaseAPI db ) throws Ker private static void checkIndexCounts( Store store, GraphDatabaseAPI db ) throws KernelException { - KernelAPI kernel = db.getDependencyResolver().resolveDependency( KernelAPI.class ); + InwardKernel kernel = db.getDependencyResolver().resolveDependency( InwardKernel.class ); try ( KernelTransaction tx = kernel.newTransaction( KernelTransaction.Type.implicit, AnonymousContext.read() ); Statement statement = tx.acquireStatement() ) {