Class DbmsRule

All Implemented Interfaces:
org.junit.rules.TestRule, org.neo4j.graphdb.GraphDatabaseService, org.neo4j.kernel.internal.GraphDatabaseAPI
Direct Known Subclasses:
ImpermanentDbmsRule

public abstract class DbmsRule extends ExternalResource implements org.neo4j.kernel.internal.GraphDatabaseAPI
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    Override to tear down your specific external resource.
    protected void
    Override to set up your specific external resource.
    org.neo4j.kernel.impl.coreapi.InternalTransaction
    beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext)
     
    org.neo4j.kernel.impl.coreapi.InternalTransaction
    beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo connectionInfo)
     
    org.neo4j.kernel.impl.coreapi.InternalTransaction
    beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo connectionInfo, long timeout, TimeUnit unit)
     
    org.neo4j.kernel.impl.coreapi.InternalTransaction
    beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo clientInfo, long timeout, TimeUnit unit, Consumer<org.neo4j.kernel.api.exceptions.Status> terminationCallback, org.neo4j.kernel.impl.coreapi.TransactionExceptionMapper transactionExceptionMapper)
     
    org.neo4j.graphdb.Transaction
     
    org.neo4j.graphdb.Transaction
    beginTx(long timeout, TimeUnit timeUnit)
     
    org.neo4j.kernel.database.NamedDatabaseId
     
    org.neo4j.io.layout.DatabaseLayout
     
     
    org.neo4j.kernel.impl.factory.DbmsInfo
     
    void
     
    void
     
    void
     
    <T> T
    executeTransactionally(String query, Map<String,Object> parameters, org.neo4j.graphdb.ResultTransformer<T> resultTransformer)
     
    <T> T
    executeTransactionally(String query, Map<String,Object> parameters, org.neo4j.graphdb.ResultTransformer<T> resultTransformer, Duration timeout)
     
    org.neo4j.common.DependencyResolver
     
    org.neo4j.kernel.internal.GraphDatabaseAPI
    DbmsRule now implements GraphDatabaseAPI directly, so no need.
    org.neo4j.dbms.api.DatabaseManagementService
     
    boolean
     
    boolean
    isAvailable(long timeout)
     
    org.neo4j.dbms.systemgraph.TopologyGraphDbmsModel.HostedOnMode
     
    protected abstract org.neo4j.dbms.api.Neo4jDatabaseManagementServiceBuilder
     
    void
    restartDatabase(Map<org.neo4j.graphdb.config.Setting<?>,Object> configChanges)
     
    void
     
    Means the database will be started on first getGraphDatabaseAPI()} or ensureStarted() call.
    withSetting(org.neo4j.graphdb.config.Setting<T> key, T value)
    Adds or replaces a setting for the database managed by this database rule.

    Methods inherited from class org.neo4j.test.rule.ExternalResource

    apply

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • DbmsRule

      public DbmsRule()
  • Method Details

    • startLazily

      public DbmsRule startLazily()
      Means the database will be started on first getGraphDatabaseAPI()} or ensureStarted() call.
    • executeTransactionally

      public void executeTransactionally(String query) throws org.neo4j.graphdb.QueryExecutionException
      Specified by:
      executeTransactionally in interface org.neo4j.graphdb.GraphDatabaseService
      Throws:
      org.neo4j.graphdb.QueryExecutionException
    • executeTransactionally

      public void executeTransactionally(String query, Map<String,Object> parameters) throws org.neo4j.graphdb.QueryExecutionException
      Specified by:
      executeTransactionally in interface org.neo4j.graphdb.GraphDatabaseService
      Throws:
      org.neo4j.graphdb.QueryExecutionException
    • executeTransactionally

      public <T> T executeTransactionally(String query, Map<String,Object> parameters, org.neo4j.graphdb.ResultTransformer<T> resultTransformer) throws org.neo4j.graphdb.QueryExecutionException
      Specified by:
      executeTransactionally in interface org.neo4j.graphdb.GraphDatabaseService
      Throws:
      org.neo4j.graphdb.QueryExecutionException
    • executeTransactionally

      public <T> T executeTransactionally(String query, Map<String,Object> parameters, org.neo4j.graphdb.ResultTransformer<T> resultTransformer, Duration timeout) throws org.neo4j.graphdb.QueryExecutionException
      Specified by:
      executeTransactionally in interface org.neo4j.graphdb.GraphDatabaseService
      Throws:
      org.neo4j.graphdb.QueryExecutionException
    • beginTransaction

      public org.neo4j.kernel.impl.coreapi.InternalTransaction beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext)
      Specified by:
      beginTransaction in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • beginTransaction

      public org.neo4j.kernel.impl.coreapi.InternalTransaction beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo connectionInfo)
      Specified by:
      beginTransaction in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • beginTransaction

      public org.neo4j.kernel.impl.coreapi.InternalTransaction beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo connectionInfo, long timeout, TimeUnit unit)
      Specified by:
      beginTransaction in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • beginTransaction

      public org.neo4j.kernel.impl.coreapi.InternalTransaction beginTransaction(org.neo4j.kernel.api.KernelTransaction.Type type, org.neo4j.internal.kernel.api.security.LoginContext loginContext, org.neo4j.internal.kernel.api.connectioninfo.ClientConnectionInfo clientInfo, long timeout, TimeUnit unit, Consumer<org.neo4j.kernel.api.exceptions.Status> terminationCallback, org.neo4j.kernel.impl.coreapi.TransactionExceptionMapper transactionExceptionMapper)
      Specified by:
      beginTransaction in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • beginTx

      public org.neo4j.graphdb.Transaction beginTx()
      Specified by:
      beginTx in interface org.neo4j.graphdb.GraphDatabaseService
    • beginTx

      public org.neo4j.graphdb.Transaction beginTx(long timeout, TimeUnit timeUnit)
      Specified by:
      beginTx in interface org.neo4j.graphdb.GraphDatabaseService
    • before

      protected void before()
      Description copied from class: ExternalResource
      Override to set up your specific external resource.
      Overrides:
      before in class ExternalResource
    • after

      protected void after()
      Description copied from class: ExternalResource
      Override to tear down your specific external resource.
      Overrides:
      after in class ExternalResource
    • newFactory

      protected abstract org.neo4j.dbms.api.Neo4jDatabaseManagementServiceBuilder newFactory()
    • getGraphDatabaseAPI

      public org.neo4j.kernel.internal.GraphDatabaseAPI getGraphDatabaseAPI()
      DbmsRule now implements GraphDatabaseAPI directly, so no need. Also for ensuring a lazily started database is created, use ensureStarted() instead.
    • getManagementService

      public org.neo4j.dbms.api.DatabaseManagementService getManagementService()
    • ensureStarted

      public void ensureStarted()
    • withSetting

      public <T> DbmsRule withSetting(org.neo4j.graphdb.config.Setting<T> key, T value)
      Adds or replaces a setting for the database managed by this database rule.

      If this method is called when constructing the rule, the setting is considered a global setting applied to all tests.

      If this method is called inside a specific test, i.e. after before(), but before started (a call to startLazily() have been made), then this setting will be considered a test-specific setting, adding to or overriding the global settings for this test only. Test-specific settings will be remembered throughout a test, even between restarts.

      If this method is called when a database is already started an IllegalStateException will be thrown since the setting will have no effect, instead letting the developer notice that and change the test code.

    • restartDatabase

      public void restartDatabase(Map<org.neo4j.graphdb.config.Setting<?>,Object> configChanges)
    • shutdown

      public void shutdown()
    • databaseId

      public org.neo4j.kernel.database.NamedDatabaseId databaseId()
      Specified by:
      databaseId in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • dbmsInfo

      public org.neo4j.kernel.impl.factory.DbmsInfo dbmsInfo()
      Specified by:
      dbmsInfo in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • mode

      public org.neo4j.dbms.systemgraph.TopologyGraphDbmsModel.HostedOnMode mode()
      Specified by:
      mode in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • getDependencyResolver

      public org.neo4j.common.DependencyResolver getDependencyResolver()
      Specified by:
      getDependencyResolver in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • databaseLayout

      public org.neo4j.io.layout.DatabaseLayout databaseLayout()
      Specified by:
      databaseLayout in interface org.neo4j.kernel.internal.GraphDatabaseAPI
    • isAvailable

      public boolean isAvailable(long timeout)
      Specified by:
      isAvailable in interface org.neo4j.graphdb.GraphDatabaseService
    • isAvailable

      public boolean isAvailable()
      Specified by:
      isAvailable in interface org.neo4j.graphdb.GraphDatabaseService
    • databaseName

      public String databaseName()
      Specified by:
      databaseName in interface org.neo4j.graphdb.GraphDatabaseService