java: package org.apache.tinkerpop.shaded.jackson.core does not exist

While trying to mvn clean install with jdk11, I ran into the above error using the master branch. Any idea?
S
spmallette57d ago
what happens if you do mvn clean install -pl gremlin-shaded first and then try to build the whole thing? you shouldn't have to do this of course but i'm not sure what might be wrong.
C
cpchung57d ago
actually mvn clean intall works. But importing the project into intellij and then running any test fails at
java: package org.apache.tinkerpop.shaded.jackson.core does not exist
java: package org.apache.tinkerpop.shaded.jackson.core does not exist
C
cpchung56d ago
after following the step above to configure intellj, I ran into the following when running a Gherkin test:
Step failed
com.google.inject.ConfigurationException: Guice configuration errors:

1) No implementation for org.apache.tinkerpop.gremlin.features.World was bound.
while locating org.apache.tinkerpop.gremlin.features.World
for the 1st parameter of org.apache.tinkerpop.gremlin.features.StepDefinition.<init>(StepDefinition.java:248)
while locating org.apache.tinkerpop.gremlin.features.StepDefinition
Step failed
com.google.inject.ConfigurationException: Guice configuration errors:

1) No implementation for org.apache.tinkerpop.gremlin.features.World was bound.
while locating org.apache.tinkerpop.gremlin.features.World
for the 1st parameter of org.apache.tinkerpop.gremlin.features.StepDefinition.<init>(StepDefinition.java:248)
while locating org.apache.tinkerpop.gremlin.features.StepDefinition
Any idea?
S
spmallette56d ago
like all gremlin test suite tests they cant be run directly because they need a graph implementation to run. in the TibkerPop code base you can use TinkerGraph to be that implementation. run TinkerGraphFeatureTest in tinkergraph-gremlin to run those gherkin tests with TibkerGraph
C
cpchung55d ago
If I have an implementation in Rust, do you think there is a way I can inject the dependency into the current Gherkin test suite for Gremlin? I am thinking about whether I can reuse the parser and query plan optimizer of TinkerPop (if there is any) for the execution engine I am working on TinkerGraph sounds like an execution engine for Gremlin? Is there a way to use it in a standalone way?
S
spmallette55d ago
im not sure what you mean. what is the nature of your rust implementation?
C
cpchung55d ago
It started as a general purpose matching engine like what .match() can do in Gremlin Since it has the Graph API to traverse the graph and a postprocessing part to process tables, I expects it can cover most of the Gremlin features so I am thinking about whether people can reuse the parser and query optimizer from Gremlin project so I can use them to build a Gremlin frontend
S
spmallette55d ago
if i understand correctly you have written a Gremlin execution engine in Rust. I presume it uses the antlr grammar in gremlin-language in some way? in any event, i'm not sure how you would use much of what we have in TinkerPop given that all our code is JVM oriented for the Gremlin query processing, graph API interfaces and the default reference implementation of TinkerGraph. The antlr grammar is something i could see you using and I could see you using the gherkin feature tests, which i guess is what you are trying to do. you'd need to rig up y our own classes for executing those gherkin tests over your Rust implementation and do so natively in Rust. It's not too hard to do I don't think - note we've done it for all our non-JVM implementations so doing it for Rust shouldn't be too hard but it also isn't a small bit of work you could do in a few hours. i could probably say more if i'm on the right track with what you are hoping to accomplish but i'll let you confirm before i type too much more in case i'm way off
C
cpchung55d ago
If the physical plan can be serialized and sent over, the front end parser and the query plan optimizer can be in JVM. We just need to send the serialized physical plan, say a Json file to represent the physical plan , over for the execution engine I think we are on the same page If what I think is doable, I dont need to start from the antlr grammar If the dependency injection part can be handled properly so that the non-JVM execution engine can be injected into the existing test suite, I can imagine we can even reuse the gherkins test suite in JVM
S
spmallette54d ago
i think you're saying that you would want to send a Gremlin string to Gremlin Server and get back a serialized representation of it. i suppose that is possible by sending a script and returning Bytecode as GraphSON. that is an extremely narrow use case as i dont think there would be any other value there aside from this case, i.e. some sort of language interop with a different processing engine off the JVM. Of course, that only gets you Gremlin parsed into a JSON form as it was written. At that point, no optimization strategies are applied and in any event those strategies would include ones specific to particular graph systems which likely would not apply to whatever graph system you were executing on (e.g. the inclusion of a TinkerGraphStep, replacing GraphStep won't have any meaning in your Rust environment).
i think that you would need some additional changes for any of this to work as you're thinking and it does conflict a bit with ongoing thinking around the support of Bytecode as a mechanism for sending traversals to the server (it's primary purpose). Anyway, here's what Bytecode looks like as GraphSON: https://tinkerpop.apache.org/docs/current/dev/io/#_bytecode_2
C
cpchung54d ago
sending a script and returning Bytecode as GraphSON
The GraphSON seems to be a physical plan an execution engine can interpret? From your link, I do not seem to see how such format can represent the physical plan of a query like
g.V().match(__.as("a").out().as("b")).select("b").by(T.id)
g.V().match(__.as("a").out().as("b")).select("b").by(T.id)
I do think the physical plan can be represented in JSON though.
value
From the implementer perspective, the value is that TinkerPop can stay as the de-facto standard parser and query plan optimizer for Gremlin and provide the Gherkin test suite for correctness verification. It does not seem meaningful to reinvent these nice things. There are some implementors out there who want to support Gremlin but cannot use the reference implementation TinkerGraph for various reasons, say, the need of going distributed, supporting mix of OLAP and OLTP workload (HTAP), new hardware optimization like better networking, storage and compute hardwares. These are not things we can add to a JVM implementation
S
spmallette54d ago
when you run some Gremlin through the the ANTLR parser it simply constructs a Traversal object by mapping to the methods in of the same name in GraphTraversalSouce and GraphTraversal. In doing that the Traversal maintains a Bytecode representation of those steps that are called. When the Traversal is executed, various TraversalStrategy objects are applied to the Traversal to rewrite in in a more optimal way to improve performance, like g.V().out().count() would become g.V().outE().count(). It is through TraversalStrategy implementations that indices and other graph implementation specific optimizations can be included as part of the execution. There's not really a physical plan to see beyond what is provided by the construction of the traversal after parsing. I shared Bytecode because that's likely the closest you could get as a portable version of a Traversal as a way to reuse JVM parsing.
Want results from more Discord servers?
Add your server
More Posts
Performance issue in large graphsWhen performing changes in large graph (ca. 100K nodes, 500K edges) which is stored in one kryo fileConcurrent queries to authentication required sever resulted in 401 errorHey guys, playing around with gremlin & encountered this very odd error where concurrent queries wilDiscrepancy between console server id conventions and NeptuneSo I'm working with my test server and on Neptune--and I'm noticing a difference in the type of the how to connect the amothic/neptune container to the volume?I need to know which directory needs to attach to containeer. so that the data is stored safely. eveDocker yaml authentication settings (gremlinserver.authentication) questionDoes anyone have any experience setting up authentication on Docker by using the supplied .yaml fileGremlin Injection Attacks?Is anyone talking about or looking into attacks and mitigations for Gremlin Injection Attacks? That Returned vertex properties (JS client)Hi, I've got a question regarding the returned vertex value when using the JS client. How come non-aAnyone using Tinkerpop docker as a local Cosmos replacementRunning into some random issues. Looking for tips and tricks.Configuring Websockets connection to pass through a proxy serverHey, I'm working on making G.V() fully proxy aware, but I can't seem to get websockets connection tpython goblin vs spring-data-goblin for interactions with gremlin serverI want an OGM to interact with my gremlin server. What would be a good choice?Is there any open source version of data visualizer for aws neptune?Is there any open source version of data visualizer for aws neptune. I'll need it since it essentialDynamic select within query not working.Any insights or help would be greatly appreciated. I have to pass a list of lists in the format beAdding multiple properties to a vertex using gremlin-goHello Community, I have a question regarding how multiple properties can be added to a vertex using Is it possible to walk 2 different graphs using custom TraversalStrategy in Gremlin?I have 2 different graphs in 2 different Neptune cluster. Both of them can have few reference verticSideEffect a variable, Use it later after BarrierStep?I seek a query that builds a list and then needs to both sum the list's mapped values and divide theMemory issue on repeatI am traversing all nodes occuring in the same cluster given one of the nodes in that cluster. SurpWhich database should i use for my DJ set planning software?Hi, i want to develop a software that lets DJs plan a set (i.e. playlist) and i'm wondering if graphHow will i add unique values to the vertices or edge properties in NeptuneI can't get a doc regarding adding unique data through gremlin. Is there any way to do it, other thaNot getting result in hasId() but id().is() worksI don't get any response using g.V().hasId(48). But when i use g.V().id().is(48). it shows output. Sdotnet `Enumeration has not started. Call MoveNext` if I try to enumerate over a resultI recently try to use gremlin to created a graph and query this graph. Currently I get it working to