Apache TinkerPop :: OrientDB Gremlin

TinkerPop3 Graph Structure Implementation for OrientDB

License

License

GroupId

GroupId

com.michaelpollmeier
ArtifactId

ArtifactId

orientdb-gremlin
Last Version

Last Version

3.2.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

Apache TinkerPop :: OrientDB Gremlin
TinkerPop3 Graph Structure Implementation for OrientDB
Project URL

Project URL

https://github.com/mpollmeier/orientdb-gremlin/
Source Code Management

Source Code Management

https://github.com/mpollmeier/orientdb-gremlin/

Download orientdb-gremlin

How to add to project

<!-- https://jarcasting.com/artifacts/com.michaelpollmeier/orientdb-gremlin/ -->
<dependency>
    <groupId>com.michaelpollmeier</groupId>
    <artifactId>orientdb-gremlin</artifactId>
    <version>3.2.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.michaelpollmeier/orientdb-gremlin/
implementation 'com.michaelpollmeier:orientdb-gremlin:3.2.3.0'
// https://jarcasting.com/artifacts/com.michaelpollmeier/orientdb-gremlin/
implementation ("com.michaelpollmeier:orientdb-gremlin:3.2.3.0")
'com.michaelpollmeier:orientdb-gremlin:jar:3.2.3.0'
<dependency org="com.michaelpollmeier" name="orientdb-gremlin" rev="3.2.3.0">
  <artifact name="orientdb-gremlin" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.michaelpollmeier', module='orientdb-gremlin', version='3.2.3.0')
)
libraryDependencies += "com.michaelpollmeier" % "orientdb-gremlin" % "3.2.3.0"
[com.michaelpollmeier/orientdb-gremlin "3.2.3.0"]

Dependencies

compile (4)

Group / Artifact Type Version
org.apache.tinkerpop : gremlin-core jar 3.2.3
org.apache.tinkerpop : gremlin-groovy jar 3.2.3
com.orientechnologies : orientdb-client jar 2.2.12
com.google.guava : guava jar 18.0

test (4)

Group / Artifact Type Version
org.apache.tinkerpop : gremlin-test jar 3.2.3
org.apache.tinkerpop : gremlin-groovy-test jar 3.2.3
junit : junit jar 4.12
org.mockito : mockito-all jar 1.10.19

Project Modules

There are no modules declared in this project.

orientdb-gremlin

Build Status Coverage Status Maven Central

Apache TinkerPop 3 Graph Structure Implementation for OrientDB. This started off as just a proof of concept, but thanks to a lot of help it's now in a really good shape and it has been officially adopted by OrientDB Team to be part of OrientDB v3.x.

The main area that need some more work is index lookups - currently it does find the right index for a simple case, e.g. g.V.hasLabel("myLabel").has("someKey", "someValue"). However if there are multiple indexes on the same property, or if there the traversal should better use a composite index, that's not handled well yet. If you feel inclined you can add these cases to the OrientGraphIndexTest.java. The function that looks up indexes is OrientGraphStep.findIndex.

Tests

  • you can run the standard tinkerpop test suite with mvn install -P release
  • there are some additional tests that you can run independently with mvn test
  • additionally there is a separate suite of tests in the tests-scala directory which you can run using sbt test
  • to automatically format the code (travis CI enforces a format check), just run mvn clean install

Usage

Have a look at the tests-scala which demonstrates the usage. There's also an orientdb example project in gremlin-scala-examples.

Labels and classes

Vertices and Edges are stored as classes based on their label. In order to allow vertices and edges to use the same label, the implementation prepends V_ or E_ in the class name:

  • vertex with label user -> classname V_user
  • edge with label user -> classname E_user

Migrations

You might want to use orientdb-migrations to create a schema with indexes etc.

Release

  • upgrade version: remove SNAPSHOT (driver/pom.xml and tests-scala/build.sbt)
  • commit on branch, push, create PR on github
  • await green light from travis
  • merge PR on github
  • then execute
* mvn pull
* mvn clean deploy -Prelease
* git tag VERSION
  • bump versions to next SNAPSHOT (pom.xml, build.sbt)
  • then
* git push
* git push --tags

Versions

Version
3.2.3.0
3.2.1.2
3.2.1.1
3.2.1.0
3.2.0-incubating.0
3.1.1-incubating.1
3.1.1-incubating.0
3.1.0-incubating.1
3.1.0-incubating.0
3.0.2.incubating.0
3.0.0.M9
3.0.0.M8
3.0.0.M7
3.0.0.M6
3.0.0.M5
3.0.0.M4
3.0.0.M3
3.0.0.M2
3.0.0.M1a
3.0.0.M1