use of org.neo4j.kernel.monitoring.Monitors in project neo4j by neo4j.
the class ExecutionEngineTests method shouldConvertListsAndMapsWhenPassingFromScalaToJava.
@Test
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);
ExecutionEngine executionEngine = new ExecutionEngine(graph, nullLogProvider, compatibilityFactory);
Result result;
try (InternalTransaction tx = graph.beginTransaction(KernelTransaction.Type.implicit, SecurityContext.AUTH_DISABLED)) {
String query = "RETURN { key : 'Value' , collectionKey: [{ inner: 'Map1' }, { inner: 'Map2' }]}";
TransactionalContext tc = createTransactionContext(graph, tx, query);
result = executionEngine.executeQuery(query, NO_PARAMS, tc);
tx.success();
}
Map firstRowValue = (Map) result.next().values().iterator().next();
assertThat(firstRowValue.get("key"), is("Value"));
List theList = (List) firstRowValue.get("collectionKey");
assertThat(((Map) theList.get(0)).get("inner"), is("Map1"));
assertThat(((Map) theList.get(1)).get("inner"), is("Map2"));
}
use of org.neo4j.kernel.monitoring.Monitors in project neo4j by neo4j.
the class PhysicalLogicalTransactionStoreTest method shouldOpenCleanStore.
@Test
public void shouldOpenCleanStore() throws Exception {
// GIVEN
TransactionIdStore transactionIdStore = new DeadSimpleTransactionIdStore();
TransactionMetadataCache positionCache = new TransactionMetadataCache(1000);
LogHeaderCache logHeaderCache = new LogHeaderCache(10);
LifeSupport life = new LifeSupport();
PhysicalLogFiles logFiles = new PhysicalLogFiles(testDir, DEFAULT_NAME, fileSystemRule.get());
Monitor monitor = new Monitors().newMonitor(PhysicalLogFile.Monitor.class);
LogFile logFile = life.add(new PhysicalLogFile(fileSystemRule.get(), logFiles, 1000, transactionIdStore::getLastCommittedTransactionId, mock(LogVersionRepository.class), monitor, logHeaderCache));
life.add(new BatchingTransactionAppender(logFile, NO_ROTATION, positionCache, transactionIdStore, BYPASS, DATABASE_HEALTH));
try {
// WHEN
life.start();
} finally {
life.shutdown();
}
}
use of org.neo4j.kernel.monitoring.Monitors in project neo4j by neo4j.
the class TxPullRequestHandlerTest method shouldRespondWithCompleteStreamOfTransactions.
@Test
public void shouldRespondWithCompleteStreamOfTransactions() throws Exception {
// given
StoreId storeId = new StoreId(1, 2, 3, 4);
TransactionIdStore transactionIdStore = mock(TransactionIdStore.class);
when(transactionIdStore.getLastCommittedTransactionId()).thenReturn(15L);
LogicalTransactionStore logicalTransactionStore = mock(LogicalTransactionStore.class);
when(logicalTransactionStore.getTransactions(14L)).thenReturn(txCursor(cursor(tx(14), tx(15))));
TxPullRequestHandler txPullRequestHandler = new TxPullRequestHandler(new CatchupServerProtocol(), () -> storeId, () -> true, () -> transactionIdStore, () -> logicalTransactionStore, BATCH_SIZE, new Monitors(), NullLogProvider.getInstance());
// when
txPullRequestHandler.channelRead0(context, new TxPullRequest(13, storeId));
// then
verify(context, times(2)).write(ResponseMessageType.TX);
verify(context).write(new TxPullResponse(storeId, tx(14)));
verify(context).write(new TxPullResponse(storeId, tx(15)));
verify(context).write(ResponseMessageType.TX_STREAM_FINISHED);
verify(context).write(new TxStreamFinishedResponse(SUCCESS_END_OF_STREAM, 15L));
}
use of org.neo4j.kernel.monitoring.Monitors in project neo4j by neo4j.
the class TxPullRequestHandlerTest method shouldRespondWithEndOfStreamIfThereAreNoTransactions.
@Test
public void shouldRespondWithEndOfStreamIfThereAreNoTransactions() throws Exception {
// given
StoreId storeId = new StoreId(1, 2, 3, 4);
TransactionIdStore transactionIdStore = mock(TransactionIdStore.class);
when(transactionIdStore.getLastCommittedTransactionId()).thenReturn(14L);
LogicalTransactionStore logicalTransactionStore = mock(LogicalTransactionStore.class);
TxPullRequestHandler txPullRequestHandler = new TxPullRequestHandler(new CatchupServerProtocol(), () -> storeId, () -> true, () -> transactionIdStore, () -> logicalTransactionStore, BATCH_SIZE, new Monitors(), NullLogProvider.getInstance());
// when
txPullRequestHandler.channelRead0(context, new TxPullRequest(14, storeId));
// then
verify(context).write(ResponseMessageType.TX_STREAM_FINISHED);
verify(context).write(new TxStreamFinishedResponse(SUCCESS_END_OF_STREAM, 14L));
}
use of org.neo4j.kernel.monitoring.Monitors in project neo4j by neo4j.
the class TxPullRequestHandlerTest method shouldNotStreamTxEntriesIfStoreIdMismatches.
@Test
public void shouldNotStreamTxEntriesIfStoreIdMismatches() throws Exception {
// given
StoreId serverStoreId = new StoreId(1, 2, 3, 4);
StoreId clientStoreId = new StoreId(5, 6, 7, 8);
TransactionIdStore transactionIdStore = mock(TransactionIdStore.class);
when(transactionIdStore.getLastCommittedTransactionId()).thenReturn(15L);
LogicalTransactionStore logicalTransactionStore = mock(LogicalTransactionStore.class);
TxPullRequestHandler txPullRequestHandler = new TxPullRequestHandler(new CatchupServerProtocol(), () -> serverStoreId, () -> true, () -> transactionIdStore, () -> logicalTransactionStore, BATCH_SIZE, new Monitors(), logProvider);
// when
txPullRequestHandler.channelRead0(context, new TxPullRequest(1, clientStoreId));
// then
verify(context, never()).write(ResponseMessageType.TX);
verify(context).write(ResponseMessageType.TX_STREAM_FINISHED);
verify(context).write(new TxStreamFinishedResponse(E_STORE_ID_MISMATCH, 15L));
logProvider.assertAtLeastOnce(inLog(TxPullRequestHandler.class).info("Failed to serve TxPullRequest for tx %d and storeId %s because that storeId is different " + "from this machine with %s", 2L, clientStoreId, serverStoreId));
}
Aggregations