Questions about implementing and deploying custom traversal extensions in JanusGraph

Hello, I’m currently working on a project that has been using Neo4j, and we’re exploring migrating to JanusGraph. The main challenge we’re facing relates to how we currently use Neo4j: we’ve developed several stored procedures, including a custom traversal procedure (a recursive function that decides which path to traverse based on edge properties). From what I’ve gathered so far, it seems that a similar feature could be implemented in JanusGraph by extending the DSL and deploying it as a JAR into the extensions directory. However, I’m not completely sure if this is the best approach. Our key requirements are performance-related — this traversal processes a large number of nodes and edges, and it should return complete paths. Therefore, it’s important for us to execute it server-side rather than client-side. I created a proof of concept for the extension, but I’ve encountered issues during deployment. I placed the JAR file in the /opt/janusgraph/ext directory and added it to plugins.txt. However, when running the Gremlin console, I get the following error: Exception in thread "main" java.lang.NullPointerException: Cannot invoke method activate() on null object at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:113) Could you please help clarify the following points? Is extending the DSL the recommended approach for implementing a custom traversal in JanusGraph? If so, is the deployment method I described (placing the JAR in /opt/janusgraph/ext and declaring it in plugins.txt) correct? How can I debug the above error? Could it be related to an incomplete plugin JAR? If possible, could you share an example of a working extension that I could use as a reference? Thank you in advance for your help and any insights you can provide. Best regards, Michael
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?