I use TinkerGraph
for integration tests (extended unit tests) in Java. In this implementation Edge ids
are generated as a sequence of Integers. I want to change that so they are generated as random UUIDs. The reason for this is to get my test setup behave closer to my production graph database. Can I do this in Tinkerpop3
and if so how?
I have found that in Tinkerpop/blueprints (https://github.com/tinkerpop/blueprints/wiki/id-implementation) there existed an IdGraph.IdFactory
which seemingly would provide what I need. However as I understand it that is not available for Tinkerpop3.
This looks to be possible but will require some work.
Vertex
andEdge Ids
inTinkerGraph
are determined usingIDManagers
which is done here.You can see that this is decided via a config value which ends up using reflection to construct the
IDManager
.So you would have to do the following:
Create your own
IDManager
by implementing the interface you can use the default manager as a guideline. For example:You would then have to create a config with your new manager specified and create the tinkergraph using that manager:
I would love to know if there is an easier way but I think this will work.
Side Note:
It might be easier to check if your production graph DB provides an in-memory layer. I know a few graph dbs do and using that rather than
TinkerGraph
will likely be better.TinkerGraph
is really only meant for plating around I believe.