Still have a few kinds to work through but our basic Blazegraph / TP3 integration is more or less working at this point.
Everything went pretty smoothly - my only major frustration with the API is the liberal use of Iterators, which are not AutoCloseable, and the built-in assumption widespread throughout the Tinkerpop codebase that iterations provided by the Graph implementation do not have any resource cleanup requirements. For example - Graph.edges() and Graph.vertices(). I am returning iterators backed by a database connection, which very much needs to be released when the iteration is done. I've done the best I can to protect the caller, by strengthening the return type to CloseableIterator (extends Iterator and AutoCloseable), and I've even gone so far as to auto-close the iterator inside next() if there is no hasNext(). But this does not fully protect the caller against resource leaks if they are writing to the basic Graph API, (e.g. they do not fully drain the iterator). Humbly asking you to please take this into account in future version of the API. Thanks, Mike
