Merge branch 'TINKERPOP-1143'
Conflicts:
docs/src/upgrade/release-3.4.x.asciidoc
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1c10bf52
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1c10bf52
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1c10bf52
Branch: refs/heads/master
Commit: 1c10bf5260a6a56a5f29dd7ac57912dd1c0ed22a
Parents: 4e5c30e 11519d5
Author: Stephen Mallette <[email protected]>
Authored: Mon Apr 16 08:00:10 2018 -0400
Committer: Stephen Mallette <[email protected]>
Committed: Mon Apr 16 08:00:10 2018 -0400
----------------------------------------------------------------------
CHANGELOG.asciidoc | 1 +
docs/src/upgrade/release-3.4.x.asciidoc | 30 +++-
.../process/traversal/TraversalEngine.java | 106 ------------
.../process/traversal/TraversalStrategies.java | 4 +-
.../engine/ComputerTraversalEngine.java | 171 -------------------
.../engine/StandardTraversalEngine.java | 104 -----------
.../process/traversal/step/map/MatchStep.java | 20 +--
.../tinkerpop/gremlin/structure/Graph.java | 7 -
.../traversal/step/map/MatchStepTest.java | 7 +-
.../process/traversal/TraversalEngine.java | 34 ++++
10 files changed, 78 insertions(+), 406 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1c10bf52/CHANGELOG.asciidoc
----------------------------------------------------------------------
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)
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1c10bf52/docs/src/upgrade/release-3.4.x.asciidoc
----------------------------------------------------------------------
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:https://issues.apache.org/jira/browse/TINKERPOP-1930[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:
+
+[source,groovy]
+----
+gremlin> g.V().values('name').order().by().limit(1) // workaround for
min()
+==>josh
+gremlin> g.V().values('name').order().by(decr).limit(1) // workaround for
max()
+==>vadas
+----
+
+Any attempt to use `min()` or `max()` on non-numeric values lead to an
exception:
+
+[source,groovy]
+----
+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:
+
+[source,groovy]
+----
+gremlin> g.V().values('name').min()
+==>josh
+gremlin> g.V().values('name').max()
+==>vadas
+----
+
+ ==== Deprecation Removal
+
+ The following deprecated classes, methods or fields have been removed in this
version:
+
+ * `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:https://issues.apache.org/jira/browse/TINKERPOP-1143[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:https://issues.apache.org/jir
=== 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
+occurred:
+
+* 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
+now.
+* `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:https://issues.apache.org/jira/browse/TINKERPOP-1410[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:https://issues.apache.org/jira/browse/TINKERPOP-1143[TINKERPOP-1143]
++See: link:https://issues.apache.org/jira/browse/TINKERPOP-1143[TINKERPOP-1143]