use of org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService in project neo4j-documentation by neo4j.
the class DocsExecutionEngineTest method createStuff.
private static DocsSetup createStuff() {
EphemeralFileSystemAbstraction fs = new EphemeralFileSystemAbstraction();
GraphDatabaseService graph = new TestEnterpriseGraphDatabaseFactory().setFileSystem(fs).newImpermanentDatabase();
GraphDatabaseCypherService database = new GraphDatabaseCypherService(graph);
GraphDatabaseCypherService queryService = new GraphDatabaseCypherService(graph);
GraphDatabaseAPI graphAPI = (GraphDatabaseAPI) graph;
DependencyResolver resolver = graphAPI.getDependencyResolver();
LogService logService = resolver.resolveDependency(LogService.class);
Monitors monitors = resolver.resolveDependency(Monitors.class);
LogProvider logProvider = logService.getInternalLogProvider();
CommunityCompatibilityFactory inner = new CommunityCompatibilityFactory(queryService, monitors, logProvider);
EnterpriseCompatibilityFactory compatibilityFactory = new EnterpriseCompatibilityFactory(inner, queryService, monitors, logProvider);
NullLogProvider logProvider1 = NullLogProvider.getInstance();
DocsExecutionEngine engine = new DocsExecutionEngine(database, logProvider1, compatibilityFactory);
PropertyContainerLocker locker = new PropertyContainerLocker();
TransactionalContextFactory contextFactory = Neo4jTransactionalContextFactory.create(database, locker);
return new DocsSetup() {
@Override
public GraphDatabaseCypherService database() {
return database;
}
@Override
public DocsExecutionEngine engine() {
return engine;
}
@Override
public TransactionalContextFactory contextFactory() {
return contextFactory;
}
};
}
use of org.neo4j.cypher.internal.javacompat.GraphDatabaseCypherService in project neo4j by neo4j.
the class ManyMergesStressTest method shouldWorkFine.
@Test
void shouldWorkFine() {
GraphDatabaseQueryService graph = new GraphDatabaseCypherService(db);
Label person = Label.label("Person");
try (Transaction tx = db.beginTx()) {
// THIS USED TO CAUSE OUT OF FILE HANDLES
// (maybe look at: http://stackoverflow.com/questions/6210348/too-many-open-files-error-on-lucene)
tx.schema().indexFor(person).on("id").create();
// THIS SHOULD ALSO WORK
tx.schema().constraintFor(person).assertPropertyIsUnique("id").create();
tx.commit();
}
try (Transaction tx = db.beginTx()) {
tx.schema().indexFor(person).on("name").create();
tx.commit();
}
try (Transaction tx = db.beginTx()) {
tx.schema().awaitIndexesOnline(2, TimeUnit.MINUTES);
tx.commit();
}
for (int count = 0; count < TRIES; count++) {
Pair<String, String> stringPair = getRandomName();
String ident = stringPair.first();
String name = stringPair.other();
String id = Long.toString(Math.abs(random.nextLong()));
String query = format("MERGE (%s:Person {id: %s}) ON CREATE SET %s.name = \"%s\";", ident, id, ident, name);
try (InternalTransaction tx = graph.beginTransaction(KernelTransaction.Type.IMPLICIT, LoginContext.AUTH_DISABLED)) {
Result result = tx.execute(query);
result.close();
tx.commit();
}
}
}
Aggregations