You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2016/11/04 12:10:02 UTC

[1/4] tinkerpop git commit: UnfoldStep now handles array unfolding.

Repository: tinkerpop
Updated Branches:
  refs/heads/master 9c8709276 -> 154474464


UnfoldStep now handles array unfolding.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/1ffcbfbf
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/1ffcbfbf
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/1ffcbfbf

Branch: refs/heads/master
Commit: 1ffcbfbf62cc382883b35934f8fbf751455b0fb7
Parents: ce1099d
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Nov 1 12:15:04 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Nov 1 12:15:04 2016 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                               |  1 +
 .../process/traversal/step/map/UnfoldStep.java   |  3 +++
 .../traversal/step/map/UnfoldStepTest.java       | 19 +++++++++++++++++++
 3 files changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1ffcbfbf/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 344cb51..75ec065 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -26,6 +26,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* `UnfoldStep` now supports unfolding of arrays. (*breaking*)
 * Removed all performance tests that were not part of `gremlin-benchmark`.
 * Removed dependency on `junit-benchmarks` and it's related reference to `h2`.
 * Moved the source for the "home page" into the repository under `/site` so that it easier to accept contributions.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1ffcbfbf/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
index 382815e..2fcc490 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.util.iterator.ArrayIterator;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
 import java.util.Collections;
@@ -46,6 +47,8 @@ public final class UnfoldStep<S, E> extends FlatMapStep<S, E> {
             return ((Iterable) s).iterator();
         else if (s instanceof Map)
             return ((Map) s).entrySet().iterator();
+        else if (s.getClass().isArray())
+            return new ArrayIterator((Object[])s);
         else
             return IteratorUtils.of((E) s);
     }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/1ffcbfbf/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
index aa7cf3d..46c9450 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
@@ -21,10 +21,14 @@ package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__;
 import org.apache.tinkerpop.gremlin.process.traversal.step.StepTest;
+import org.junit.Test;
 
 import java.util.Collections;
 import java.util.List;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
 /**
  * @author Daniel Kuppitz (http://gremlin.guru)
  */
@@ -34,4 +38,19 @@ public class UnfoldStepTest extends StepTest {
     protected List<Traversal> getTraversals() {
         return Collections.singletonList(__.unfold());
     }
+
+    @Test
+    public void shouldSupportArrayIteration() {
+        final Traversal<String[], String> t1 = __.<String[]>inject(new String[]{"a", "b", "c"}).unfold();
+        assertEquals("a", t1.next());
+        assertEquals("b", t1.next());
+        assertEquals("c", t1.next());
+        assertFalse(t1.hasNext());
+        //
+        final Traversal<Object[], Object> t2 = __.<Object[]>inject(new Object[]{"a", "b", 3}).unfold();
+        assertEquals("a", t2.next());
+        assertEquals("b", t2.next());
+        assertEquals(3, t2.next());
+        assertFalse(t2.hasNext());
+    }
 }


[2/4] tinkerpop git commit: support for primitive array unfolding. Wow -- Java sucks. cc/ @twilmes.

Posted by ok...@apache.org.
support for primitive array unfolding. Wow -- Java sucks. cc/ @twilmes.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b0b65582
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b0b65582
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b0b65582

Branch: refs/heads/master
Commit: b0b65582d0a0d644b15fc61da64c103288d36841
Parents: 1ffcbfb
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Nov 1 15:44:53 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Nov 1 15:44:53 2016 -0600

----------------------------------------------------------------------
 .../process/traversal/step/map/UnfoldStep.java       | 15 ++++++++++++++-
 .../process/traversal/step/map/UnfoldStepTest.java   |  9 +++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b0b65582/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
index 2fcc490..c96f414 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
@@ -24,6 +24,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequire
 import org.apache.tinkerpop.gremlin.util.iterator.ArrayIterator;
 import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
 
+import java.lang.reflect.Array;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map;
@@ -48,7 +49,7 @@ public final class UnfoldStep<S, E> extends FlatMapStep<S, E> {
         else if (s instanceof Map)
             return ((Map) s).entrySet().iterator();
         else if (s.getClass().isArray())
-            return new ArrayIterator((Object[])s);
+            return handleArrays(s);
         else
             return IteratorUtils.of((E) s);
     }
@@ -57,4 +58,16 @@ public final class UnfoldStep<S, E> extends FlatMapStep<S, E> {
     public Set<TraverserRequirement> getRequirements() {
         return Collections.singleton(TraverserRequirement.OBJECT);
     }
+
+    private final Iterator<E> handleArrays(Object obj) {
+        if (obj instanceof Object[]) {
+            return new ArrayIterator<>((E[]) obj);
+        } else {
+            int len = Array.getLength(obj);
+            final Object[] out = new Object[len];
+            for (int i = 0; i < len; i++)
+                out[i] = Array.get(obj, i);
+            return new ArrayIterator<>((E[]) out);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b0b65582/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
index 46c9450..6179c42 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStepTest.java
@@ -52,5 +52,14 @@ public class UnfoldStepTest extends StepTest {
         assertEquals("b", t2.next());
         assertEquals(3, t2.next());
         assertFalse(t2.hasNext());
+        //
+        final Traversal<Object[], Object> t3 = __.<Object[]>inject(new Object[]{0, 1, 2, new int[]{3, 4}}).unfold().unfold();
+        assertEquals(0, t3.next());
+        assertEquals(1, t3.next());
+        assertEquals(2, t3.next());
+        assertEquals(3, t3.next());
+        assertEquals(4, t3.next());
+        assertFalse(t3.hasNext());
+
     }
 }


[4/4] tinkerpop git commit: Merge branch 'TINKERPOP-1211'

Posted by ok...@apache.org.
Merge branch 'TINKERPOP-1211'


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/15447446
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/15447446
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/15447446

Branch: refs/heads/master
Commit: 15447446440f314e7880fe89fed13ed06c09f7e8
Parents: 9c87092 0108533
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Nov 4 06:09:56 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Nov 4 06:09:56 2016 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../process/traversal/step/map/UnfoldStep.java  | 16 +++++++++++
 .../traversal/step/map/UnfoldStepTest.java      | 28 ++++++++++++++++++++
 3 files changed, 45 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/15447446/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index 1c9eaa6,75ec065..50a942c
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -26,13 -26,7 +26,14 @@@ image::https://raw.githubusercontent.co
  TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 +* Removed previously deprecated `Console` constructor that took a `String` as an argument from `gremlin-console`.
 +* Removed previously deprecated `ConcurrentBindings` from `gremlin-groovy`.
 +* Removed previously deprecated `ScriptExecutor` from `gremlin-groovy`.
 +* Removed previously deprecated `SandboxExtension` from `gremlin-groovy`.
 +* Removed previously deprecated `GremlinGroovyScriptEngine` constructor that took `ImportCustomizerProvider` as an argument from `gremlin-groovy`.
 +* Removed previously deprecated `GremlinGroovyScriptEngine#plugins()` from `gremlin-groovy`.
 +* Added `OptionalStep` for use with `optional()` to better handle issues associated with branch side-effects.
+ * `UnfoldStep` now supports unfolding of arrays. (*breaking*)
  * Removed all performance tests that were not part of `gremlin-benchmark`.
  * Removed dependency on `junit-benchmarks` and it's related reference to `h2`.
  * Moved the source for the "home page" into the repository under `/site` so that it easier to accept contributions.


[3/4] tinkerpop git commit: minor nothings -- final and better argument name.

Posted by ok...@apache.org.
minor nothings -- final and better argument name.


Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/01085339
Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/01085339
Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/01085339

Branch: refs/heads/master
Commit: 01085339877e1931f66cff3a2b358513e7c09c15
Parents: b0b6558
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Tue Nov 1 15:46:49 2016 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Tue Nov 1 15:46:49 2016 -0600

----------------------------------------------------------------------
 .../process/traversal/step/map/UnfoldStep.java        | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/01085339/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
index c96f414..cb4164c 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/UnfoldStep.java
@@ -59,15 +59,15 @@ public final class UnfoldStep<S, E> extends FlatMapStep<S, E> {
         return Collections.singleton(TraverserRequirement.OBJECT);
     }
 
-    private final Iterator<E> handleArrays(Object obj) {
-        if (obj instanceof Object[]) {
-            return new ArrayIterator<>((E[]) obj);
+    private final Iterator<E> handleArrays(final Object array) {
+        if (array instanceof Object[]) {
+            return new ArrayIterator<>((E[]) array);
         } else {
-            int len = Array.getLength(obj);
-            final Object[] out = new Object[len];
+            int len = Array.getLength(array);
+            final Object[] objectArray = new Object[len];
             for (int i = 0; i < len; i++)
-                out[i] = Array.get(obj, i);
-            return new ArrayIterator<>((E[]) out);
+                objectArray[i] = Array.get(array, i);
+            return new ArrayIterator<>((E[]) objectArray);
         }
     }
 }