Merge branch 'TINKERPOP-1143'



Branch: refs/heads/master
Commit: 1c10bf5260a6a56a5f29dd7ac57912dd1c0ed22a
Parents: 4e5c30e 11519d5
Author: Stephen Mallette <>
Authored: Mon Apr 16 08:00:10 2018 -0400
Committer: Stephen Mallette <>
Committed: Mon Apr 16 08:00:10 2018 -0400

 CHANGELOG.asciidoc                              |   1 +
 docs/src/upgrade/release-3.4.x.asciidoc         |  30 +++-
 .../process/traversal/      | 106 ------------
 .../process/traversal/  |   4 +-
 .../engine/         | 171 -------------------
 .../engine/         | 104 -----------
 .../process/traversal/step/map/   |  20 +--
 .../tinkerpop/gremlin/structure/      |   7 -
 .../traversal/step/map/       |   7 +-
 .../process/traversal/      |  34 ++++
 10 files changed, 78 insertions(+), 406 deletions(-)
diff --cc CHANGELOG.asciidoc
index d63e91a,d632f10..9ee873e
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -25,11 -25,10 +25,12 @@@ NEED AND IMAG
  This release also includes changes from <<release-3-3-2, 3.3.2>>.
 +* `min()` and `max()` now support all types implementing `Comparable`.
  * Change the `toString()` of `Path` to be standardized as other graph 
elements are.
 +* `hadoop-gremlin` no longer generates a test artifact.
  * Fixed a bug in `ReducingBarrierStep`, that returned the provided seed value 
despite no elements being available.
  * Changed the order of `select()` scopes. The order is now: maps, 
side-effects, paths.
+ * Moved `TraversalEngine` to `gremlin-test` as it has long been only used in 
testing infrastructure.
  * Removed support for Giraph.
  == TinkerPop 3.3.0 (Gremlin Symphony #40 in G Minor)
diff --cc docs/src/upgrade/release-3.4.x.asciidoc
index f29df13,b055ead..f87d589
--- a/docs/src/upgrade/release-3.4.x.asciidoc
+++ b/docs/src/upgrade/release-3.4.x.asciidoc
@@@ -37,39 -37,19 +37,52 @@@ needs
  See: link:[TINKERPOP-1930]
 +==== Improvements in `min()` and `max()`
 +Previously `min()` and `max()` were only working for numeric values. This has 
been changed and these steps can now operate over any `Comparable` value. The 
common workaround was the combination
 +of `order().by()` and `limit()` as shown here:
 +gremlin> g.V().values('name').order().by().limit(1)      // workaround for 
 +gremlin> g.V().values('name').order().by(decr).limit(1)  // workaround for 
 +Any attempt to use `min()` or `max()` on non-numeric values lead to an 
 +gremlin> g.V().values('name').min()
 +java.lang.String cannot be cast to java.lang.Number
 +Type ':help' or ':h' for help.
 +Display stack trace? [yN]
 +With the changes in this release these kind of queries became a lot easier:
 +gremlin> g.V().values('name').min()
 +gremlin> g.V().values('name').max()
+ ==== Deprecation Removal
+ The following deprecated classes, methods or fields have been removed in this 
+ * `gremlin-core`
+ ** `org.apache.tinkerpop.gremlin.process.traversal.engine.*`
+ ** `org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine`
+ Please see the javadoc deprecation notes or upgrade documentation specific to 
when the deprecation took place to
+ understand how to resolve this breaking change.
+ See: link:[TINKERPOP-1143]
  ==== Modifications to reducing barrier steps
  The behavior of `min()`, `max()`, `mean()` and `sum()` has been modified to 
return no result if there's no input. Previously these steps yielded the 
internal seed value:
@@@ -158,22 -138,19 +171,37 @@@ See: link:
  === Upgrading for Providers
- ==== Graph Providers
+ ==== Graph Database Providers
 +===== Removed hadoop-gremlin Test Artifact
 +The `hadoop-gremlin` module no longer generates a test jar that can be used 
as a test dependency in other modules.
 +Generally speaking, that approach tends to be a bad practice and can cause 
build problems with Maven that aren't always
 +obvious to troubleshoot. With the removal of `giraph-gremlin` for 3.4.0, it 
seemed even less useful to have this
 +test artifact present. All tests are still present. The follow provides a 
basic summary of how this refactoring
 +* A new `AbstractFileGraphProvider` was created in `gremlin-test` which 
provided a lot of the features that
 +`HadoopGraphProvider` was exposing. Both `HadoopGraphProvider` and 
`SparkHadoopGraphProvider` extend from that class
 +* `ToyIoRegistry` and related classes were moved to `gremlin-test`.
 +* The various tests that validated capabilities of `Storage` have been moved 
to `spark-gremlin` and are part of those
 +tests now. Obviously, that makes those tests specific to Spark testing now. 
If that location creates a problem for some
 +reason, that decision can be revisited at some point.
 +See: link:[TINKERPOP-1410]
+ ===== TraversalEngine Moved
+ The `TraversalEngine` interface was deprecated in 3.2.0 along with all 
related methods that used it and classes that
+ implemented it. It was replaced by the `Computer` interface and provided a 
much nicer way to plug different
+ implementations of `Computer` into a traversal. `TraversalEngine` was never 
wholly removed however as it had some deep
+ dependencies in the inner workings of the test suite. That infrastructure has 
largely remained as is until now.
+ As of 3.4.0, `TraversalEngine` is no longer in `gremlin-core` and can instead 
be found in `gremlin-test` as it is
+ effectively a "test-only" component and serves no other real function. As 
explained in the javadocs going back to
+ 3.2.0, providers should implement the `Computer` class and use that instead. 
At this point, graph providers should have
+ long ago moved to the `Computer` infrastructure as methods for constructing a 
`TraversalSource` with a
+ `TraversalEngine` were long ago removed.
 -See: link:[TINKERPOP-1143]
++See: link:[TINKERPOP-1143]

Reply via email to