@Override public Iterable<Node> getNodes() { return gdb.getAllNodes(); }
private int countNodesIn( GraphDatabaseService db ) { int count = 0; for ( Node ignore : db.getAllNodes() ) { count++; } return count; } }
@SuppressWarnings( "WhileLoopReplaceableByForEach" ) public static long countNodes( GraphDatabaseService graphdb ) { try ( Transaction ignore = graphdb.beginTx() ) { long count = 0; Iterator<Node> allNodes = graphdb.getAllNodes().iterator(); while ( allNodes.hasNext() ) { allNodes.next(); count++; } return count; } }
private Map<String,Node> allNodesById( GraphDatabaseService db ) { try ( Transaction tx = db.beginTx() ) { Map<String,Node> nodes = new HashMap<>(); for ( Node node : db.getAllNodes() ) { nodes.put( idOf( node ), node ); } tx.success(); return nodes; } }
private long nodeCount() { Transaction transaction = db.beginTx(); long count = Iterables.count( db.getAllNodes() ); transaction.close(); return count; }
private int countNodes() { try ( Transaction tx = graphdb().beginTx() ) { int count = 0; for ( Node node : graphdb().getAllNodes() ) { count++; } return count; } } }
public static void destroy( Map<String, Node> nodes ) { if ( nodes.isEmpty() ) { return; } GraphDatabaseService db = nodes.values().iterator().next().getGraphDatabase(); try ( Transaction tx = db.beginTx() ) { for ( Node node : db.getAllNodes() ) { for ( Relationship rel : node.getRelationships() ) { rel.delete(); } node.delete(); } tx.success(); } }
private long countNodes() { try ( Transaction transaction = graphdb().beginTx() ) { return Iterables.count( graphdb().getAllNodes() ); } } }
private long countNodes( String... labels ) { Set<Label> givenLabels = new HashSet<>( labels.length ); for ( String label : labels ) { givenLabels.add( Label.label( label ) ); } try ( Transaction transaction = graphdb().beginTx() ) { long count = 0; for ( Node node : graphdb().getAllNodes() ) { Set<Label> nodeLabels = Iterables.asSet( node.getLabels() ); if ( nodeLabels.containsAll( givenLabels ) ) { count++; } } transaction.failure(); return count; } }
protected Node getNodeWithName( String name ) { ResourceIterable<Node> allNodes = getGraphDb().getAllNodes(); try ( ResourceIterator<Node> nodeIterator = allNodes.iterator() ) { while ( nodeIterator.hasNext() ) { Node node = nodeIterator.next(); { String nodeName = (String) node.getProperty( "name", null ); if ( nodeName != null && nodeName.equals( name ) ) { return node; } } } } return null; }
private void cleanDatabaseContent( GraphDatabaseService db ) { try ( Transaction tx = db.beginTx() ) { db.getAllRelationships().forEach( Relationship::delete ); db.getAllNodes().forEach( Node::delete ); tx.success(); } }
public static void cleanupAllRelationshipsAndNodes( GraphDatabaseService db ) { try ( Transaction tx = db.beginTx() ) { for ( Relationship relationship : db.getAllRelationships() ) { relationship.delete(); } for ( Node node : db.getAllNodes() ) { node.delete(); } tx.success(); } } }
@Test public void shouldSkipEmptyFiles() throws Exception { // GIVEN File data = data( "" ); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath() ); // THEN GraphDatabaseService graphDatabaseService = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = graphDatabaseService.beginTx() ) { ResourceIterator<Node> allNodes = graphDatabaseService.getAllNodes().iterator(); assertFalse( "Expected database to be empty", allNodes.hasNext() ); tx.success(); } }
private void verifyData( GraphDatabaseService graphdb ) { try ( Transaction tx = graphdb.beginTx() ) { int nodecount = 0; for ( Node node : graphdb.getAllNodes() ) { int propcount = readProperties( node ); int relcount = 0; for ( Relationship rel : node.getRelationships() ) { assertEquals( "all relationships should have 3 properties.", 3, readProperties( rel ) ); relcount++; } assertEquals( "all created nodes should have 3 properties.", 3, propcount ); assertEquals( "all created nodes should have 2 relationships.", 2, relcount ); nodecount++; } assertEquals( "The database should have 2 nodes.", 2, nodecount ); } }
@Test public void shouldAllowMultilineFieldsWhenEnabled() throws Exception { // GIVEN File data = data( ":ID,name", "1,\"This is a line with\nnewlines in\"" ); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath(), "--multiline-fields", "true" ); // THEN GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = db.beginTx() ) { ResourceIterator<Node> allNodes = db.getAllNodes().iterator(); Node node = Iterators.single( allNodes ); allNodes.close(); assertEquals( "This is a line with\nnewlines in", node.getProperty( "name" ) ); tx.success(); } }
@Test public void shouldNotTrimStringsByDefault() throws Exception { // GIVEN String name = " This is a line with leading and trailing whitespaces "; File data = data( ":ID,name", "1,\"" + name + "\""); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath() ); // THEN GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = db.beginTx() ) { ResourceIterator<Node> allNodes = db.getAllNodes().iterator(); Node node = Iterators.single( allNodes ); allNodes.close(); assertEquals( name, node.getProperty( "name" ) ); tx.success(); } }
@Test public void shouldIgnoreEmptyQuotedStringsIfConfiguredTo() throws Exception { // GIVEN File data = data( ":ID,one,two,three", "1,\"\",,value" ); // WHEN importTool( "--into", dbRule.getDatabaseDirAbsolutePath(), "--nodes", data.getAbsolutePath(), "--ignore-empty-strings", "true" ); // THEN GraphDatabaseService db = dbRule.getGraphDatabaseAPI(); try ( Transaction tx = db.beginTx() ) { Node node = Iterables.single( db.getAllNodes() ); assertFalse( node.hasProperty( "one" ) ); assertFalse( node.hasProperty( "two" ) ); assertEquals( "value", node.getProperty( "three" ) ); tx.success(); } }
@Test public void idGeneratorsRebuildAfterRecovery() throws IOException { GraphDatabaseService database = startDatabase( directory.databaseDir() ); int numberOfNodes = 10; try ( Transaction transaction = database.beginTx() ) { for ( int nodeIndex = 0; nodeIndex < numberOfNodes; nodeIndex++ ) { database.createNode(); } transaction.success(); } // copying only transaction log simulate non clean shutdown db that should be able to recover just from logs File restoreDbStoreDir = copyTransactionLogs(); GraphDatabaseService recoveredDatabase = startDatabase( restoreDbStoreDir ); try ( Transaction tx = recoveredDatabase.beginTx() ) { assertEquals( numberOfNodes, count( recoveredDatabase.getAllNodes() ) ); // Make sure id generator has been rebuilt so this doesn't throw null pointer exception recoveredDatabase.createNode(); } database.shutdown(); recoveredDatabase.shutdown(); }
@Test public void reportProgressOnRecovery() throws IOException { GraphDatabaseService database = startDatabase( directory.databaseDir() ); for ( int i = 0; i < 10; i++ ) { try ( Transaction transaction = database.beginTx() ) { database.createNode(); transaction.success(); } } File restoreDbStoreDir = copyTransactionLogs(); GraphDatabaseService recoveredDatabase = startDatabase( restoreDbStoreDir ); try ( Transaction transaction = recoveredDatabase.beginTx() ) { assertEquals( 10, count( recoveredDatabase.getAllNodes() ) ); } logProvider.assertContainsMessageContaining( "10% completed" ); logProvider.assertContainsMessageContaining( "100% completed" ); database.shutdown(); recoveredDatabase.shutdown(); }
@Test public void shouldBeEmptyWhenFirstStarted() { // When File storeDir = testDir.absolutePath(); GraphDatabaseService db = new TestGraphDatabaseFactory().newEmbeddedDatabase( storeDir ); // Then try ( Transaction ignore = db.beginTx() ) { assertEquals( 0, count( db.getAllNodes() ) ); assertEquals( 0, count( db.getAllRelationships() ) ); assertEquals( 0, count( db.getAllRelationshipTypes() ) ); assertEquals( 0, count( db.getAllLabels() ) ); assertEquals( 0, count( db.getAllPropertyKeys() ) ); } db.shutdown(); } }