package org.neo4j.shell.tools.imp; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.factory.GraphDatabaseFactory; import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.io.fs.*; import org.neo4j.io.fs.FileUtils; import org.neo4j.shell.impl.SystemOutput; import org.neo4j.shell.tools.imp.format.graphml.XmlGraphMLReader; import org.neo4j.shell.tools.imp.util.*; import java.io.File; /** * Using Enron Data set from Chris Diehl * http://www.infochimps.com/datasets/enron-email-data-with-manager-subordinate-relationship-metadata */ @Ignore("slow") public class GraphMLReaderPerformanceTest { public static final int MEGABYTE = 1024 * 1024; private GraphDatabaseService db; private XmlGraphMLReader graphMlReader; private CountingReader reader; private File directory = new File("target/enron.db"); private File graphMlFile = new File("test-data/Enron_Dataset_v0.12.graphml"); @Before public void setUp() throws Exception { FileUtils.deleteRecursively(directory); db = new GraphDatabaseFactory().newEmbeddedDatabaseBuilder(new File(directory.getAbsolutePath())) .setConfig(GraphDatabaseSettings.pagecache_memory,"350M") .setConfig(GraphDatabaseSettings.keep_logical_logs, "false") .newGraphDatabase(); reader = new CountingReader(graphMlFile); graphMlReader = new XmlGraphMLReader(db).reporter(new ProgressReporter(reader,new SystemOutput())); } @Test public void testReadEnronData() throws Exception { NodeCache cache = MapNodeCache.<String, Long>usingMapDb(); this.graphMlReader.parseXML(reader, cache); } @After public void tearDown() throws Exception { if (db!=null) db.shutdown(); if (reader!=null) reader.close(); } }