public Context() { graphService.putGraph(null, makeSimpleGraph()); // default graph is tiny test graph graphService.putGraph("portland", graph); ShapefileStreetGraphBuilderImpl builder = new ShapefileStreetGraphBuilderImpl(); FeatureSourceFactory factory = new ShapefileFeatureSourceFactoryImpl( new File("src/test/resources/portland/Streets_pdx.shp")); builder.setFeatureSourceFactory(factory); ShapefileStreetSchema schema = new ShapefileStreetSchema(); schema.setIdAttribute("LOCALID"); schema.setNameAttribute("FULL_NAME"); CaseBasedTraversalPermissionConverter perms = new CaseBasedTraversalPermissionConverter( "DIRECTION", StreetTraversalPermission.PEDESTRIAN_AND_BICYCLE); perms.addPermission("2", StreetTraversalPermission.ALL, StreetTraversalPermission.PEDESTRIAN); perms.addPermission("3", StreetTraversalPermission.PEDESTRIAN, StreetTraversalPermission.ALL); perms.addPermission("1", StreetTraversalPermission.ALL, StreetTraversalPermission.ALL); schema.setPermissionConverter(perms); // as a test, use prefixes ("NE", SE", etc) as an alert schema.setNoteConverter(new AttributeFeatureConverter<String>("PREFIX")); builder.setSchema(schema); builder.buildGraph(graph, new HashMap<Class<?>, Object>()); initTransit(); initBikeRental(); graph.streetIndex = new StreetVertexIndexServiceImpl(graph); try { graph.save(File.createTempFile("graph", ".obj")); } catch (IOException e) { throw new RuntimeException(e); } pathService.sptService = new GenericAStar(); pathService.graphService = graphService; planGenerator.pathService = pathService; }