You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2019/07/23 17:39:00 UTC

[tinkerpop] branch TINKERPOP-2133 updated (77a6e3e -> 99aa286)

This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a change to branch TINKERPOP-2133
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git.


 discard 77a6e3e  TINKERPOP-2133 Add changelog entry
 discard eb822fb  resolved wildcard import
 discard 3a1a956  implemented index lookup for Text predicates
     add c5583e8  TINKERPOP-2259 Default java server/driver serialization to GraphBinary
     add 5679954  Merge pull request #1160 from apache/TINKERPOP-2259
     add b355d87  TINKERPOP-2265 Deprecate remote Traversal.sideEffects
     add 73fd486  Merge branch 'tp33' into tp34
     add 90e538a  Merge branch 'tp34'
     add c1a4272  Added hasNext() for gremlin-javascript
     add 233eb2d  TINKERPOP-1921 Add HasNext() to .NET
     add 9f369ed  TINKERPOP-1921 Added changelog and upgrade docs for hasNext()
     add 39e9a4c  Merge branch 'TINKERPOP-1921' into tp33
     add 2f1e7d1  Merge branch 'tp33' into tp34
     add 430c5e1  Merge branch 'tp34'
     add 7ce795b  added .pytest_cache to git ignore CTR
     add a211c9a  Merge branch 'tp33' into tp34
     add 706aad1  Merge branch 'tp34'
     add d0bb42b  Added more python project related ignores for git CTR
     add 18e3b06  Merge branch 'tp33' into tp34
     add d8059a4  Merge branch 'tp34'
     new 13f70f5  implemented index lookup for Text predicates
     new ddd3ea2  resolved wildcard import
     new 99aa286  TINKERPOP-2133 Add changelog entry

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (77a6e3e)
            \
             N -- N -- N   refs/heads/TINKERPOP-2133 (99aa286)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |  2 +
 CHANGELOG.asciidoc                                 |  6 +++
 docs/src/dev/io/gryo.asciidoc                      |  3 +-
 docs/src/dev/provider/index.asciidoc               | 22 +++-----
 docs/src/reference/gremlin-applications.asciidoc   | 21 ++++----
 docs/src/reference/gremlin-variants.asciidoc       | 25 ++++-----
 docs/src/reference/intro.asciidoc                  | 12 +++--
 docs/src/reference/the-traversal.asciidoc          | 14 +----
 .../gremlin-language-variants/index.asciidoc       |  4 --
 docs/src/upgrade/release-3.3.x.asciidoc            | 40 ++++++++++++++
 docs/src/upgrade/release-3.5.x.asciidoc            | 17 ++++++
 .../src/test/resources/gremlin-server.yaml         |  3 +-
 .../AbstractRemoteTraversalSideEffects.java        |  4 ++
 .../remote/traversal/EmbeddedRemoteTraversal.java  |  4 ++
 .../EmbeddedRemoteTraversalSideEffects.java        |  4 ++
 .../process/remote/traversal/RemoteTraversal.java  |  3 ++
 .../traversal/RemoteTraversalSideEffects.java      |  4 ++
 .../gremlin/process/traversal/Traversal.java       |  8 ++-
 .../src/Gremlin.Net/Driver/Connection.cs           |  4 +-
 .../Driver/Remote/DriverRemoteTraversal.cs         |  3 ++
 .../Remote/DriverRemoteTraversalSideEffects.cs     |  2 +
 .../Driver/ResultsAggregation/AggregatorFactory.cs |  2 +
 .../Driver/SingleMessageResultReceiver.cs          |  2 +
 gremlin-dotnet/src/Gremlin.Net/Driver/Tokens.cs    |  9 ++++
 .../Process/Traversal/DefaultTraversal.cs          | 32 +++++++++++-
 .../Gremlin.Net/Process/Traversal/ITraversal.cs    |  8 +++
 .../Process/Traversal/ITraversalSideEffects.cs     |  1 +
 gremlin-dotnet/src/Gremlin.Net/Structure/Graph.cs  |  2 +-
 .../Process/Traversal/TraversalTests.cs            | 18 +++++++
 .../apache/tinkerpop/gremlin/driver/Cluster.java   |  2 +-
 .../tinkerpop/gremlin/driver/ResultQueue.java      |  3 ++
 .../apache/tinkerpop/gremlin/driver/Settings.java  |  7 +--
 .../apache/tinkerpop/gremlin/driver/Tokens.java    | 61 +++++++++++++++++++++-
 .../driver/handler/NioGremlinRequestEncoder.java   |  8 +--
 .../driver/remote/DriverRemoteTraversal.java       |  6 +++
 .../remote/DriverRemoteTraversalSideEffects.java   |  4 ++
 .../driver/ser/GraphBinaryMessageSerializerV1.java |  5 +-
 .../tinkerpop/gremlin/driver/ser/Serializers.java  | 21 +-------
 .../driver/ser/binary/TypeSerializerRegistry.java  | 19 ++++++-
 .../tinkerpop/gremlin/driver/simple/NioClient.java |  4 +-
 .../gremlin/driver/simple/WebSocketClient.java     |  5 +-
 gremlin-javascript/glv/TraversalSource.template    | 12 +++++
 .../gremlin-javascript/lib/process/traversal.js    | 12 +++++
 .../test/integration/traversal-test.js             |  9 ++--
 .../gremlin-javascript/test/unit/traversal-test.js | 36 +++++++++++++
 gremlin-server/conf/gremlin-server-classic.yaml    |  2 -
 gremlin-server/conf/gremlin-server-modern-py.yaml  |  2 -
 .../conf/gremlin-server-modern-readonly.yaml       |  2 -
 gremlin-server/conf/gremlin-server-modern.yaml     |  2 -
 gremlin-server/conf/gremlin-server-neo4j.yaml      |  2 -
 gremlin-server/conf/gremlin-server-secure.yaml     |  2 -
 gremlin-server/conf/gremlin-server-spark.yaml      |  2 -
 gremlin-server/conf/gremlin-server.yaml            |  2 -
 .../gremlin/server/AbstractChannelizer.java        |  6 ---
 .../handler/NioGremlinBinaryRequestDecoder.java    |  5 +-
 .../handler/NioGremlinResponseFrameEncoder.java    |  2 +-
 .../gremlin/server/handler/ServerSerializers.java  | 17 +++---
 .../handler/WsGremlinBinaryRequestDecoder.java     |  2 +-
 .../handler/WsGremlinCloseRequestDecoder.java      |  3 +-
 .../handler/WsGremlinTextRequestDecoder.java       |  2 +-
 .../server/op/traversal/TraversalOpProcessor.java  | 20 +++++++
 .../driver/ClientConnectionIntegrateTest.java      |  2 +
 .../AbstractGremlinServerIntegrationTest.java      |  2 +-
 .../gremlin/server/GremlinDriverIntegrateTest.java | 31 ++++++++---
 pom.xml                                            |  3 +-
 65 files changed, 445 insertions(+), 159 deletions(-)


[tinkerpop] 03/03: TINKERPOP-2133 Add changelog entry

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-2133
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 99aa286f21f06f21b21bea9baf31372122026ddc
Author: Stephen Mallette <sp...@genoprime.com>
AuthorDate: Tue Jul 16 18:45:51 2019 -0400

    TINKERPOP-2133 Add changelog entry
---
 CHANGELOG.asciidoc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 30d127d..6cbd249 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -37,10 +37,11 @@ This release also includes changes from <<release-3-4-3, 3.4.3>>.
 * Removed previously deprecated `VertexProgram` related infrastructure.
 * Removed previously deprecated SSL settings: `keyCertChainFile`, `keyFile`, `keyPassword` and `trustCertChainFile` and related infrastructure.
 * Removed previously deprecated `PropertyMapStep` constructor and `isIncludeTokens`.
-* Removed previously dperecated `StarGraph.builder()` and `StarGraph.Builder.create()`.
+* Removed previously deprecated `StarGraph.builder()` and `StarGraph.Builder.create()`.
 * Removed previously deprecated `AbstractOpProcessor.generateMetaData(ChannelHandlerContext, RequestMessage, ResponseStatusCode, Iterator)`
 * Removed previously deprecated `BulkDumperVertexProgram` and `BulkLoaderVertexProgram`.
-* Upgrade to Neo4j 3.4.11
+* Added support for `TextP` in Neo4j using its string search functions.
+* Upgrade to Neo4j 3.4.11.
 
 == TinkerPop 3.4.0 (Avant-Gremlin Construction #3 for Theremin and Flowers)
 


[tinkerpop] 02/03: resolved wildcard import

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-2133
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit ddd3ea24108de047822f1fd7d7406f34414e560e
Author: Andrey Skorikov <an...@codecentric.de>
AuthorDate: Fri Jan 18 14:37:07 2019 +0100

    resolved wildcard import
---
 .../gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java      | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java
index ea893ac..d36418b 100644
--- a/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java
+++ b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java
@@ -32,7 +32,11 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.ElementHelper;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
-import org.neo4j.tinkerpop.api.*;
+import org.neo4j.tinkerpop.api.Neo4jDirection;
+import org.neo4j.tinkerpop.api.Neo4jGraphAPI;
+import org.neo4j.tinkerpop.api.Neo4jNode;
+import org.neo4j.tinkerpop.api.Neo4jRelationship;
+import org.neo4j.tinkerpop.api.Neo4jStringSearchMode;
 
 import java.util.Iterator;
 import java.util.List;


[tinkerpop] 01/03: implemented index lookup for Text predicates

Posted by sp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

spmallette pushed a commit to branch TINKERPOP-2133
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git

commit 13f70f562ab37b0285ac001142e7db5fbcb4a50d
Author: Andrey Skorikov <an...@codecentric.de>
AuthorDate: Wed Jan 16 13:00:33 2019 +0100

    implemented index lookup for Text predicates
---
 .../structure/trait/NoMultiNoMetaNeo4jTrait.java   | 27 +++++++++++++++++-----
 1 file changed, 21 insertions(+), 6 deletions(-)

diff --git a/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java
index 6698887..ea893ac 100644
--- a/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java
+++ b/neo4j-gremlin/src/main/java/org/apache/tinkerpop/gremlin/neo4j/structure/trait/NoMultiNoMetaNeo4jTrait.java
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jHelper;
 import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertex;
 import org.apache.tinkerpop.gremlin.neo4j.structure.Neo4jVertexProperty;
 import org.apache.tinkerpop.gremlin.process.traversal.Compare;
+import org.apache.tinkerpop.gremlin.process.traversal.Text;
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer;
 import org.apache.tinkerpop.gremlin.structure.Property;
 import org.apache.tinkerpop.gremlin.structure.T;
@@ -31,13 +32,12 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
 import org.apache.tinkerpop.gremlin.structure.VertexProperty;
 import org.apache.tinkerpop.gremlin.structure.util.ElementHelper;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
-import org.neo4j.tinkerpop.api.Neo4jDirection;
-import org.neo4j.tinkerpop.api.Neo4jNode;
-import org.neo4j.tinkerpop.api.Neo4jRelationship;
+import org.neo4j.tinkerpop.api.*;
 
 import java.util.Iterator;
 import java.util.List;
 import java.util.Optional;
+import java.util.function.BiPredicate;
 import java.util.function.Predicate;
 
 /**
@@ -168,10 +168,25 @@ public final class NoMultiNoMetaNeo4jTrait implements Neo4jTrait {
 
         if (label.isPresent()) {
             // find a vertex by label and key/value
+            String labelValue = label.get();
+            Neo4jGraphAPI baseGraph = graph.getBaseGraph();
             for (final HasContainer hasContainer : hasContainers) {
-                if (Compare.eq == hasContainer.getBiPredicate() && !hasContainer.getKey().equals(T.label.getAccessor())) {
-                    if (graph.getBaseGraph().hasSchemaIndex(label.get(), hasContainer.getKey())) {
-                        return IteratorUtils.stream(graph.getBaseGraph().findNodes(label.get(), hasContainer.getKey(), hasContainer.getValue()))
+                String key = hasContainer.getKey();
+                Object value = hasContainer.getValue();
+                if (!key.equals(T.label.getAccessor()) && baseGraph.hasSchemaIndex(labelValue, key)) {
+                    BiPredicate<?, ?> predicate = hasContainer.getBiPredicate();
+                    Iterable<Neo4jNode> nodes = null;
+                    if (Compare.eq == predicate) {
+                        nodes = baseGraph.findNodes(labelValue, key, value);
+                    } else if (Text.containing == predicate) {
+                        nodes = baseGraph.findNodes(labelValue, key, value.toString(), Neo4jStringSearchMode.CONTAINS);
+                    } else if (Text.startingWith == predicate) {
+                        nodes = baseGraph.findNodes(labelValue, key, value.toString(), Neo4jStringSearchMode.PREFIX);
+                    } else if (Text.endingWith == predicate) {
+                        nodes = baseGraph.findNodes(labelValue, key, value.toString(), Neo4jStringSearchMode.SUFFIX);
+                    }
+                    if (nodes != null) {
+                        return IteratorUtils.stream(nodes)
                                 .map(node -> (Vertex) new Neo4jVertex(node, graph))
                                 .filter(vertex -> HasContainer.testAll(vertex, hasContainers)).iterator();
                     }