Unable to install gremlin-neo4j through gremlin shell

859 views Asked by At

So, I'm going through the tutorial on getting started with the TinkerPop 3.0 stuff. I've gotten the basic API working with the TinkerGraph stuff, and I'm moving on to try and interface with my local Neo4j instance (Community 2.2.2). I'm working through the tutorial here:

http://tinkerpop.incubator.apache.org/docs/3.0.0.M9-incubating/

but, the neo4j-gremlin plugin does not appear to exist as documented. Neither the gradle line:

compile group : 'org.apache.tinkerpop', name: 'neo4j-gremlin', version: '3.0.0.M9-incubating'

, nor the following attempt through the gremlin groovy shell:

gremlin> :plugin list
==>tinkerpop.server[active]
==>tinkerpop.gephi
==>tinkerpop.utilities[active]
==>tinkerpop.sugar
==>tinkerpop.tinkergraph[active]
gremlin> :install org.apache.tinkerpop neo4j-gremlin 3.0.0.M9-incubating
Error grabbing Grapes -- [unresolved dependency: org.apache.tinkerpop#neo4j-gremlin;3.0.0.M9-incubating: not found]
Display stack trace? [yN] y
java.lang.RuntimeException: Error grabbing Grapes -- [unresolved     dependency: org.apache.tinkerpop#neo4j-gremlin;3.0.0.M9-incubating: not found] 

seem to work, because neither one can resolve the dependency. The problem persists if the M9 is replaced back to at least M7, or if I try and grab from 3.0.0-SNAPSHOT. Has TinkerPop just dropped support for Neo4j and has not updated their tutorials?

1

There are 1 answers

1
stephen mallette On BEST ANSWER

I guess there's some discrepancy between documentation and where Neo4j stands in terms of official release. Neo4j was removed from the repository around M7 at the time TinkerPop started making releases under the Apache Software Foundation (given license conflicts). It was added back to the repository after the M9 release as license issues were resolved. As it stands now, there is approval from Apache on the packaging of Neo4j thus allowing it to be officially included as part of the next release which should be GA.

Note that Neo4j has not changed its licensing structure for this to happen. It remains GPL-based. The GPL'd dependencies however are NOT packaged with TinkerPop binary distributions and the source distributions are free of GPL dependencies as well. It's an interesting model actually and took a fair bit of collaboration with all parties to accomplish.

It is actually pretty easy to work around this issue, but it involves you building TinkerPop from source. The following commands should do it:

git clone https://github.com/apache/incubator-tinkerpop.git
cd incubator-tinkerpop
git checkout tags/3.0.0-incubating-rc1
mvn clean install -DskipTests -DincludeNeo4j

Note that 3.0.0-incubating-rc1 is the current release candidate for GA that vendors are testing their implementations against right now. I assume that you've configured your grapeConfig.xml file as described in the TinkerPop 3 documentation, which would mean that it is configured to look at your local Maven .m2 directory. If so, that should get your :install command to work as well as other dependency management tools.