Пример #1
0
  public @Test void canInvokeShutdownFromShutdownHandler() {
    graphDb.registerKernelEventHandler(
        new KernelEventHandler() {
          @Override
          public void beforeShutdown() {
            graphDb.shutdown();
          }

          @Override
          public Object getResource() {
            return null;
          }

          @Override
          public void kernelPanic(ErrorState error) {
            // do nothing
          }

          @Override
          public ExecutionOrder orderComparedTo(KernelEventHandler other) {
            return ExecutionOrder.DOESNT_MATTER;
          }
        });
    graphDb.shutdown();
  }
Пример #2
0
  public @Test void eventHandlersAreOnlyInvokedOnceDuringShutdown() {
    final AtomicInteger counter = new AtomicInteger();
    graphDb.registerKernelEventHandler(
        new KernelEventHandler() {
          @Override
          public void beforeShutdown() {
            counter.incrementAndGet();
          }

          @Override
          public Object getResource() {
            return null;
          }

          @Override
          public void kernelPanic(ErrorState error) {
            // do nothing
          }

          @Override
          public ExecutionOrder orderComparedTo(KernelEventHandler other) {
            return ExecutionOrder.DOESNT_MATTER;
          }
        });
    graphDb.shutdown();
    graphDb.shutdown();
    assertEquals(1, counter.get());
  }
Пример #3
0
 /**
  * Construct a new runtime. Protected, please use {@link
  * com.graphaware.runtime.GraphAwareRuntimeFactory}.
  *
  * @param configuration config.
  * @param database on which the runtime operates.
  * @param txDrivenModuleManager manager for transaction-driven modules.
  * @param writer to use when writing to the database.
  */
 protected DatabaseRuntime(
     RuntimeConfiguration configuration,
     GraphDatabaseService database,
     TxDrivenModuleManager<TxDrivenModule> txDrivenModuleManager,
     Neo4jWriter writer) {
   super(configuration);
   this.database = database;
   this.txDrivenModuleManager = txDrivenModuleManager;
   this.writer = writer;
   database.registerTransactionEventHandler(this);
   database.registerKernelEventHandler(this);
 }