This release also includes changes from 3.2.8.
-
Fixed regression issue where the HTTPChannelizer doesn’t instantiate the specified AuthenticationHandler.
-
Defaulted GLV tests for gremlin-python to run for GraphSON 3.0.
-
Fixed a bug with
Tree
serialization in GraphSON 3.0. -
In gremlin-python, the GraphSON 3.0
g:Set
type is now deserialized toList
.
-
TINKERPOP-1053 installed plugins are placed in a directory relative to where gremlin.sh is started
-
TINKERPOP-1509 Failing test case for tree serialization
-
TINKERPOP-1738 Proper functioning of GraphSONReader depends on order of elements in String representation
-
TINKERPOP-1758 RemoteStrategy should be before all other DecorationStrategies.
-
TINKERPOP-1855 Update Rexster links
-
TINKERPOP-1858 HttpChannelizer regression: Does not create specified AuthenticationHandler
-
TINKERPOP-1859 Complex instance of P not serializing to bytecode properly
-
TINKERPOP-1860 valueMap(True) result in error in gremlin-python
-
TINKERPOP-1862 TinkerGraph VertexProgram message passing doesn’t work properly when using Direction.BOTH
-
TINKERPOP-1867 union() can produce extra traversers
-
TINKERPOP-1872 Apply edgeFunction in SparkMessenger
-
TINKERPOP-1873 min() and max() work only in the range of Integer values
-
TINKERPOP-1874 P does not appear to be serialized consistently in GraphSON
-
TINKERPOP-1875 Gremlin-Python only aggregates to list when using GraphSON3
-
TINKERPOP-1879 Gremlin Console does not resepect equal sign for flag argument assignments
-
TINKERPOP-1880 Gremlin.NET Strong name signature could not be verified. (HRESULT: 0x80131045)
-
TINKERPOP-1883 gremlinpython future will never return
-
TINKERPOP-1890 getAnonymousTraversalClass() is not being generated for Java DSLs
-
TINKERPOP-1891 Serialization of P.not() for gremlin-javascript
-
TINKERPOP-1892 GLV test failures for .NET
-
TINKERPOP-1894 GraphSONMessageSerializerV2d0 fails to deserialize valid P.not()
-
TINKERPOP-1896 gremlin-python lambdas error
-
TINKERPOP-1907 Fix failing GLV test for withSack() in .NET
-
TINKERPOP-1917 gx:BigDecimal serialization broken in Gremlin.Net on systems with ',' as decimal separator
-
TINKERPOP-1918 Scenarios fail because of wrong numerical types
-
TINKERPOP-1919 Gherkin runner doesn’t work with P.And() and P.Or() in Gremlin.Net
-
TINKERPOP-1920 Tests fail because P.Within() arguments are wrapped in an array in Gremlin.Net
-
TINKERPOP-1922 Gherkin features fail that contain P.not() in Gremlin.Net
-
TINKERPOP-1357 Centrality Recipes should mention pageRank and OLAP.
-
TINKERPOP-1489 Provide a Javascript Gremlin Language Variant
-
TINKERPOP-1586 SubgraphStrategy in OLAP
-
TINKERPOP-1726 Support WebSockets ping/pong keep-alive in Gremlin server
-
TINKERPOP-1842 iterate() missing in terminal steps documentation
-
TINKERPOP-1844 Python GLV test should run for GraphSON 3.0 (breaking)
-
TINKERPOP-1850 Range step has undocumented special values
-
TINKERPOP-1854 Support lambdas in Gremlin.Net
-
TINKERPOP-1857 GLV test suite consistency and completeness
-
TINKERPOP-1863 Delaying the setting of requestId till the RequestMessage instantiation time
-
TINKERPOP-1865 Run Gremlin .NET GLV tests with GraphSON 3.0
-
TINKERPOP-1866 Support g:T for .NET
-
TINKERPOP-1868 Support inject source step in Gremlin.Net
-
TINKERPOP-1870 n^2 synchronious operation in OLAP WorkerExecutor.execute() method
-
TINKERPOP-1871 Exception handling is slow in element ReferenceElement creation
-
TINKERPOP-1877 Add new graph data for specialized testing scenarios
-
TINKERPOP-1884 Bump to Netty 4.0.56.Final
-
TINKERPOP-1885 Various Gremlin.Net documentation updates
-
TINKERPOP-1901 Enable usage of enums in more steps in Gremlin.Net
-
TINKERPOP-1908 Bump to Groovy 2.4.14
-
TINKERPOP-1911 Refactor JavaTranslator to cache all reflective calls
-
TINKERPOP-1914 Support construct a GremlinServer instance from gremlin executor service
This release also includes changes from 3.2.7.
-
Added
NoneStep
andTraversal.none()
for full filtering integration withiterate()
. -
Fixed bug in serialization of
Path
for GraphSON 3.0 ingremlin-python
. -
Added support for GraphSON 3.0 in Gremlin.Net.
-
Added
math()
-step which supports scientific calculator capabilities for numbers within a traversal. -
Added missing
GraphTraversalSource.addE()
-method toGremlinDslProcessor
. -
Changed
to()
andfrom()
traversal-based steps to take a wildcard?
instead of ofE
. -
Added
addV(traversal)
andaddE(traversal)
so that created element labels can be determined dynamically. -
PageRankVertexProgram
supportsmaxIterations
but will break out early if epsilon-based convergence occurs. -
Added support for epsilon-based convergence in
PageRankVertexProgram
. -
Fixed two major bugs in how PageRank was being calculated in
PageRankVertexProgram
. -
Added
Io.requiresVersion(Object)
to allow graph providers a way to check theIo
type and version being constructed. -
Defaulted
IoCore.gryo()
andIoCore.graphson()
to both use their 3.0 formats which means thatGraph.io()
will use those by default. -
Bumped Neo4j 3.2.3
-
TINKERPOP-1773 Lop should be created as a "software" and not a "person"
-
TINKERPOP-1783 PageRank gives incorrect results for graphs with sinks (breaking)
-
TINKERPOP-1799 Failure to serialize path() in gremlin-python
-
TINKERPOP-1847 tinkergraph-gremlin dependency on gremlin-test, bad scope?
-
TINKERPOP-1632 Create a set of default functions
-
TINKERPOP-1692 Bump to Neo4j 3.2.3
-
TINKERPOP-1717 Update name and link of DynamoDB storage backend in landing page
-
TINKERPOP-1730 Gremlin .NET support for GraphSON 3.0
-
TINKERPOP-1767 Method for graph providers to check an IO version and type
-
TINKERPOP-1793 addE() should allow dynamic edge labels
-
TINKERPOP-1834 Consider iterate() as a first class step
This release also includes changes from 3.2.6.
-
Removed previously deprecated
ScriptElementFactory
. -
Added
GraphTraversalSource.addE(String)
in support ofg.addE().from().to()
. -
Added support for
to(Vertex)
andfrom(Vertex)
as a shorthand forto(V(a))
andfrom(V(b))
. -
Bumped to support Spark 2.2.0.
-
Detected if type checking was required in
GremlinGroovyScriptEngine
and disabled related infrastructure if not. -
Removed previously deprecated
GraphTraversal.selectV3d0()
step. -
Removed previously deprecated
DetachedEdge(Object,String,Map,Pair,Pair)
constructor. -
Removed previously deprecated
Bindings
constructor. It is now a private constructor. -
Removed previously deprecated
TraversalSource.withBindings()
. -
Removed previously deprecated
GraphTraversal.sack(BiFunction,String)
. -
TraversalMetrics
andMetrics
Gryo 1.0 formats changed given internal changes to their implementations. -
Made
TraversalMetrics
safe to write to from multiple threads. -
Removed previously deprecated
TraversalSideEffects
methods. -
Removed previously deprecated
finalization.LazyBarrierStrategy
(moved tooptimization.LazyBarrierStrategy
). -
Removed previously deprecated
Constants
in Hadoop. -
Removed previously deprecated
VertexComputing.generateComputer(Graph)
. -
Removed previously deprecated
ConfigurationTraversal
. -
Established the Gryo 3.0 format.
-
GryoVersion
now includes a defaultClassResolver
to supply to theGryoMapper
. -
GryoClassResolver
renamed toGryoClassResolverV1d0
which has an abstract class that for providers to extend inAbstractGryoClassResolver
. -
Removed previously deprecated
Order
enums ofkeyIncr
,keyDecr
,valueIncr
, andvalueDecr.
-
Removed previously deprecated
GraphTraversal.mapKeys()
step. -
Removed previously deprecated
GraphTraversal.mapValues()
step. -
Removed previously deprecated
GraphTraversal#addV(Object…)
. -
Removed previously deprecated
GraphTraversal#addE(Direction, String, String, Object…)
. -
Removed previously deprecated
GraphTraversal#addOutE(String, String, Object…)
. -
Removed previously deprecated
GraphTraversal#addInV(String, String, Object…)
. -
Removed previously deprecated
GraphTraversal.groupV3d0()
and respectiveGroupSideEffectStepV3d0
andGroupStepV3d0
. -
Removed previously deprecated
TraversalSource.Builder
class. -
Removed previously deprecated
ConnectiveP
,AndP
,OrP
constructors. -
Removed previously deprecated
TraversalScriptFunction
class. -
Removed previously deprecated
TraversalScriptHelper
class. -
Removed previously deprecated
ScriptEngineCache
class. -
Removed previously deprecated
CoreImports
class. -
Removed previously deprecated
GremlinJythonScriptEngine#()
constructor. -
Removed access to previously deprecated
CoreGremlinPlugin#INSTANCE
field. -
gremlin.sh
andgremln.bat
no longer support the option to pass a script as an argument for execution mode without using the-i
option. -
Graphite and Ganglia are no longer packaged with the Gremlin Server distribution.
-
TransactionException
is no longer a class ofAbstractTransaction
and it extendsRuntimeException
. -
Included an ellipse on long property names that are truncated.
-
Renamed
RangeByIsCountStrategy
toCountStrategy
. -
Added more specific typing to various
__
traversal steps. E.g.<A,Vertex>out()
is<Vertex,Vertex>out()
. -
Updated Docker build scripts to include Python dependencies (NOTE: users should remove any previously generated TinkerPop Docker images).
-
Added "attachment requisite"
VertexProperty.element()
andProperty.element()
data in GraphSON serialization. -
GraphSON 3.0 is now the default serialization format in TinkerGraph and Gremlin Server.
-
Changed
ServerGremlinExecutor
to not use generics since there really is no flexibility in the kind ofScheduledExecutorService
that will be used. -
Removed support for passing a byte array on the
sasl
parameter. -
Removed previously deprecated
GraphSONMapper$Builder#embedTypes
option. -
Removed previously deprecated
:remote config timeout max
. -
Removed previously deprecated
ConnectionPoolSettings.sessionId
andConnectionPoolSettings.optionalSessionId()
. -
Removed previously deprecated
reconnectInitialDelay
setting from the Java driver. -
Removed previously deprecated
useMapperFromGraph
option. -
Established the GraphSON 3.0 format with new
g:Map
,g:List
andg:Set
types. -
Removed previously deprecated
Io.Builder#registry(IoRegistry)
method. -
Removed previously deprecated
GryoMessageSerializerV1d0(GryoMapper)
constructor. -
Removed previously deprecated
TinkerIoRegistry
. -
Removed previously deprecated
getInstance()
methods on all TinkerPop classes. -
Removed previously deprecated
VertexPropertyFeatures.supportsAddProperty()
. -
Removed previously deprecated TinkerGraph configuration member variables.
-
Removed previously deprecated
Transaction.submit(Function)
. -
Removed previously deprecated
OpSelectorHandler.errorMeter
andAbstractEvalOpProcessor.errorMeter
fields. -
Removed previously deprecated
AbstractEvalOpProcessor.validBindingName
field. -
Removed previously deprecated
SimpleAuthenticator.CONFIG_CREDENTIALS_LOCATION
field. -
Removed previously deprecated
IteratorHandler
,NioGremlinResponseEncoder
andWsGremlinResponseEncoder
classes. -
Removed previously deprecated
Session.kill()
andSession.manualKill()
. -
Removed previously deprecated
Authenticator.newSaslNegotiator()
and its method implementations in classes that were assignable to that interface. -
Removed
gremlin-groovy-test
. -
Removed previously deprecated "G" functions in
gremlin-groovy
(i.e.GFunction
). -
Removed references to the old
GremlinPlugin
system that was ingremlin-groovy
- the revisedGremlinPlugin
system ingremlin-core
is the only one now in use. -
GremlinGroovyScriptEngine
no longer implements the now removedDependencyManager
. -
Added
Vertex
,Edge
,VertexProperty
, andProperty
serializers to Gremlin-Python and exposed tests that use graph object arguments. -
Bytecode.getSourceInstructions()
andBytecode.getStepInstructions()
now returnsList<Instruction>
instead ofIterable<Instruction>
. -
Added various
TraversalStrategy
registrations withGryoMapper
. -
Fixed a naming mistake in Gremlin-Python:
IdentityRemoveStrategy
is now calledIdentityRemovalStrategy
. -
Added
TranslationStrategy
test infrastructure that verifiesBytecode
generated from a translation is equal to the originalBytecode
. -
Moved
NumberHelper
into theorg.apache.tinkerpop.gremlin.util
package. -
Added
Pop.mixed
instead of usingnull
to represent such semantics. -
select()
-step now defaults to usingPop.last
instead ofPop.mixed
. -
Added
gremlin-io-test
module to validate IO formats. -
RequestMessage
andResponseMessage
are now registered withGryoMapper
as part of the TinkerPop range of type identifiers. -
Removed previously deprecated
Console
constructor that took aString
as an argument fromgremlin-console
. -
Removed previously deprecated
ConcurrentBindings
fromgremlin-groovy
. -
Removed previously deprecated
ScriptExecutor
fromgremlin-groovy
. -
Removed previously deprecated
SandboxExtension
fromgremlin-groovy
. -
Removed previously deprecated
GremlinGroovyScriptEngine
constructor that tookImportCustomizerProvider
as an argument fromgremlin-groovy
. -
Removed previously deprecated
GremlinGroovyScriptEngine#plugins()
fromgremlin-groovy
. -
Added
OptionalStep
for use withoptional()
to better handle issues associated with branch side-effects. -
UnfoldStep
now supports unfolding of arrays. -
Removed all performance tests that were not part of
gremlin-benchmark
. -
Removed dependency on
junit-benchmarks
and it’s related reference toh2
. -
Moved the source for the "home page" into the repository under
/site
so that it easier to accept contributions. -
Added
UnshadedKryoShimService
as the new default serializer model forSparkGraphComputer
. -
GryoRegistrator
is more efficient than the previousGryoSerializer
model inSparkGraphComputer
. -
Added support for
IoRegistry
custom serialization in Spark/Giraph and provided a generalhadoop-gremlin
test suite. -
Replaced term
REST
withHTTP
to remove any confusion as to the design of the API. -
Moved
gremlin-benchmark
undergremlin-tools
module. -
Added
gremlin-tools
and its submodulegremlin-coverage
. -
Removed
tryRandomCommit()
fromAbstractGremlinTest
. -
Changed
gremlin-benchmark
system property for the report location tobenchmarkReportDir
for consistency. -
Added SysV and systemd init scripts.
-
GraphTraversal.valueMap(includeTokens,propertyKeys…)
now returns aMap<Object,E>
since keys could beT.id
orT.label
. -
Added
skip(long)
andskip((Scope,long)
which call therange(low,high)
equivalents with -1 as the high. -
Added Kerberos authentication to
gremlin-server
for websockets and nio transport. -
Added audit logging of authenticated users and gremlin queries to
gremlin-server
.
-
TINKERPOP-1211 UnfoldStep should unfold arrays. (breaking)
-
TINKERPOP-1426 GryoSerializer should implement Java serialization interface
-
TINKERPOP-1465 Remove deprecated newSaslNegotiator (breaking)
-
TINKERPOP-1483 PropertyMapStep returns Map<String,E> but puts non String keys in it!
-
TINKERPOP-1520 Difference between 'has' step generated graphson2.0 in java and python glv implementation
-
TINKERPOP-1533 Storage and IoRegistry
-
TINKERPOP-1597 PathRetractionStrategy messing up certain traversals
-
TINKERPOP-1635 gremlin-python: Duplicate serialization of element property in PropertySerializer
-
TINKERPOP-1658 Graphson2 map keys are serialised as strings
-
TINKERPOP-1716 Traversal strategies are not applied with remote in Gremlin Console
-
TINKERPOP-832 Remove deprecated addV/E/InE/OutE methods (breaking)
-
TINKERPOP-833 Remove deprecated GremlinGroovyScriptEngine constructor and plugins() (breaking)
-
TINKERPOP-834 Remove deprecated sack() method (breaking)
-
TINKERPOP-880 Remove deprecated GroupStepV3d0 and GroupSideEffectStepV3d0 (breaking)
-
TINKERPOP-929 Remove Deprecated TinkerGraph public static methods. (breaking)
-
TINKERPOP-980 Add a service script or daemon mode in the distribution (breaking)
-
TINKERPOP-999 ServerGremlinExecutor construction need not use generics for ExecutorService (breaking)
-
TINKERPOP-1004 Make Transaction.commit() failures consistent across implementations. (breaking)
-
TINKERPOP-1010 Remove deprecated credentialsDbLocation for SimpleAuthenticator (breaking)
-
TINKERPOP-1024 Remove deprecated tryRandomCommit() (breaking)
-
TINKERPOP-1028 Remove deprecated ConnectionPoolSettings session settings (breaking)
-
TINKERPOP-1040 Remove deprecated SandboxExtension (breaking)
-
TINKERPOP-1046 Remove deprecated Gremlin Server handler implementations (breaking)
-
TINKERPOP-1049 Remove deprecated error meter member variables in Gremlin Server handlers (breaking)
-
TINKERPOP-1094 Remove deprecated VertexPropertyFeatures.FEATURE_ADD_PROPERTY (breaking)
-
TINKERPOP-1116 Some anonymous traversal steps can be hard typed. (breaking)
-
TINKERPOP-1130 Each release should store Kryo/GraphSON/GraphML versions to ensure future compatibility (breaking)
-
TINKERPOP-1142 Remove deprecated valueIncr, valueDecr, keyIncr, keyDecr. (breaking)
-
TINKERPOP-1169 Remove deprecated TraversalScriptFunction and TraversalScriptHelper (breaking)
-
TINKERPOP-1170 Remove deprecated ConfigurationTraversal. (breaking)
-
TINKERPOP-1171 Remove deprecated TraversalSource.Builder (breaking)
-
TINKERPOP-1235 Remove deprecated ProcessPerformanceSuite and TraversalPerformanceTest (breaking)
-
TINKERPOP-1275 Remove deprecated max setting for :remote (breaking)
-
TINKERPOP-1283 Remove deprecated ScriptExecutor (breaking)
-
TINKERPOP-1289 Remove deprecated ConnectiveP, AndP, and OrP constructors. (breaking)
-
TINKERPOP-1291 Remove deprecated mapValues and mapKeys methods (breaking)
-
TINKERPOP-1313 Rename RangeByIsCountStrategy (breaking)
-
TINKERPOP-1316 Remove deprecated constructor from GryoMessageSerializers (breaking)
-
TINKERPOP-1327 Bring GryoRegistrator to the forefront and deprecate GryoSerializer (breaking)
-
TINKERPOP-1363 Cleanup Docker build script for next major release (breaking)
-
TINKERPOP-1369 Replace REST API with HTTP API
-
TINKERPOP-1389 Support Spark 2.0.0
-
TINKERPOP-1399 NumberHelper needs to go into util and have a private constructor (breaking)
-
TINKERPOP-1404 Path/label optimization
-
TINKERPOP-1408 Remove Deprecated Io.Builder.registry() (breaking)
-
TINKERPOP-1414 Change default GraphSON version to 3.0 (breaking)
-
TINKERPOP-1420 Remove deprecated ConcurrentBindings in gremlin-groovy (breaking)
-
TINKERPOP-1421 Remove deprecated ControlOps (breaking)
-
TINKERPOP-1427 GraphSON 3.0 needs collection types and consistent number typing.
-
TINKERPOP-1443 Use an API checker during build
-
TINKERPOP-1445 Large nested VertexProperties and Properties do not get printed well
-
TINKERPOP-1454 Create Serializers for Graph objects in Gremlin-Python
-
TINKERPOP-1481 Remove deprecated reconnectInitialDelay in Java driver (breaking)
-
TINKERPOP-1485 Move source for TinkerPop site to source code repo
-
TINKERPOP-1506 Optional/Coalesce should not allow sideEffect traversals.
-
TINKERPOP-1514 Restructure for gremlin-tools module (breaking)
-
TINKERPOP-1524 Bytecode.getXXXInstructions should return a List, not Iterable.
-
TINKERPOP-1526 Remove deprecated Session kill() overloads (breaking)
-
TINKERPOP-1536 Include GLVs in Docker build
-
TINKERPOP-1541 Select should default to Pop.last semantics (breaking)
-
TINKERPOP-1549 Implement skip()
-
TINKERPOP-1550 Make Graphite and Ganglia optional dependencies
-
TINKERPOP-1563 Remove deprecated getInstance() methods (breaking)
-
TINKERPOP-1565 Setup GraphSON 3.0
-
TINKERPOP-1566 Kerberos authentication for gremlin-server
-
TINKERPOP-1574 Get rid of untyped GraphSON in 3.0
-
TINKERPOP-1603 Remove support for SASL byte array in protocol (breaking)
-
TINKERPOP-1612 Remove gremlin-groovy-test module (breaking)
-
TINKERPOP-1621 Remove deprecated GremlnPlugin and related infrastructure (breaking)
-
TINKERPOP-1622 Remove deprecated G functions in gremlin-groovy (breaking)
-
TINKERPOP-1651 Remove deprecated gremlin.sh init syntax (breaking)
-
TINKERPOP-1686 Make TraversalMetrics thread safe (breaking)
-
TINKERPOP-1698 Gryo 3.0
-
TINKERPOP-1699 Remove deprecated userMapperFromGraph (breaking)
-
TINKERPOP-1700 Remove deprecated embedTypes option
-
TINKERPOP-1706 Remove deprecated ScriptEngineCache and related dead code (breaking)
-
TINKERPOP-1715 Bump to Spark 2.2
-
TINKERPOP-1719 Remove deprecated Traversal related code (breaking)
-
TINKERPOP-1720 Remove deprecated Hadoop code (breaking)
-
TINKERPOP-1721 Remove deprecated Bindings related code (breaking)
-
TINKERPOP-1724 Remove deprecated ScriptElementFactory
-
TINKERPOP-1729 Remove deprecated select steps.
-
TINKERPOP-1740 Add vertex parameter overload to to() and from()
-
TINKERPOP-1747 Streamline inheritance for gremlin-python GraphSON serializer classes
-
Added a
Lambda
class to Gremlin.Net that makes it possible to use Groovy and Python lambdas with Gremlin.Net. -
Enums are now represented as classes in Gremlin.Net which allows to use them as arguments in more steps.
-
Bumped to Groovy 2.4.14.
-
Added
checkAdjacentVertices
option toSubgraphStrategy
. -
Modified
GremlinDslProcessor
so that it generated thegetAnonymousTraversalClass()
method to return the DSL version of__
. -
Added the "Kitchen Sink" test data set.
-
Fixed deserialization of
P.not()
for GraphSON. -
Bumped to Jackson 2.9.4.
-
Improved performance of
JavaTranslator
by caching reflected methods required for traversal construction. -
Ensure that
RemoteStrategy
is applied before all otherDecorationStrategy
instances. -
Added
idleConnectionTimeout
andkeepAliveInterval
to Gremlin Server that enables a "ping" and auto-close for seemingly dead clients. -
Fixed a bug where lambdas in
gremlin-python
would trigger a failure if steps using python-only symbols were present (such asas_()
). -
Fixed a bug in
NumberHelper
that led to wrong min/max results if numbers exceeded the Integer limits. -
Delayed setting of the request identifier until
RequestMessage
construction by the builder. -
ReferenceElement
avoidsUnsupportedOperationException
handling in construction thus improving performance. -
Improved error messaging for failed serialization and deserialization of request/response messages.
-
Fixed handling of
Direction.BOTH
inMessenger
implementations to pass the message to the opposite side of theStarGraph
. -
Removed hardcoded expectation in metrics serialization test suite as different providers may have different outputs.
-
Added
IndexedTraverserSet
which indexes on the value of aTraverser
thus improving performance when used. -
Utilized
IndexedTraverserSet
inTraversalVertexProgram
to avoid extra iteration when doingVertex
lookups. -
Bumped to Netty 4.0.56.Final.
-
Fixed .NET GraphSON serialization of
P.Within()
andP.without()
when passing aCollection
as an argument. -
Fixed a bug in Gremlin Console which prevented handling of
gremlin.sh
flags that had an "=" between the flag and its arguments. -
Fixed bug where
SparkMessenger
was not applying theedgeFunction
fromMessageScope
. -
Fixed a bug in
ComputerAwareStep
that didn’t handlereset()
properly and thus occasionally produced some extra traversers. -
Removed
TraversalPredicate
class in Gremlin.Net. It is now included in theP
class instead.
-
TINKERPOP-1053 installed plugins are placed in a directory relative to where gremlin.sh is started
-
TINKERPOP-1509 Failing test case for tree serialization
-
TINKERPOP-1738 Proper functioning of GraphSONReader depends on order of elements in String representation
-
TINKERPOP-1758 RemoteStrategy should be before all other DecorationStrategies.
-
TINKERPOP-1855 Update Rexster links
-
TINKERPOP-1859 Complex instance of P not serializing to bytecode properly
-
TINKERPOP-1860 valueMap(True) result in error in gremlin-python
-
TINKERPOP-1862 TinkerGraph VertexProgram message passing doesn’t work properly when using Direction.BOTH
-
TINKERPOP-1867 union() can produce extra traversers
-
TINKERPOP-1872 Apply edgeFunction in SparkMessenger
-
TINKERPOP-1873 min() and max() work only in the range of Integer values
-
TINKERPOP-1874 P does not appear to be serialized consistently in GraphSON
-
TINKERPOP-1879 Gremlin Console does not resepect equal sign for flag argument assignments
-
TINKERPOP-1880 Gremlin.NET Strong name signature could not be verified. (HRESULT: 0x80131045)
-
TINKERPOP-1883 gremlinpython future will never return
-
TINKERPOP-1890 getAnonymousTraversalClass() is not being generated for Java DSLs
-
TINKERPOP-1891 Serialization of P.not() for gremlin-javascript
-
TINKERPOP-1892 GLV test failures for .NET
-
TINKERPOP-1894 GraphSONMessageSerializerV2d0 fails to deserialize valid P.not()
-
TINKERPOP-1896 gremlin-python lambdas error
-
TINKERPOP-1907 Fix failing GLV test for withSack() in .NET
-
TINKERPOP-1917 gx:BigDecimal serialization broken in Gremlin.Net on systems with ',' as decimal separator
-
TINKERPOP-1918 Scenarios fail because of wrong numerical types
-
TINKERPOP-1919 Gherkin runner doesn’t work with P.And() and P.Or() in Gremlin.Net
-
TINKERPOP-1920 Tests fail because P.Within() arguments are wrapped in an array in Gremlin.Net
-
TINKERPOP-1922 Gherkin features fail that contain P.not() in Gremlin.Net
-
TINKERPOP-1357 Centrality Recipes should mention pageRank and OLAP.
-
TINKERPOP-1489 Provide a Javascript Gremlin Language Variant
-
TINKERPOP-1586 SubgraphStrategy in OLAP
-
TINKERPOP-1726 Support WebSockets ping/pong keep-alive in Gremlin server
-
TINKERPOP-1842 iterate() missing in terminal steps documentation
-
TINKERPOP-1850 Range step has undocumented special values
-
TINKERPOP-1854 Support lambdas in Gremlin.Net
-
TINKERPOP-1857 GLV test suite consistency and completeness
-
TINKERPOP-1863 Delaying the setting of requestId till the RequestMessage instantiation time
-
TINKERPOP-1868 Support inject source step in Gremlin.Net
-
TINKERPOP-1870 n^2 synchronious operation in OLAP WorkerExecutor.execute() method
-
TINKERPOP-1877 Add new graph data for specialized testing scenarios
-
TINKERPOP-1884 Bump to Netty 4.0.56.Final
-
TINKERPOP-1885 Various Gremlin.Net documentation updates
-
TINKERPOP-1901 Enable usage of enums in more steps in Gremlin.Net
-
TINKERPOP-1908 Bump to Groovy 2.4.14
-
TINKERPOP-1911 Refactor JavaTranslator to cache all reflective calls
-
Added core GraphSON classes for Gremlin-Python:
UUID
,Date
, andTimestamp
. -
Documented the recommended method for constructing DSLs with Gremlin.Net.
-
Provided a method to configure detachment options with
EventStrategy
. -
Fixed a race condition in
TinkerIndex
. -
Fixed bug in handling of the long forms of
-e
and-i
(--execute
and--interactive
respectively) for Gremlin Console. -
Fixed bug in
LambdaRestrictionStrategy
where traversals usingLambda
scripts weren’t causing the strategy to trigger. -
Improved error messaging for bytecode deserialization errors in Gremlin Server.
-
Fixed an
ArrayOutOfBoundsException
inhasId()
for the rare situation when the provided collection is empty. -
Bump to Netty 4.0.53
-
TraversalVertexProgram
profile()
now accounts for worker iteration inGraphComputer
OLAP. -
Returned the
Builder
instance from theDetachedEdge.Builder
methods ofsetOutE
andsetOutV
. -
Added test framework for GLVs.
-
Fixed bug in
TraversalHelper.replaceStep()
where the step being replaced needed to be removed prior to the new one being added. -
Added alias support in the .NET
DriverRemoteConnection
. -
Added a test for self-edges and fixed
Neo4jVertex
to provided repeated self-edges onBOTH
. -
Better respected permissions on the
plugins.txt
file and prevented writing if marked as read-only. -
Added getters for the lambdas held by
LambdaCollectingBarrierStep
,LambdaFlatMapStep
andLambdaSideEffectStep
. -
Fixed an old hack in
GroovyTranslator
andPythonTranslator
whereElements
were being mapped to their id only. -
Fixed an "attachement"-bug in
InjectStep
with a solution generalized toStartStep
. -
Truncate the script in error logs and error return messages for "Method code too large" errors in Gremlin Server.
-
Fixed a bug in
LambdaRestrictionStrategy
where it was too eager to consider a step as being a lambda step. -
ReferenceVertex
was missing itslabel()
string.ReferenceElement
now supports all label handling. -
Fixed a bug where bytecode containing lambdas would randomly select a traversal source from bindings.
-
Deprecated
GremlinScriptEngine.eval()
methods and replaced them with new overloads that include the specificTraversalSource
to bind to. -
Added
GraphHelper.cloneElements(Graph original, Graph clone)
to thegremlin-test
module to quickly clone a graph. -
Added
GremlinDsl.AnonymousMethod
annotation to help provide explicit types for anonymous methods when the types are not easily inferred. -
Bump to GMavenPlus 1.6.
-
Added better error message for illegal use of
repeat()
-step. -
Fixed a bug in
RangeByIsCountStrategy
that led to unexpected behaviors when predicates were used with floating point numbers. -
Bump to Jackson 2.8.10.
-
Deprecated
MutationListener.vertexPropertyChanged()
method that did not useVertexProperty
and added a new method that does. -
Added an
EmbeddedRemoteConnection
so that it’s possible to mimic a remote connection within the same JVM. -
Supported interruption for remote traversals.
-
Allow the
:remote
command to accept aCluster
object defined in the console itself. -
The Console’s
plugin.txt
file is only updated if there were manually uninstalled plugins. -
Fixed a bug in
MatchStep
where mid-traversalwhere()
variables were not being considered in start-scope. -
Generalized
MatchStep
to locally compute all clauses with barriers (not just reducing barriers). -
Ensured that plugins were applied in the order they were configured.
-
Fixed a bug in
Neo4jGremlinPlugin
that prevented it from loading properly in theGremlinPythonScriptEngine
. -
Fixed a bug in
ComputerVerificationStrategy
where child traversals were being analyzed prior to compilation. -
Fixed a bug that prevented Gremlin from ordering lists and streams made of mixed number types.
-
Fixed a bug where
keepLabels
were being corrupted because a defensive copy was not being made when they were being set byPathRetractionStrategy
. -
Cancel script evaluation timeout in
GremlinExecutor
when script evaluation finished. -
Added a recipe for OLAP traversals with Spark on YARN.
-
Added
spark-yarn
dependencies to the manifest ofspark-gremlin
.
-
TINKERPOP-1650 PathRetractionStrategy makes Match steps unsolvable
-
TINKERPOP-1731 Docker build does not appear to work for gremlin-dotnet
-
TINKERPOP-1745 Gremlin .NET: Use DateTimeOffset instead of DateTime to represent g:Date
-
TINKERPOP-1753 OrderStep not able to order by non-integer numbers
-
TINKERPOP-1760 OLAP compilation failing around ConnectiveStrategy
-
TINKERPOP-1761 GremlinExecutor: Timeout future not cancelled on successful script evaluation
-
TINKERPOP-1762 Make MatchStep analyze mid-clause variables for executing ordering purposes.
-
TINKERPOP-1764 Generalize MatchStep to localize all barriers, not just reducing barriers.
-
TINKERPOP-1766 Gremlin.Net: Closed connections should not be re-used
-
TINKERPOP-1782 RangeByIsCountStrategy doesn’t handle floating point numbers properly
-
TINKERPOP-1789 Reference elements should be represented by id and label (breaking)
-
TINKERPOP-1790 GraphSON 3.0 doc updates
-
TINKERPOP-1791 GremlinDsl custom step with generic end type produces invalid code in __.java
-
TINKERPOP-1792 Random TraversalSource Selection in GremlinScriptEngine
-
TINKERPOP-1795 Getting Lambda comparator message for .profile() step
-
TINKERPOP-1796 Driver connection pool SSL properties missing
-
TINKERPOP-1797 LambdaRestrictionStrategy and LambdaMapStep in
by()
-modulation. -
TINKERPOP-1798 MutationListener.vertexPropertyChanged oldValue should be a VertexProperty
-
TINKERPOP-1801 OLAP profile() step return incorrect timing
-
TINKERPOP-1802 hasId() fails for empty collections
-
TINKERPOP-1803 inject() doesn’t re-attach with remote traversals
-
TINKERPOP-1819 documentation query and description mismatch
-
TINKERPOP-1821 Consistent behavior of self-referencing edges
-
TINKERPOP-1825 Gremlin .NET: Constant() step has incorrect parameter defined
-
TINKERPOP-1830 Race condition in Tinkergraph index creation
-
TINKERPOP-1832 TraversalHelper.replaceStep sets previousStep to the wrong step
-
TINKERPOP-1846 LambdaRestrictionStrategy not triggering for Lambda scripts
-
TINKERPOP-1848 Fix g:Date assertion in python tests
-
TINKERPOP-1851 Gremlin long options for -e and -i are not working properly
-
TINKERPOP-1661 Docker-built documentation does not always point locally
-
TINKERPOP-1725 DotNet GLV: Make traversal generation deterministic
-
TINKERPOP-1734 DSL for Gremlin .NET
-
TINKERPOP-1746 Better error message on wrong ordering of emit()/until()/has()
-
TINKERPOP-1752 Gremlin.Net: Generate completely type-safe methods
-
TINKERPOP-1756 Provide a way to easily mock a RemoteConnection for tests
-
TINKERPOP-1759 Improve hashcode and equals for Traverser implementations
-
TINKERPOP-1768 Bump to Jackson 2.8.10
-
TINKERPOP-1770 Remote traversal timeout
-
TINKERPOP-1771 gremlin.bat doesn’t support paths containing spaces
-
TINKERPOP-1779 Bump to GMavenPlus 1.6
-
TINKERPOP-1784 Gremlin Language Test Suite
-
TINKERPOP-1785 Gremlin.Net should be strong-name signed
-
TINKERPOP-1786 Recipe and missing manifest items for Spark on Yarn
-
TINKERPOP-1787 Allow :remote command to accept a user defined Cluster instance
-
TINKERPOP-1806 Consistently use Gremlin.Net instead of Gremlin-DotNet
-
TINKERPOP-1807 Gremlin-Python doesn’t support GraphSON types g:Date, g:Timestamp and g:UUID
-
TINKERPOP-1808 Add ability to get the consumer in LambdaSideEffectStep
-
TINKERPOP-1811 Improve error reporting for serialization errors between gremlin-python and gremlin-server
-
TINKERPOP-1812 ProfileTest assumes that graph implementations will not add their own steps
-
TINKERPOP-1813 Subgraph step requires the graph API
-
TINKERPOP-1814 Some process tests require the graph API
-
TINKERPOP-1820 Include .NET GLV tests on TravisCI
-
TINKERPOP-1824 Update netty version to 4.0.52
-
TINKERPOP-1827 Gremlin .NET: Test Suite Runner
-
TINKERPOP-1829 Improve flexibility of detachment for EventStrategy
-
TINKERPOP-1833 DetachedEdge.Builder#setInV and setOutV doesn’t return the builder
-
TINKERPOP-1835 Bump Netty 4.0.53
-
TINKERPOP-1837 Gremlin .NET: Provide type coercion between IDictionary<K, V> instances
This release also includes changes from 3.1.8.
-
Bump to Netty 4.0.50
-
Registered
HashMap$TreeNode
to Gryo. -
Fixed a lambda-leak in
SackValueStep
whereBiFunction
must be tested for true lambda status. -
Fixed a bug in
RangeByIsCountStrategy
that broke anyConnectiveStep
that included a child traversal with an optimizable pattern. -
Allowed access to
InjectStep.injections
forTraversalStrategy
analysis. -
Exceptions that occur during result iteration in Gremlin Server will now return
SCRIPT_EVALUATION_EXCEPTION
rather thanSERVER_ERROR
. -
AddEdgeStep
attaches detached vertices prior to edge creation. -
Added graph element GraphSON serializers in Gremlin-Python.
-
Initialization scripts for Gremlin Server will not timeout.
-
Added Gremlin.Net.
-
ProfileTest
is now less stringent about assertions which will reduce burdens on providers. -
GremlinExecutor
begins timeout of script evaluation at the time the script was submitted and not from the time it began evaluation. -
Added Gremlin.Net.
-
ReferenceFactory
andDetachedFactory
now detach elements in collections accordingly. -
Deprecated
GryoLiteMessageSerializerV1d0
in favor ofHaltedTraverserStrategy
. -
Deprecated the
useMapperFromGraph
configuration option for Gremlin Server serializers. -
JavaTranslator
is now smart about handlingBulkSet
andTree
. -
Added annotations to the traversal metrics pretty print.
-
EdgeOtherVertexStep
is no longer final and can be extended by providers. -
EdgeVertexStep
is no longer final and can be extended by providers. -
Deprecated
Transaction.submit(Function)
. -
Fixed
HADOOP_GREMLIN_LIBS
parsing for Windows. -
Improved GraphSON serialization performance around
VertexProperty
. -
Changed some tests in
EventStrategyProcessTest
which were enforcing some unintended semantics around transaction state. -
Added WsAndHttpChannelizer and SaslAndHttpBasicAuthenticationHandler to be allow for servicing Http and Websocket requests to the same server
-
Added deep copy of
Bytecode
toDefaultTraversal.clone()
.
-
TINKERPOP-1385 Refactor Profiling test cases
-
TINKERPOP-1679 Detached side-effects aren’t attached when remoted
-
TINKERPOP-1683 AbstractHadoopGraphComputer on Windows
-
TINKERPOP-1691 Some EventStrategyProcessTest assume element state is synced in memory
-
TINKERPOP-1704 XXXTranslators are not being respective of BulkSet and Tree.
-
TINKERPOP-1727 Bytecode object shallow copied when traversals are cloned
-
TINKERPOP-1742 RangeByIsCountStrategy fails for ConnectiveSteps
-
TINKERPOP-1743 LambdaRestrictionStrategy does not catch lambdas passed to sack()
-
TINKERPOP-1744 Gremlin .NET: Exception from sync execution gets wrapped in AggregateException
-
TINKERPOP-741 Remove Options For Transaction Retry
-
TINKERPOP-915 Gremlin Server supports REST and Websockets simultanteously
-
TINKERPOP-920 Test case needed for ensuring same cardinality for key.
-
TINKERPOP-1552 C# Gremlin Language Variant
-
TINKERPOP-1669 EdgeVertexStep should be designed for extension
-
TINKERPOP-1676 Improve GraphSON 2.0 Performance (breaking)
-
TINKERPOP-1688 Include TraversalMetrics annotation in pretty print
-
TINKERPOP-1694 Deprecate useMapperFromGraph
-
TINKERPOP-1701 HaltedTraverserStrategy should recurse into collections for detachment.
-
TINKERPOP-1703 Make EdgeOtherVertexStep non-final
-
TINKERPOP-1708 Add a "Note on Scopes" document
-
TINKERPOP-1709 Add a list of all the steps that support by()/from()/to()/as()/option()
-
TINKERPOP-1710 Add a note on tree() by-modulation and uniqueness of tree branches.
-
TINKERPOP-1714 Gremlin Server scriptEvaluationTimeout should take into account request arrival time
-
TINKERPOP-1718 Deprecate GryoLiteMessageSerializerV1d0
-
TINKERPOP-1748 Callout comments break code snippets
-
TINKERPOP-1749 Bump to Netty 4.0.50
This release also includes changes from 3.1.7.
-
Fixed folding of multiple
hasId()
steps intoGraphStep
. -
Added string performance options to
StarGraph
. -
Fixed a bug in
until(predicate)
where it was actually callingemit(predicate)
. -
Fixed inconsistency in GraphSON serialization of
Path
where properties of graph elements were being included when serialized. -
Improved performance and memory usage of GraphSON when serializing
TinkerGraph
and graph elements. -
Removed use of
stream()
inDetachedEdge
andDetachedVertex
. -
Deprecated a constructor in
DetachedEdge
that made use ofPair
in favor of a new one that just uses the objects that were in thePair
. -
Improved error messaging on the
g.addV(Object…)
when passing an invalid arguments. -
Reduced memory usage for TinkerGraph deserialization in GraphSON by streaming vertices and edges.
-
Added the
gremlin-archetype-dsl
to demonstrate how to structure a Maven project for a DSL. -
Developed and documented patterns for Domain Specific Language implementations.
-
Removed the Groovy dependency from
gremlin-python
and used Groovy Templates and thegmavenplus-plugin
to generate the python GLV classes. -
Now using Groovy
[…]
map notation inGroovyTranslator
instead ofnew LinkedHashMap(){{ }}
. -
Maintained type information on
Traversal.promise()
. -
Propagated exception to
Future
instead of calling thread inRemoteConnection
. -
Fixed a bug in
RepeatUnrollStrategy
whereLoopsStep
andLambdaHolder
should invalidate the strategy’s application. -
Deprecated
authentication.className
setting in favor of usingauthentication.authenticator
. -
Added
authentication.authenticationHandler
setting. -
Added abstraction to authorization to allow users to plug in their own
AbstractAuthorizationHandler
implementations. -
Fixed a
NullPointerException
bug inB_LP_O_S_SE_SL_Traverser
. -
PathRetractionStrategy
now uses the marker-model to reduce recursive lookups of invalidating steps. -
ProfileStrategy
now uses the marker-model to reduce recursive lookups ofProfileSideEffectStep
. -
Mutating
steps now implementScoping
interface. -
Fixed a step id compilation bug in
AddVertexStartStep
,AddVertexStep
,AddEdgeStep
, andAddPropertyStep
. -
Added more details to Gremlin Server client side messages - exception hierarchy and stack trace.
-
Deprecated "Exception-Class" in the Gremlin Server HTTP protocol in favor of the new "exceptions" field.
-
De-registered metrics on Gremlin Server shutdown.
-
Added "help" command option on
:remote config
for plugins that support that feature in the Gremlin Console. -
Allowed for multiple scripts and related arguments to be passed to
gremlin.sh
via-i
and-e
. -
LABELED_PATH
requirement is now set if any step in the traversal is labeled. -
Updated
PathRetractionStrategy
to not run if the provided traversal contains aVertexProgramStep
that has aLABELED_PATH
requirement. -
Added various metrics to the
GremlinGroovyScriptEngine
around script compilation and exposed them in Gremlin Server. -
Moved the
caffeine
dependency down togremlin-groovy
and out ofgremlin-server
. -
Improved script compilation in
GremlinGroovyScriptEngine
to use better caching, log long compile times and prevent failed compilations from recompiling on future requests. -
Synchronized script compilation.
-
Logged Script compilation times.
-
Prevented failed scripts from recompiling.
-
Logged warnings for scripts that take "too long" to compile.
-
Improved memory usage of the
GremlinGroovyScriptEngine
. -
Added
cyclicPath().from().to().by()
support toGraphTraversal
. -
Added
simplePath().from().to().by()
support toGraphTraversal
. -
Added
path().from().to()
support toGraphTraversal
so sub-paths can be isolated from the current path. -
Added
FromToModulating
interface for use withto()
- andfrom()
-based step modulators. -
Added
Path.subPath()
which supports isolating a sub-path fromPath
via to/from-labels. -
Fixed
NullPointerException
inGraphMLReader
that occurred when an<edge>
didn’t have an ID field and the base graph supported ID assignment. -
Added
ScopingStrategy
which will computer and provide allScoping
steps with the path labels of the globalTraversal
. -
Split
ComputerVerificationStrategy
into two strategies:ComputerVerificationStrategy
andComputerFinalizationStrategy
. -
Removed
HasTest.g_V_hasId_compilationEquality
from process test suite as it makes too many assumptions about provider compilation. -
Deprecated
CustomizerProvider
infrastructure. -
Deprecated
PluginAcceptor
infrastructure. -
Improved consistency of the application of bindings to
GremlinScriptEngine
implementations in theBindingsGremlinPlugin
. -
Fixed a bug in OLAP
ComputerAwareStep
where end-step labels were not being appended to the traverser correctly. -
Refactor
SparkContext
handler to support external kill and stop operations. -
Fixed an optimization bug in
LazyBarrierStrategy
around appending barriers to the end of aTraversal
. -
Fixed an optimization bug in
PathRetractionStrategy
around appending barriers to the end of aTraversal
. -
TraverserIterator
in GremlinServer is smart to try and bulk traversers prior to network I/O. -
Improved error handling of compilation failures for very large or highly parameterized script sent to Gremlin Server.
-
Fixed a bug in
RangeByIsCountStrategy
that changed the meaning of inner traversals. -
Improved Gremlin-Python Driver implementation by adding a threaded client with basic connection pooling and support for pluggable websocket clients.
-
Changed
GraphManager
from a final class implementation to an interface. -
Updated
GraphManager
interface to include methods for opening/instantiating a graph and closing a graph. -
Implemented
DefaultGraphManager
to include previousGraphManager
functionality and adhere to updated interface. -
Deprecated
GraphManager.getGraphs()
and addedGraphManager.getGraphNames()
. -
Deprecated
GraphManager.getTraversalSources()
and addedGraphManager.getTraversalSourceNames()
. -
Fixed a bug so now users can supply a YAML with an empty
staticVariableTypes
to be used by theFileSandboxExtension
-
TINKERPOP-1258 HasTest.g_V_hasId_compilationEquality makes GraphStep assumptions
-
TINKERPOP-1528 CountByIsRangeStrategy fails for a particular query
-
TINKERPOP-1626 choose() is buggy in OLAP
-
TINKERPOP-1638 count() is optimized away in where()
-
TINKERPOP-1640 ComputerVerificationStrategy gives false errors
-
TINKERPOP-1652 Disable PathRetractionStrategy strategy if VertexProgramStep has LABELLED_PATH requirement
-
TINKERPOP-1660 Documentation links should not link to TINKERPOP-xxxx branches
-
TINKERPOP-1666 NPE in FileSandboxExtension if staticVariableTypes is empty in supplied YAML file
-
TINKERPOP-1668 RepeatUnrollStrategy should not execute if there is a LoopStep used.
-
TINKERPOP-1670 End type lost when using promise()
-
TINKERPOP-1673 GroovyTranslator produces Gremlin that can’t execute on :remote
-
TINKERPOP-1675 RemoteStep#processNextStart() throws CompletionException instead of underlying exception
-
TINKERPOP-1681 Multiple hasId’s are or’d into GraphStep
-
TINKERPOP-761 Some basic mathematical functions / steps
-
TINKERPOP-786 Patterns for DSL Development
-
TINKERPOP-1044 ResponseMessage should contain server-side exception name.
-
TINKERPOP-1095 Create a custom ScriptContext
-
TINKERPOP-1266 Make memory available to benchmarks configurable
-
TINKERPOP-1303 add help for :remote config for Gephi Plugin
-
TINKERPOP-1340 docs do not state at what version an API was introduced (or deprecated)
-
TINKERPOP-1387 from and to modulators for path steps
-
TINKERPOP-1438 Consider GraphManager as an interface*(breaking)*
-
TINKERPOP-1453 Allow Gremlin-Python to handle asynchronous failure
-
TINKERPOP-1577 Provide support for Python3 or Python2 in the Docker builds.
-
TINKERPOP-1599 implement real gremlin-python driver
-
TINKERPOP-1614 Improve documentation for Graph.V() and Graph.E() on main docs page
-
TINKERPOP-1618 Remove groovy dependency from gremlin-python
-
TINKERPOP-1627 LazyBarrierStrategy should not append an end barrier.
-
TINKERPOP-1631 Fix visibility issues with the BindingsGremlinPlugin
-
TINKERPOP-1634 Deprecate old methods of GremlinGroovyScriptEngine customization
-
TINKERPOP-1642 Improve performance of mutating traversals
-
TINKERPOP-1644 Improve script compilation process and include metrics
-
TINKERPOP-1653 Allow multiple scripts with arguments to be passed to the Console
-
TINKERPOP-1657 Provide abstraction to easily allow different HttpAuth schemes
-
TINKERPOP-1663 Validate a maximum for the number of parameters passed to Gremlin Server
-
TINKERPOP-1665 Remove unittest from Gremlin-Python tests
-
TINKERPOP-1671 Default method for RemoteConnection.submitAsync throws exception from submit on calling thread instead of failing the future
-
TINKERPOP-1677 Bump Groovy to 2.4.11
-
TINKERPOP-1680 Add string performance options to StarGraph
This release also includes changes from 3.1.6.
-
Fixed a bug where
PathProcessor.keepLabels
were not being pushed down into child traversals byPathRetractionStrategy
. -
Added default
MessagePassingReductionStrategy
forGraphComputer
that can reduce the number of message passing iterations. -
Fixed a bug associated with user-provided maps and
GroupSideEffectStep
. -
GroupBiOperator
no longer maintains a detached traversal and thus, no more side-effect related OLAP inconsistencies. -
Added
ProjectedTraverser
which wraps a traverser with aList<Object>
of projected data. -
Fixed an optimization bug in
CollectingBarrierSteps
where the barrier was being consumed on eachaddBarrier()
. -
OrderGlobalStep
andSampleGlobalStep
useProjectedTraverser
and now can work up to the local star graph in OLAP. -
SASL negotiation supports both a byte array and Base64 encoded bytes as a string for authentication to Gremlin Server.
-
Deprecated all test suites in
gremlin-groovy-test
- Graph Providers no longer need to implement these. -
Deprecated
TinkerIoRegistry
replacing it with the more consistently namedTinkerIoRegistryV1d0
. -
Made error messaging more consistent during result iteration timeouts in Gremlin Server.
-
Fixed a memory leak in the classloader for the
GremlinGroovyScriptEngine
where classes in the loader were not releasing from memory as a strong reference was always maintained. -
PathRetractionStrategy
does not add aNoOpBarrierStep
to the end of local children as its wasted computation in 99% of traversals. -
Fixed a bug in
AddVertexStartStep
where if a side-effect was being used in the parametrization, an NPE occurred. -
Fixed a bug in
LazyBarrierStrategy
whereprofile()
was deactivating it accidentally. -
Fixed a bug in
RepeatUnrollStrategy
where statefulDedupGlobalStep
was cloned and thus, maintained two deduplication sets. -
Added documentation around "terminal steps" in Gremlin:
hasNext()
,next()
,toList()
, etc. -
Added specific GraphSON serializers for
RequestMessage
andResponseMessage
in GraphSON 2.0. -
Added
CloseableIterator
to allowGraph
providers who open expensive resources a way to let users release them. -
Fixed minor bug in
gremlin-driver
where closing a session-basedClient
without initializing it could generate an error. -
Relieved synchronization pressure in various areas of
TinkerGraphComputer
. -
Fixed an optimization bug in OLAP-based
DedupGlobalStep
where deduping occurred twice. -
MemoryComputeKey
now implementsCloneable
which is useful forBiOperator
reducers that maintain thread-unsafe state. -
TinkerGraphComputer
now supports distributedMemory
with lock-free partition aggregation. -
TinkerGraph
Gryo and GraphSON deserialization is now configured to use multi-properties. -
Changed behavior of
ElementHelper.areEqual(Property, Property)
to not throw exceptions withnull
arguments. -
Added
GryoVersion
for future flexibility when introducing a new verison of Gryo and moved serializer registrations to it. -
Fixed Gryo serialization of
ConnectiveP
instances. -
Lessened the severity of Gremlin Server logging when it encounters two or more serializers addressing the same mime type.
-
Bumped to Netty 4.0.42.final.
-
Added
ByteBuffer
,InetAddress
,Timestamp
to the list of Gryo supported classes. -
Fixed Gryo serialization of
Class
. -
Fixed GraphSON serialization of enums like
T
,P
, etc. where values were overriding each other in the GraphSON type registry. -
Fixed a bug in Gremlin-Python around
.()
and__.start()
. -
Fixed a bug around long serialization in Gremlin-Python when using Python3.
-
Deprecated
TraversalSource.withBindings()
as it is no longer needed in Gremlin-Java and never was needed for other variants. -
Fixed a bug in Gremlin-Java
Bytecode
where anonymous traversals were not aware of parent bindings. -
Fixed a bug in Gremlin-Java GraphSON deserialization around
P.within()
andP.without()
. -
Converted Spark process suite tests to "integration" tests.
-
Fixed a bug in
InlineFilterStrategy
having to do with foldingHasContainers
intoVertexStep
. -
Deprecated
HasContainer.makeHasContainers()
which was used to dissectAndP
and shouldn’t be used at the TinkerPop-level. -
GraphTraversal.has()
now will try and fold-leftHasContainer
if end step is aHasContainerHolder
. -
Created explicit
P
-predicate methods forGraphTraversal.hasXXX()
. -
Fixed a bug in
FilterRankStrategy
aroundwhere().by()
ordering. -
Added another optimization in
RangeByIsCountStrategy
, that removescount().is()
altogether if it’s not needed. -
Fixed a OLAP
MatchStep.clone()
-bug that occurs when thematch()
is in a local child. -
Added another optimization in
RangeByIsCountStrategy
, that removescount().is()
altogether if it’s not needed. -
Fixed a bug in
RangeByIsCountStrategy
where labeled parents shouldn’t have the strategy applied to their children. -
Fixed a bug in
PathRetractionStrategy
whereMatchEndStep
labels were being dropped when they shouldn’t be. -
Added
TinkerGraphCountStrategy
which translatesg.V().map*.count()
patterns into directMap.size()
calls inTinkerGraph
. -
Added
Path.head()
andPath.isEmpty()
with default method implementations. -
Fixed a
NoSuchElementException
bug withGroupXXXStep
where if the reducedTraverserSet
is empty, don’t add the key/value. -
Fixed a
NullPointerException
bug with profilingGroupSideEffectStep
in OLTP. -
Improved ability to release resources in
GraphProvider
instances in the test suite. -
Factored
GremlinPlugin
functionality out of gremlin-groovy and into gremlin-core - related classes were deprecated. -
Added a
force
option for killing sessions without waiting for transaction close or timeout of a currently running job or multiple jobs. -
Deprecated
Session.kill()
andSession.manualKill()
. -
Added
Traversal.promise()
method to allow for asynchronous traversal processing on "remote" traversals. -
Deprecated
RemoteConnection.submit(Bytecode)
in favor ofsubmitAsync(Bytecode)
. -
Added
choose(predicate,traversal)
andchoose(traversal,traversal)
to effect if/then-semantics (no else). Equivalent tochoose(x,y,identity())
. -
Removed
ImmutablePath.TailPath
as it is no longer required with new recursion model. -
Removed call stack recursion in
ImmutablePath
. -
Gremlin-Python serializes
Bytecode
as an object (instead of a JSON string) when submit over theRemoteConnection
. -
Fixed the handling of the
DriverRemoteConnection
pass-through configurations to the driver. -
IncidentToAdjacentStrategy
now uses a hidden label marker model to avoid repeated recursion for invalidating steps. -
PathProcessorStrategy
can inline certainwhere(traversal)
-steps in order to increase the likelihood of star-local children. -
SparkGraphComputer
no longer starts a worker iteration if the worker’s partition is empty. -
Added
ProjectStep.getProjectKeys()
for strategies that rely on such information. -
Added
VertexFeatures.supportsDuplicateMultiProperties()
for graphs that only support unique values in multi-properties. -
Deprecated the "performance" tests in
OptIn
. -
Deprecated
getInstance()
methods in favor ofinstance()
for better consistency with the rest of the API. -
Block calls to "remote" traversal side-effects until the traversal read is complete which signifies an end to iteration.
-
Added
Pick.none
andPick.any
to the serializers and importers. -
Added a class loader to
TraversalStrategies.GlobalCache
which guarantees strategies are registered prior toGlobalCache.getStrategies()
. -
Fixed a severe bug where
GraphComputer
strategies are not being loaded until the second use of the traversal source. -
The root traversal now throws regular
NoSuchElementException
instead ofFastNoSuchElementException
. (breaking) -
Added a short sleep to prevent traversal from finishing before it can be interrupted during
TraversalInterruptionComputerTest
. -
Added support for SSL client authentication
-
TINKERPOP-1380 dedup() doesn’t dedup in rare cases
-
TINKERPOP-1384 Description of filter function in traversal documentation
-
TINKERPOP-1428 profile() throws NPE for union(group, group)
-
TINKERPOP-1521 Mutating steps don’t recognize side-effects
-
TINKERPOP-1525 Plug VertexProgram iteration leak on empty Spark RDD partitions
-
TINKERPOP-1534 Gremlin Server instances leaking in tests
-
TINKERPOP-1537 Python tests should not use hard-coded number of workers
-
TINKERPOP-1547 Two bugs found associated with MatchStep: Path retraction and range count.
-
TINKERPOP-1548 Traversals can complete before interrupted in TraversalInterruptionComputerTest
-
TINKERPOP-1560 Cache in GroovyClassLoader may continue to grow
-
TINKERPOP-1561 gremiln-python GraphSONWriter doesn’t properly serialize long in Python 3.5
-
TINKERPOP-1567 GraphSON deserialization fails with within('a')
-
TINKERPOP-1573 Bindings don’t work in coalesce
-
TINKERPOP-1576 gremlin-python calls non-existent methods
-
TINKERPOP-1581 Gremlin-Python driver connection is not thread safe.
-
TINKERPOP-1583 PathRetractionStrategy retracts keys that are actually needed
-
TINKERPOP-1585 OLAP dedup over non elements
-
TINKERPOP-1587 Gremlin Server Subgraph Cardinality Not Respected
-
TINKERPOP-1594 LazyBarrierStrategy does not activate with ProfileStep
-
TINKERPOP-1605 gremlin-console 3.2.3 -e can no longer take paths relative to current working directory
-
TINKERPOP-887 FastNoSuchElementException hides stack trace in client code
-
TINKERPOP-919 Features needs to specify whether 2 vertex properties with same key/value is allowed.
-
TINKERPOP-932 Add ability to cancel script execution associated with a Gremlin Server Session
-
TINKERPOP-1248 OrderGlobalStep should use local star graph to compute sorts, prior to reduction.
-
TINKERPOP-1261 Side-effect group().by() can’t handle user-defined maps
-
TINKERPOP-1292 TinkerGraphComputer VertexProgramInterceptors
-
TINKERPOP-1372 ImmutablePath should not use Java recursion (call stacks are wack)
-
TINKERPOP-1433 Add steps to dev docs to help committers get their keys in order
-
TINKERPOP-1434 Block calls to traversal side-effects until read is complete
-
TINKERPOP-1471 IncidentToAdjacentStrategy use hidden marker to avoid repeated recursion.
-
TINKERPOP-1473 Given PathRetractionStrategy, PathProcessorStrategy can be extended to support partial where() inlining.
-
TINKERPOP-1482 has(x).has(y) chains should be has(x.and(y))
-
TINKERPOP-1490 Provider a Future based Traversal.async(Function<Traversal,V>) terminal step
-
TINKERPOP-1502 Chained has()-steps should simply left-append HasContainers in Gremlin-Java.
-
TINKERPOP-1507 Pick.any and Pick.none are not in GraphSON or Gremlin-Python
-
TINKERPOP-1508 Add choose(predicate,trueTraversal)
-
TINKERPOP-1527 Do not override registered strategies in TraversalStrategies.GlobalCache
-
TINKERPOP-1530 Consistent use of instance()
-
TINKERPOP-1539 Create a ComplexTraversalTest with crazy nested gnarly traversals.
-
TINKERPOP-1542 Add Path.isEmpty() with a default implementation.
-
TINKERPOP-1562 Migrate ScriptEngine-related code to gremlin-core
-
TINKERPOP-1570 Bump to Netty 4.0.42
-
TINKERPOP-1582 TraversalOpProcessor does not support custom serializers
-
TINKERPOP-1584 Add gryo serializers to support types covered in GraphSON
-
TINKERPOP-1588 Added Terminal Steps section to the docs
-
TINKERPOP-1589 Re-Introduce CloseableIterator
-
TINKERPOP-1590 Create TinkerWorkerMemory and Partitioned Vertices
-
TINKERPOP-1600 Consistent use of base 64 encoded bytes for SASL negotiation
-
TINKERPOP-1602 Support SSL client certificate authentication
-
TINKERPOP-1606 Refactor GroupStep to not have the reduction traversal included in its BiOperator.
-
TINKERPOP-1610 Deprecate gremlin-groovy-test provider based tests
-
TINKERPOP-1617 Create a SingleIterationStrategy which will do its best to rewrite OLAP traversals to not message pass.
This release also includes changes from 3.1.5.
-
Restructured Gremlin-Python’s GraphSON I/O package to make it easier for users to register serializers/deserializers. (breaking)
-
Fixed a bug with
TraversalOpProcessor
that was returning a final result prior to committing the transaction. -
Fixed a bug in
ConnectiveStrategy
where infix and/or was not correctly reasoning onchoose()
HasNextStep
injections. -
Increased performance of
CredentialGraph
authentication. -
Removed Java 8 stream usage from
TraversalHelper
for performance reasons. -
Fixed a bug in
RepeatStep
whereemit().as('x')
wasn’t adding the step labels to the emit-traverser. -
Added
GraphComputing.atMaster(boolean)
to allow steps to know whether they are executing at master or distributed at workers. -
Fixed a bug in OLAP where
DedupGlobalStep
wasn’t de-duping local master traversers. -
Added
HasContainerHolder.removeHasContainer()
-method with defaultUnsupportedOperationException
implementation. -
TraversalSource.withComputer()
is simplified to add aVertexProgramStrategy
. Easier for language variants. -
Fixed a
Set
,List
,Map
bug in the variousTranslators
where such collections were not being internally translated. -
Fixed a
Bytecode
bug where nested structures (map, list, set) were not being analyzed for bindings and bytecode conversions. -
Fixed a
String
bug inGroovyTranslator
andPythonTranslator
where if the string has double-quotes it now uses """ """. -
Added a default
TraversalStrategy.getConfiguration()
which returns the configuration needed to construct the strategy. -
Computer
instances can be created withComputer.create(Configuration)
and accessed viaComputer.getConf()
. -
Every
TraversalStrategy
can be created via aConfiguration
and a staticMyStrategy.create(Configuration)
. -
Added language-agnostic
TraversalStrategy
support inBytecode
. -
Added
PartitionStrategy.Builder.readPartitions()
and deprecatedPartitionStrategy.Builder.addPartition()
. -
A new version of
LazyBarrierStrategy
has been created and added to the default strategies. -
FilterRankStrategy
now propagates labels "right" over non-Scoping
filters. -
Fixed a bug in
ConnectiveP
where nested equivalent connectives should be inlined. -
Fixed a bug in
IncidentToAdjacentStrategy
whereTreeStep
traversals were allowed. -
Fixed a end-step label bug in
MatchPredicateStrategy
. -
Fixed a bug in
MatchPredicateStrategy
where inlined traversals did not have strategies applied to it. -
Fixed a bug in
RepeatUnrollStrategy
where inlined traversal did not have strategies applied to it. -
Fixed padding of prompt in Gremlin Console when the number of lines went beyond a single digit.
-
Fixed GraphSON 2.0 namespace for
TinkerGraph
to be "tinker" instead of "gremlin". -
Dropped serialization support in GraphSON 2.0 for
Calendar
,TimeZone
, andTimestamp
. -
Added
TraversalHelper.copyLabels()
for copying (or moving) labels form one step to another. -
Added
TraversalHelper.applySingleLevelStrategies()
which will apply a subset of strategies but not walk the child tree. -
Added the concept that hidden labels using during traversal compilation are removed at the end during
StandardVerificationStrategy
. (breaking) -
Added
InlineFilterStrategy
which will determine if variousTraversalParent
children are filters and if so, inline them. -
Removed
IdentityRemovalStrategy
from the default listing as its not worth the clock cycles. -
Removed the "!" symbol in
NotStep.toString()
as it is confusing and theNotStep
-name is sufficient. -
Fixed a bug in
TraversalVertexProgram
(OLAP) around ordering and connectives (i.e.and()
andor()
). -
Added
AbstractGremlinProcessTest.checkOrderedResults()
to make testing ordered results easier. -
AbstractLambdaTraversal
now supports abypassTraversal
where it is possible for strategies to redefine such lambda traversals. -
Added an internal utility
ClassFilterStep
which determines if the traverser object’s class is an instance of the provided class. -
ConnectiveStep
extendsFilterStep
and thus, is more appropriately categorized in the step hierarchy. -
PropertyMapStep
supports a provided traversal for accessing the properties of the element. (breaking) -
SubgraphStrategy
now supports vertex property filtering. -
Fixed a bug in Gremlin-Python
P
where predicates reversed the order of the predicates. -
Added tests to
DedupTest
for thededup(Scope, String…)
overload. -
Added more detailed reference documentation for IO formats.
-
Fixed a bug in serialization of
Lambda
instances in GraphSON, which prevented their use in remote traversals. -
Fixed a naming bug in Gremlin-Python where
P.and
andP._or
should beP.and
andP.or_
. (breaking) -
where()
predicate-based steps now supportby()
-modulation. -
Added Gryo serialization for
Bytecode
. -
Moved utility-based serializers to
UtilSerializers
for Gryo - these classes were private and hence this change is non-breaking. -
TraversalRing
returns anull
if it does not contain traversals (previouslyIdentityTraversal
). -
Deprecated
Graph.Exceptions.elementNotFoundException()
as it was not used in the code base outside of the test suite. -
Fixed a
JavaTranslator
bug whereBytecode
instructions were being mutated during translation. -
Added
Path
to Gremlin-Python with respective GraphSON 2.0 deserializer. -
Traversal
andTraversalSource
now implementAutoCloseable
. -
Added "keep-alive" functionality to the Java driver, which will send a heartbeat to the server when normal request activity on a connection stops for a period of time.
-
Renamed the
empty.result.indicator
preference toresult.indicator.null
in Gremlin Console -
If
result.indicator.null
is set to an empty string, then no "result line" is printed in Gremlin Console. -
Deprecated
reconnectInitialDelay
on the Java driver. -
Added some validations to
Cluster
instance building. -
Produced better errors in
readGraph
ofGryoReader
andGraphSONReader
if aVertex
cannot be found in the cache on edge loading. -
VertexPrograms can now declare traverser requirements, e.g. to have access to the path when used with
.program()
. -
New build options for
gremlin-python
where-DglvPython
is no longer required. -
Added missing
InetAddress
to GraphSON extension module. -
Added new recipe for "Pagination".
-
Added new recipe for "Recommendation".
-
Added functionality to Gremlin-Server REST endpoint to forward Exception Messages and Class in HTTP Response
-
Gremlin Server
TraversalOpProcessor
now returns confirmation uponOp
close
. -
Added
close
method Java driver and Python driverDriverRemoteTraversalSideEffects
.
-
TINKERPOP-1423 IncidentToAdjacentStrategy should be disabled for tree steps
-
TINKERPOP-1440 g:Path needs a GraphSON deserializer in Gremlin-Python
-
TINKERPOP-1457 Groovy Lambdas for remote traversals not serializable
-
TINKERPOP-1458 Gremlin Server doesn’t return confirmation upon Traversal OpProcessor "close" op
-
TINKERPOP-1466 PeerPressureTest has been failing recently
-
TINKERPOP-1472 RepeatUnrollStrategy does not semi-compile inlined repeat traversal
-
TINKERPOP-1476 TinkerGraph does not get typed with the right type name in GraphSON
-
TINKERPOP-1495 Global list deduplication doesn’t work in OLAP
-
TINKERPOP-1500 and/or infix and choose() do not work correctly.
-
TINKERPOP-1511 Remote client addV, V()
-
TINKERPOP-790 Implement AutoCloseable on TraversalSource
-
TINKERPOP-944 Deprecate Graph.Exceptions.elementNotFound
-
TINKERPOP-1189 SimpleAuthenticator over HttpChannelizer makes Gremlin Server pretty slow and consumes more CPU
-
TINKERPOP-1249 Gremlin driver to periodically issue ping / heartbeat to gremlin server
-
TINKERPOP-1280 VertexPrograms should declare traverser requirements
-
TINKERPOP-1330 by()-modulation for where()
-
TINKERPOP-1409 Make the "null" return in the gremlin console into something more understandable (breaking)
-
TINKERPOP-1431 Documentation generation requires tests to execute on gremlin-python
-
TINKERPOP-1437 Add tests for dedup(Scope) in DedupTest
-
TINKERPOP-1444 Benchmark bytecode→Traversal creation and implement GremlinServer cache if necessary.
-
TINKERPOP-1448 gremlin-python should be Python 2/3 compatible
-
TINKERPOP-1449 Streamline gremlin-python build
-
TINKERPOP-1455 Provide String-based withStrategy()/withoutStrategy() for language variant usage
-
TINKERPOP-1456 Support SubgraphStrategy.vertexProperties().
-
TINKERPOP-1460 Deprecate reconnectInitialDelay in Java driver
-
TINKERPOP-1464 Gryo Serialization for Bytecode
-
TINKERPOP-1469 Get rid of Stream-usage in TraversalHelper
-
TINKERPOP-1470 InlineFilterStrategy should try and P.or() has() children in OrSteps.
-
TINKERPOP-1486 Improve API of RemoteConnection
-
TINKERPOP-1487 Reference Documentation for IO
-
TINKERPOP-1488 Make LazyBarrierStrategy part of the default TraversalStrategies (breaking)
-
TINKERPOP-1492 RemoteStrategy or the RemoteConnection should append a lazy barrier().
-
TINKERPOP-1423 IncidentToAdjacentStrategy should be disabled for tree steps
-
TINKERPOP-1440 g:Path needs a GraphSON deserializer in Gremlin-Python
-
TINKERPOP-1457 Groovy Lambdas for remote traversals not serializable
-
TINKERPOP-1458 Gremlin Server doesn’t return confirmation upon Traversal OpProcessor "close" op
-
TINKERPOP-1466 PeerPressureTest has been failing recently
-
TINKERPOP-1472 RepeatUnrollStrategy does not semi-compile inlined repeat traversal
-
TINKERPOP-1495 Global list deduplication doesn’t work in OLAP
-
TINKERPOP-1500 and/or infix and choose() do not work correctly.
-
TINKERPOP-1511 Remote client addV, V()
This release also includes changes from 3.1.4.
-
Included GraphSON as a default serializer (in addition to Gryo, which was already present) in Gremlin Server if none are defined.
-
Added
gremlin-python
package as a Gremlin language variant in Python. -
Added
Bytecode
which specifies the instructions and arguments used to construct a traversal. -
Created an experimental GraphSON representation of
Bytecode
that will be considered unstable until 3.3.0. -
Added
Translator
which allows from the translation ofBytecode
into some other form (e.g. script,Traversal
, etc.). -
Added
JavaTranslator
,GroovyTranslator
,PythonTranslator
, andJythonTranslator
for translatingBytecode
accordingly. -
Added
TranslationStrategy
togremlin-test
so translators can be tested against the process test suite. -
Added
Traversal.Admin.nextTraverser()
to get the next result in bulk-form (w/ default implementation). -
Added
TraversalSource.getAnonymousTraversalClass()
(w/ default implementation). -
Added
GremlinScriptEngine
interface which specifies aeval(Bytecode, Bindings)
method. -
Deprecated
RemoteGraph
in favor ofTraversalSource.withRemote()
as it is more technically correct to tie a remote traversal to theTraversalSource
than aGraph
instance. -
GremlinGroovyScriptEngine
implementsGremlinScriptEngine
. -
Added
GremlinJythonScriptEngine
which implementsGremlinScriptEngine
. -
Removed support for submitting a Java serialized
Traversal
to Gremlin Server. -
Removed a largely internal feature that supported automatic unrolling of traversers in the Gremlin Driver.
-
Made it possible to directly initialize
OpProcessor
implementations with serverSettings
. -
Included GraphSON as a default serializer (in addition to Gryo, which was already present) in Gremlin Server if none are defined
-
Introduced GraphSON 2.0.
-
Deprecated
embedTypes
on the builder forGraphSONMapper
. -
Bumped to Netty 4.0.40.final.
-
Defaulted the
gremlinPool
setting in Gremlin Server to be zero, which will instructs it to useRuntime.availableProcessors()
for that settings. -
Changed scope of log4j dependencies so that they would only be used in tests and the binary distributions of Gremlin Console and Server.
-
Deprecated
Io.Builder.registry()
in favor of the newly introducedIo.Builder.onMapper()
. -
Added new recipe for "Traversal Induced Values".
-
Fixed a potential leak of a
ReferenceCounted
resource in Gremlin Server. -
Added class registrations for
Map.Entry
implementations toGryoMapper
. -
Added methods to retrieve
Cluster
settings ingremlin-driver
. -
Fixed a severe bug in
SubgraphStrategy
. -
Deprecated
SubgraphStrategy.Builder.vertexCriterion()/edgeCriterion()
in favor ofvertices()/edges()
. -
Fixed a small bug in
StandardVerificationStrategy
that caused verification to fail whenwithPath
was used in conjunction withProfileStep
. -
Added color preferences
-
Added input, result prompt preferences
-
Added multi-line indicator in Gremlin Console
-
TINKERPOP-810 store not visible
-
TINKERPOP-1151 slf4j-log4j12 / log4j is only required for testing (breaking)
-
TINKERPOP-1383 publish-docs.sh might publish to current too early
-
TINKERPOP-1390 IdentityRemoveStrategyTest fails randomly
-
TINKERPOP-1400 SubgraphStrategy introduces infinite recursion if filter has Vertex/Edge steps.
-
TINKERPOP-1405 profile() doesn’t like withPath()
-
TINKERPOP-1037 Gremlin shell output coloring
-
TINKERPOP-1226 Gremlin Console should :clear automagically after "Display stack trace."
-
TINKERPOP-1230 Serialising lambdas for RemoteGraph
-
TINKERPOP-1274 GraphSON Version 2.0
-
TINKERPOP-1278 Implement Gremlin-Python and general purpose language variant test infrastructure
-
TINKERPOP-1285 Gremline console does not differentiate between multi-line and single-line input
-
TINKERPOP-1334 Provide a way to pull gremlin.driver.Cluster connection settings.
-
TINKERPOP-1347 RemoteConnection needs to provide TraversalSideEffects. (breaking)
-
TINKERPOP-1373 Default gremlinPool to number of cores
-
TINKERPOP-1386 Bump to Netty 4.0.40.Final
-
TINKERPOP-1392 Remove support for java serialized Traversal (breaking)
-
TINKERPOP-1394 Fix links in Recipes doc
-
TINKERPOP-1396 Traversal Induced Values Recipe
-
TINKERPOP-1402 Impossible for graph implementations to provide a class resolver for Gryo IO
-
TINKERPOP-1407 Default serializers for Gremlin Server
-
TINKERPOP-1425 Use trailing underscores in gremlin-python
This release also includes changes from 3.1.3.
-
PathProcessor
steps now have the ability (if configured through a strategy) to dropTraverser
path segments. -
MatchStep
in OLTP has a lazy barrier to increase the probability of bulking. -
Added
PathRetractionStrategy
which will remove labeled path segments that will no longer be referenced. -
Added
Path.retract()
to support retracting paths based on labels. -
Optimized
ImmutablePath
andMutablePath
equality code removing significant unnecessary object creation code. -
Bumped to Groovy 2.4.7.
-
Added
RepeatUnrollStrategy
to linearize arepeat()
-traversal if loop amount is known at compile time. -
Fixed a bug in
BranchStep
around child integration duringclone()
. -
Fixed a bug in
AbstractStep
around label set cloning. -
Added
TraversalStrategyPerformanceTest
for verifying the performance gains of optimization-based traversal strategies. -
TraversalExplanation.prettyPrint()
exists which provides word wrapping and GremlinConsole is smart to use console width to controltoString()
. -
TraversalOpProcessor
(RemoteConnection
) usesHaltedTraverserStrategy
metadata to determine detachment procedure prior to returning results. -
Allow DFS paths in
HADOOP_GREMLIN_LIBS
. -
Added a safer serializer infrastructure for use with
SparkGraphComputer
that usesKryoSerializer
and the newGryoRegistrator
. -
Added
HaltedTraverserStrategy
to allow users to get back different element detachments in OLAP. -
Fixed a
NullPointerException
bug around nestedgroup()
-steps in OLAP. -
Fixed a severe bug around halted traversers in a multi-job OLAP traversal chain.
-
Ensure a separation of
GraphComputer
andVertexProgram
configurations inSparkGraphComputer
andGiraphGraphComputer
. -
PeerPressureVertexProgram
now supports dynamic initial vote strength calculations. -
Added
EmptyMemory
for ease of use when no memory exists. -
Updated
VertexComputing.generateProgram()
API to includeMemory
. (breaking) -
ImmutablePath.TailPath
is now serializable likeImmutablePath
. -
Added
ConfigurationCompilerProvider
which allows fine-grained control of some of the internalGremlinGroovyScriptEngine
settings at the Groovy compilation level. -
Intoduced the
application/vnd.gremlin-v1.0+gryo-lite
serialization type to Gremlin Server which users "reference" elements rather than "detached". -
GryoMapper
allows overrides of existing serializers on calls toaddCustom
on the builder. -
Added a traversal style guide to the recipes cookbook.
-
Fixed a bug in master-traversal traverser propagation.
-
Added useful methods for custom
VertexPrograms
to be used withprogram()
-step. -
Increased the test coverage around traverser propagation within a multi-job OLAP traversal.
-
Added tests to validate the status of a transaction immediately following calls to close.
-
Added tests to ensure that threaded transactions cannot be re-used.
-
GraphFilter
helper methods are now more intelligent when determining edge direction/label legality. -
Added
GraphFilterStrategy
to automatically constructGraphFilters
via traversal introspection in OLAP. -
Updated the Gephi Plugin to support Gephi 0.9.x.
-
Increased the testing and scope of
TraversalHelper.isLocalStarGraph()
. -
Changed signature of
get_g_VXlistXv1_v2_v3XX_name
andget_g_VXlistX1_2_3XX_name
ofVertexTest
to take arguments for theTraversal
to be constructed by extending classes. -
Added
VertexProgramInterceptor
interface as a general pattern forGraphComputer
providers to use for bypassingGraphComputer
semantics where appropriate. -
Added
SparkStarBarrierInterceptor
that uses Spark DSL for local star graph traversals that end with aReducingBarrierStep
. -
Added
SparkInterceptorStrategy
which identifies which interceptor to use (if any) given the submittedVertexProgram
. -
Added
SparkSingleIterationStrategy
that does not partition nor cache the graph RDD if the traversal does not message pass. -
Added more helper methods to
TraversalHelper
for handling scoped traversal children. -
Deprecated all "performance" tests based on "JUnit Benchmarks".
-
SparkGraphComputer
no longer shuffles empty views or empty outgoing messages in order to save time and space. -
TraversalVertexProgram
no longer maintains empty halted traverser properties in order to save space. -
Added
List<P<V>>
constructors toConnectiveP
,AndP
, andOrP
for ease of use. -
Added support for interactive (
-i
) and execute (-e
) modes for Gremlin Console. -
Displayed line numbers for script execution failures of
-e
and-i
. -
Improved messaging around script execution errors in Gremlin Console.
-
Added "help" support to Gremlin Console with the
-h
flag. -
Added options to better control verbosity of Gremlin Console output with
-Q
,-V
and-D
. -
Deprecated the
ScriptExecutor
- the-e
option togremlin.sh
is now handled byConsole
. -
Traversal
now allows cancellation withThread.interrupt()
. -
Added a Gremlin language variant tutorial teaching people how to embed Gremlin in a host programming language.