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 2017/07/14 14:58:04 UTC

[1/3] tinkerpop git commit: removed deprecated groupV3d0() step and its associated test cases and support classes.

Repository: tinkerpop
Updated Branches:
  refs/heads/master caa5e5ba6 -> 489533ff3


removed deprecated groupV3d0() step and its associated test cases and support classes.


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

Branch: refs/heads/master
Commit: 05ed3c29396d6742e731b8edc137371e96d401dc
Parents: c3cfaea
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Jul 10 10:15:11 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Jul 10 10:15:11 2017 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 docs/src/upgrade/release-3.3.x.asciidoc         |   2 +
 .../traversal/dsl/graph/GraphTraversal.java     |  23 --
 .../gremlin/process/traversal/dsl/graph/__.java |  16 --
 .../traversal/step/map/GroupStepV3d0.java       | 172 --------------
 .../sideEffect/GroupSideEffectStepV3d0.java     | 151 ------------
 .../process/traversal/util/TraversalHelper.java |  14 --
 .../gremlin/structure/io/gryo/GryoVersion.java  |   5 +-
 .../sideEffect/GroupSideEffectStepV3d0Test.java |  47 ----
 .../gremlin/process/ProcessComputerSuite.java   |   2 -
 .../gremlin/process/ProcessStandardSuite.java   |   2 -
 .../step/sideEffect/GroupTestV3d0.java          | 236 -------------------
 .../gremlin/hadoop/structure/HadoopGraph.java   |  10 -
 13 files changed, 5 insertions(+), 676 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index bfdd43d..c285e53 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)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* Removed previously deprecated `GraphTraversal.groupV3d0()` and respective `GroupSideEffectStepV3d0` and `GroupStepV3d0`.
 * Removed previously deprecated `TraversalSource.Builder` class.
 * Removed previously deprecated `ConnectiveP`, `AndP`, `OrP` constructors.
 * Removed previously deprecated `TraversalScriptFunction` class.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/docs/src/upgrade/release-3.3.x.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc
index d729da8..3193906 100644
--- a/docs/src/upgrade/release-3.3.x.asciidoc
+++ b/docs/src/upgrade/release-3.3.x.asciidoc
@@ -211,6 +211,8 @@ The following deprecated classes, methods or fields have been removed in this ve
 ** `org.apache.tinkerpop.gremlin.process.traversal.util.OrP(P...)`
 ** `org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptFunction`
 ** `org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper`
+** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph#groupV3d0(String)`
+** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph#groupV3d0()`
 ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#supportsAddProperty()`
 ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#FEATURE_ADD_PROPERTY`
 ** `org.apache.tinkerpop.gremlin.structure.Graph.OptIn#SUITE_GROOVY_PROCESS_STANDARD`

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
index 6254b0a..ada72e8 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
@@ -78,7 +78,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GraphStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupCountStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStepV3d0;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.IdStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.LabelStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.LambdaCollectingBarrierStep;
@@ -118,7 +117,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AddPropert
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountSideEffectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupSideEffectStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupSideEffectStepV3d0;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.IdentityStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.LambdaSideEffectStep;
@@ -965,16 +963,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
     }
 
     /**
-     * @since 3.0.0-incubating
-     * @deprecated As of release 3.1.0, replaced by {@link #group()}
-     */
-    @Deprecated
-    public default <K, V> GraphTraversal<S, Map<K, V>> groupV3d0() {
-        this.asAdmin().getBytecode().addStep(Symbols.groupV3d0);
-        return this.asAdmin().addStep(new GroupStepV3d0<>(this.asAdmin()));
-    }
-
-    /**
      * Counts the number of times a particular objects has been part of a traversal, returning a {@code Map} where the
      * object is the key and the value is the count.
      *
@@ -1985,15 +1973,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
     }
 
     /**
-     * @since 3.0.0-incubating
-     * @deprecated As of release 3.1.0, replaced by {@link #group(String)}.
-     */
-    public default GraphTraversal<S, E> groupV3d0(final String sideEffectKey) {
-        this.asAdmin().getBytecode().addStep(Symbols.groupV3d0, sideEffectKey);
-        return this.asAdmin().addStep(new GroupSideEffectStepV3d0<>(this.asAdmin(), sideEffectKey));
-    }
-
-    /**
      * Counts the number of times a particular objects has been part of a traversal, returning a {@code Map} where the
      * object is the key and the value is the count.
      *
@@ -2785,8 +2764,6 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> {
         public static final String min = "min";
         public static final String mean = "mean";
         public static final String group = "group";
-        @Deprecated
-        public static final String groupV3d0 = "groupV3d0";
         public static final String groupCount = "groupCount";
         public static final String tree = "tree";
         public static final String addV = "addV";

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
index 270eef3..851f285 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
@@ -482,14 +482,6 @@ public class __ {
     }
 
     /**
-     * @see GraphTraversal#groupV3d0()
-     */
-    @Deprecated
-    public static <A, K, V> GraphTraversal<A, Map<K, V>> groupV3d0() {
-        return __.<A>start().groupV3d0();
-    }
-
-    /**
      * @see GraphTraversal#groupCount()
      */
     public static <A, K> GraphTraversal<A, Map<K, Long>> groupCount() {
@@ -932,14 +924,6 @@ public class __ {
     }
 
     /**
-     * @deprecated As of release 3.1.0, replaced by {@link #group(String)}.
-     */
-    @Deprecated
-    public static <A> GraphTraversal<A, A> groupV3d0(final String sideEffectKey) {
-        return __.<A>start().groupV3d0(sideEffectKey);
-    }
-
-    /**
      * @see GraphTraversal#groupCount(String)
      */
     public static <A> GraphTraversal<A, A> groupCount(final String sideEffectKey) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
deleted file mode 100644
index d27764a..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/GroupStepV3d0.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-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.step.ByModulating;
-import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.ReducingBarrierStep;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil;
-import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
-import org.apache.tinkerpop.gremlin.util.function.HashMapSupplier;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.function.BinaryOperator;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @deprecated As of release 3.1.0, replaced by {@link GroupStep}.
- */
-public final class GroupStepV3d0<S, K, V, R> extends ReducingBarrierStep<S, Map<K, R>> implements TraversalParent, ByModulating {
-
-    private char state = 'k';
-    private Traversal.Admin<S, K> keyTraversal = null;
-    private Traversal.Admin<S, V> valueTraversal = null;
-    private Traversal.Admin<Collection<V>, R> reduceTraversal = null;
-
-    public GroupStepV3d0(final Traversal.Admin traversal) {
-        super(traversal);
-        this.setSeedSupplier(HashMapSupplier.instance());
-        this.setReducingBiOperator(GroupBiOperatorV3d0.instance());
-    }
-
-    @Override
-    public Map<K, R> projectTraverser(final Traverser.Admin<S> traverser) {
-        final K key = TraversalUtil.applyNullable(traverser, this.keyTraversal);
-        final BulkSet<V> values = new BulkSet<>();
-        final V value = TraversalUtil.applyNullable(traverser, this.valueTraversal);
-        TraversalHelper.addToCollectionUnrollIterator(values, value, traverser.bulk());
-        return Collections.singletonMap(key, (R) values);
-    }
-
-    @Override
-    public String toString() {
-        return StringFactory.stepString(this, this.keyTraversal, this.valueTraversal, this.reduceTraversal);
-    }
-
-    @Override
-    public Map<K, R> generateFinalResult(final Map<K, R> valueMap) {
-        final Map<K, R> reducedMap = new HashMap<>();
-        for (final K key : valueMap.keySet()) {
-            final R r = TraversalUtil.applyNullable(((Map<K, Collection<V>>) valueMap).get(key), this.reduceTraversal);
-            reducedMap.put(key, r);
-        }
-        return reducedMap;
-    }
-
-    @Override
-    public <A, B> List<Traversal.Admin<A, B>> getLocalChildren() {
-        final List<Traversal.Admin<A, B>> children = new ArrayList<>(3);
-        if (null != this.keyTraversal)
-            children.add((Traversal.Admin) this.keyTraversal);
-        if (null != this.valueTraversal)
-            children.add((Traversal.Admin) this.valueTraversal);
-        if (null != this.reduceTraversal)
-            children.add((Traversal.Admin) this.reduceTraversal);
-        return children;
-    }
-
-    @Override
-    public void modulateBy(final Traversal.Admin<?, ?> kvrTraversal) {
-        if ('k' == this.state) {
-            this.keyTraversal = this.integrateChild(kvrTraversal);
-            this.state = 'v';
-        } else if ('v' == this.state) {
-            this.valueTraversal = this.integrateChild(kvrTraversal);
-            this.state = 'r';
-        } else if ('r' == this.state) {
-            this.reduceTraversal = this.integrateChild(kvrTraversal);
-            this.state = 'x';
-        } else {
-            throw new IllegalStateException("The key, value, and reduce functions for group()-step have already been set");
-        }
-    }
-
-    @Override
-    public Set<TraverserRequirement> getRequirements() {
-        return this.getSelfAndChildRequirements(TraverserRequirement.SIDE_EFFECTS, TraverserRequirement.BULK);
-    }
-
-    @Override
-    public GroupStepV3d0<S, K, V, R> clone() {
-        final GroupStepV3d0<S, K, V, R> clone = (GroupStepV3d0<S, K, V, R>) super.clone();
-        if (null != this.keyTraversal)
-            clone.keyTraversal = this.keyTraversal.clone();
-        if (null != this.valueTraversal)
-            clone.valueTraversal = this.valueTraversal.clone();
-        if (null != this.reduceTraversal)
-            clone.reduceTraversal = this.reduceTraversal.clone();
-        return clone;
-    }
-
-    @Override
-    public void setTraversal(final Traversal.Admin<?, ?> parentTraversal) {
-        super.setTraversal(parentTraversal);
-        integrateChild(this.keyTraversal);
-        integrateChild(this.valueTraversal);
-        integrateChild(this.reduceTraversal);
-    }
-
-    @Override
-    public int hashCode() {
-        int result = super.hashCode();
-        if (this.keyTraversal != null) result ^= this.keyTraversal.hashCode();
-        if (this.valueTraversal != null) result ^= this.valueTraversal.hashCode();
-        if (this.reduceTraversal != null) result ^= this.reduceTraversal.hashCode();
-        return result;
-    }
-
-    //////////
-
-    @Deprecated
-    public static class GroupBiOperatorV3d0<K, V> implements BinaryOperator<Map<K, V>>, Serializable {
-
-        private final static GroupBiOperatorV3d0 INSTANCE = new GroupBiOperatorV3d0();
-
-        @Override
-        public Map<K, V> apply(final Map<K, V> mutatingSeed, final Map<K, V> map) {
-            for (final K key : map.keySet()) {
-                final BulkSet<V> values = (BulkSet<V>) map.get(key);
-                BulkSet<V> seedValues = (BulkSet<V>) mutatingSeed.get(key);
-                if (null == seedValues) {
-                    seedValues = new BulkSet<>();
-                    mutatingSeed.put(key, (V) seedValues);
-                }
-                seedValues.addAll(values);
-            }
-            return mutatingSeed;
-        }
-
-        public static final <K, V> GroupBiOperatorV3d0<K, V> instance() {
-            return INSTANCE;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
deleted file mode 100644
index 07afe10..0000000
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.process.traversal.Traverser;
-import org.apache.tinkerpop.gremlin.process.traversal.step.ByModulating;
-import org.apache.tinkerpop.gremlin.process.traversal.step.SideEffectCapable;
-import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStepV3d0;
-import org.apache.tinkerpop.gremlin.process.traversal.step.util.BulkSet;
-import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
-import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil;
-import org.apache.tinkerpop.gremlin.structure.util.StringFactory;
-import org.apache.tinkerpop.gremlin.util.function.HashMapSupplier;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-@Deprecated
-public final class GroupSideEffectStepV3d0<S, K, V, R> extends SideEffectStep<S> implements SideEffectCapable<Map<K, Collection<V>>, Map<K, R>>, TraversalParent, ByModulating {
-
-    private char state = 'k';
-    private Traversal.Admin<S, K> keyTraversal = null;
-    private Traversal.Admin<S, V> valueTraversal = null;
-    private Traversal.Admin<Collection<V>, R> reduceTraversal = null;
-    private String sideEffectKey;
-
-    public GroupSideEffectStepV3d0(final Traversal.Admin traversal, final String sideEffectKey) {
-        super(traversal);
-        this.sideEffectKey = sideEffectKey;
-        this.getTraversal().getSideEffects().registerIfAbsent(this.sideEffectKey, HashMapSupplier.instance(), GroupStepV3d0.GroupBiOperatorV3d0.instance());
-    }
-
-    @Override
-    protected void sideEffect(final Traverser.Admin<S> traverser) {
-        final K key = TraversalUtil.applyNullable(traverser, keyTraversal);
-        final V value = TraversalUtil.applyNullable(traverser, valueTraversal);
-        BulkSet<V> values = new BulkSet<>();
-        values.add(value, traverser.bulk());
-        final Map<K, Object> map = new HashMap<>();
-        map.put(key, values);
-        this.getTraversal().getSideEffects().add(this.sideEffectKey, map);
-    }
-
-    @Override
-    public String getSideEffectKey() {
-        return this.sideEffectKey;
-    }
-
-    @Override
-    public String toString() {
-        return StringFactory.stepString(this, this.sideEffectKey, this.keyTraversal, this.valueTraversal, this.reduceTraversal);
-    }
-
-    @Override
-    public Map<K, R> generateFinalResult(final Map<K, Collection<V>> valueMap) {
-        final Map<K, R> reducedMap = new HashMap<>();
-        for (final K key : valueMap.keySet()) {
-            final R r = TraversalUtil.applyNullable(valueMap.get(key), this.reduceTraversal);
-            reducedMap.put(key, r);
-        }
-        return reducedMap;
-    }
-
-    @Override
-    public <A, B> List<Traversal.Admin<A, B>> getLocalChildren() {
-        final List<Traversal.Admin<A, B>> children = new ArrayList<>(3);
-        if (null != this.keyTraversal)
-            children.add((Traversal.Admin) this.keyTraversal);
-        if (null != this.valueTraversal)
-            children.add((Traversal.Admin) this.valueTraversal);
-        if (null != this.reduceTraversal)
-            children.add((Traversal.Admin) this.reduceTraversal);
-        return children;
-    }
-
-    @Override
-    public void modulateBy(final Traversal.Admin<?, ?> kvrTraversal) {
-        if ('k' == this.state) {
-            this.keyTraversal = this.integrateChild(kvrTraversal);
-            this.state = 'v';
-        } else if ('v' == this.state) {
-            this.valueTraversal = this.integrateChild(kvrTraversal);
-            this.state = 'r';
-        } else if ('r' == this.state) {
-            this.reduceTraversal = this.integrateChild(kvrTraversal);
-            this.state = 'x';
-        } else {
-            throw new IllegalStateException("The key, value, and reduce functions for group()-step have already been set");
-        }
-    }
-
-    @Override
-    public Set<TraverserRequirement> getRequirements() {
-        return this.getSelfAndChildRequirements(TraverserRequirement.SIDE_EFFECTS, TraverserRequirement.BULK);
-    }
-
-    @Override
-    public GroupSideEffectStepV3d0<S, K, V, R> clone() {
-        final GroupSideEffectStepV3d0<S, K, V, R> clone = (GroupSideEffectStepV3d0<S, K, V, R>) super.clone();
-        if (null != this.keyTraversal)
-            clone.keyTraversal = this.keyTraversal.clone();
-        if (null != this.valueTraversal)
-            clone.valueTraversal = this.valueTraversal.clone();
-        if (null != this.reduceTraversal)
-            clone.reduceTraversal = this.reduceTraversal.clone();
-        return clone;
-    }
-
-    @Override
-    public void setTraversal(final Traversal.Admin<?, ?> parentTraversal) {
-        super.setTraversal(parentTraversal);
-        this.integrateChild(this.keyTraversal);
-        this.integrateChild(this.valueTraversal);
-        this.integrateChild(this.reduceTraversal);
-    }
-
-    @Override
-    public int hashCode() {
-        int result = super.hashCode() ^ this.sideEffectKey.hashCode();
-        if (this.keyTraversal != null) result ^= this.keyTraversal.hashCode();
-        if (this.valueTraversal != null) result ^= this.valueTraversal.hashCode();
-        if (this.reduceTraversal != null) result ^= this.reduceTraversal.hashCode();
-        return result;
-    }
-}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
index fd803e4..56f2eca 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalHelper.java
@@ -484,20 +484,6 @@ public final class TraversalHelper {
     }
 
     /**
-     * @deprecated As of release 3.2.3, not replaced - only used by {@link org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStepV3d0}.
-     */
-    @Deprecated
-    public static <S> void addToCollectionUnrollIterator(final Collection<S> collection, final S s, final long bulk) {
-        if (s instanceof Iterator) {
-            ((Iterator<S>) s).forEachRemaining(r -> addToCollection(collection, r, bulk));
-        } else if (s instanceof Iterable) {
-            ((Iterable<S>) s).forEach(r -> addToCollection(collection, r, bulk));
-        } else {
-            addToCollection(collection, s, bulk);
-        }
-    }
-
-    /**
      * Returns the name of <i>step</i> truncated to <i>maxLength</i>. An ellipses is appended when the name exceeds
      * <i>maxLength</i>.
      *

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
index b524cbc..5526379 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
@@ -38,7 +38,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalSte
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.FoldStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupCountStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStep;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.GroupStepV3d0;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.MeanGlobalStep;
 import org.apache.tinkerpop.gremlin.process.traversal.step.map.OrderGlobalStep;
@@ -347,7 +346,7 @@ public enum GryoVersion {
             add(GryoTypeReg.of(MeanGlobalStep.MeanGlobalBiOperator.class, 110));
             add(GryoTypeReg.of(MeanGlobalStep.MeanNumber.class, 111));
             add(GryoTypeReg.of(TreeStep.TreeBiOperator.class, 112));
-            add(GryoTypeReg.of(GroupStepV3d0.GroupBiOperatorV3d0.class, 113));
+            // skip 113
             add(GryoTypeReg.of(RangeGlobalStep.RangeBiOperator.class, 114));
             add(GryoTypeReg.of(OrderGlobalStep.OrderBiOperator.class, 118));
             add(GryoTypeReg.of(ProfileStep.ProfileBiOperator.class, 119));
@@ -495,7 +494,7 @@ public enum GryoVersion {
             add(GryoTypeReg.of(MeanGlobalStep.MeanGlobalBiOperator.class, 110));
             add(GryoTypeReg.of(MeanGlobalStep.MeanNumber.class, 111));
             add(GryoTypeReg.of(TreeStep.TreeBiOperator.class, 112));
-            add(GryoTypeReg.of(GroupStepV3d0.GroupBiOperatorV3d0.class, 113));
+            // skip 113
             add(GryoTypeReg.of(RangeGlobalStep.RangeBiOperator.class, 114));
             add(GryoTypeReg.of(OrderGlobalStep.OrderBiOperator.class, 118, new JavaSerializer()));
             add(GryoTypeReg.of(ProfileStep.ProfileBiOperator.class, 119));

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0Test.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0Test.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0Test.java
deleted file mode 100644
index 8e93bc5..0000000
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupSideEffectStepV3d0Test.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.process.traversal.Scope;
-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.apache.tinkerpop.gremlin.structure.T;
-
-import java.util.Arrays;
-import java.util.List;
-
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.count;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- */
-@Deprecated
-public class GroupSideEffectStepV3d0Test extends StepTest {
-
-    @Override
-    protected List<Traversal> getTraversals() {
-        return Arrays.asList(
-                __.groupV3d0("a").by(T.label),
-                __.groupV3d0("a").by(T.label).by("name"),
-                __.groupV3d0("a").by(T.label).by("name").by(count(Scope.local))
-        );
-    }
-}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
index 9f71cd4..e57bd8f 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
@@ -79,7 +79,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateT
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.ExplainTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTestV3d0;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectCapTest;
@@ -174,7 +173,6 @@ public class ProcessComputerSuite extends AbstractGremlinSuite {
             AggregateTest.Traversals.class,
             ExplainTest.Traversals.class,
             GroupTest.Traversals.class,
-            GroupTestV3d0.Traversals.class,
             GroupCountTest.Traversals.class,
             InjectTest.Traversals.class,
             ProfileTest.Traversals.class,

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
index 5f469e0..05f6b47 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
@@ -73,7 +73,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.AggregateT
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.ExplainTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupCountTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTestV3d0;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.InjectTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SackTest;
 import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectCapTest;
@@ -164,7 +163,6 @@ public class ProcessStandardSuite extends AbstractGremlinSuite {
             AggregateTest.Traversals.class,
             ExplainTest.Traversals.class,
             GroupTest.Traversals.class,
-            GroupTestV3d0.Traversals.class,
             GroupCountTest.Traversals.class,
             InjectTest.Traversals.class,
             SackTest.Traversals.class,

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTestV3d0.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTestV3d0.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTestV3d0.java
deleted file mode 100644
index 9b82484..0000000
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/sideEffect/GroupTestV3d0.java
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect;
-
-import org.apache.tinkerpop.gremlin.LoadGraphWith;
-import org.apache.tinkerpop.gremlin.process.AbstractGremlinProcessTest;
-import org.apache.tinkerpop.gremlin.process.GremlinProcessRunner;
-import org.apache.tinkerpop.gremlin.process.traversal.Scope;
-import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL;
-import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.both;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.count;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.inject;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
-import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.outE;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-
-/**
- * @author Marko A. Rodriguez (http://markorodriguez.com)
- * @author Stephen Mallette (http://stephen.genoprime.com)
- * @deprecated As of release 3.1.0-incubating
- */
-@RunWith(GremlinProcessRunner.class)
-@Deprecated
-public abstract class GroupTestV3d0 extends AbstractGremlinProcessTest {
-
-    public abstract Traversal<Vertex, Map<String, Collection<Vertex>>> get_g_V_group_byXnameX();
-
-    public abstract Traversal<Vertex, Map<String, Collection<Vertex>>> get_g_V_groupXaX_byXnameX_capXaX();
-
-    public abstract Traversal<Vertex, Map<String, Collection<String>>> get_g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX();
-
-    public abstract Traversal<Vertex, Map<String, Long>> get_g_V_hasXlangX_group_byXlangX_byX1X_byXcountXlocalXX();
-
-    public abstract Traversal<Vertex, Map<String, Long>> get_g_V_repeatXout_groupXaX_byXnameX_by_byXcountXlocalXX_timesX2X_capXaX();
-
-    public abstract Traversal<Vertex, Map<Long, Collection<String>>> get_g_V_group_byXoutE_countX_byXnameX();
-
-    public abstract Traversal<Vertex, Map<String, Long>> get_g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byX1X_byXcountXlocalXX();
-
-    public abstract Traversal<Vertex, Map<String, Long>> get_g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byX1X_byXcountXlocalXX_capXaX();
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_group_byXnameX() {
-        final Traversal<Vertex, Map<String, Collection<Vertex>>> traversal = get_g_V_group_byXnameX();
-        printTraversalForm(traversal);
-        assertCommonA(traversal);
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_groupXaX_byXnameX_capXaX() {
-        final Traversal<Vertex, Map<String, Collection<Vertex>>> traversal = get_g_V_groupXaX_byXnameX_capXaX();
-        printTraversalForm(traversal);
-        assertCommonA(traversal);
-    }
-
-    private void assertCommonA(Traversal<Vertex, Map<String, Collection<Vertex>>> traversal) {
-        final Map<String, Collection<Vertex>> map = traversal.next();
-        assertEquals(6, map.size());
-        map.forEach((key, values) -> {
-            assertEquals(1, values.size());
-            assertEquals(convertToVertexId(key), values.iterator().next().id());
-        });
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX() {
-        final Traversal<Vertex, Map<String, Collection<String>>> traversal = get_g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX();
-        printTraversalForm(traversal);
-        final Map<String, Collection<String>> map = traversal.next();
-        assertFalse(traversal.hasNext());
-        assertEquals(1, map.size());
-        assertTrue(map.containsKey("java"));
-        assertEquals(2, map.get("java").size());
-        assertTrue(map.get("java").contains("ripple"));
-        assertTrue(map.get("java").contains("lop"));
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_hasXlangX_group_byXlangX_byX1X_byXsizeX() {
-        final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_hasXlangX_group_byXlangX_byX1X_byXcountXlocalXX();
-        printTraversalForm(traversal);
-        final Map<String, Long> map = traversal.next();
-        assertEquals(1, map.size());
-        assertTrue(map.containsKey("java"));
-        assertEquals(Long.valueOf(2), map.get("java"));
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_repeatXout_groupXaX_byXnameX_byXitX_byXsizeXX_timesX2X_capXaX() {
-        final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_repeatXout_groupXaX_byXnameX_by_byXcountXlocalXX_timesX2X_capXaX();
-        printTraversalForm(traversal);
-        final Map<String, Long> map = traversal.next();
-        assertFalse(traversal.hasNext());
-        assertEquals(4, map.size());
-        assertTrue(map.containsKey("vadas"));
-        assertEquals(Long.valueOf(1), map.get("vadas"));
-        assertTrue(map.containsKey("josh"));
-        assertEquals(Long.valueOf(1), map.get("josh"));
-        assertTrue(map.containsKey("lop"));
-        assertEquals(Long.valueOf(4), map.get("lop"));
-        assertTrue(map.containsKey("ripple"));
-        assertEquals(Long.valueOf(2), map.get("ripple"));
-    }
-
-    @Test
-    @LoadGraphWith(MODERN)
-    public void g_V_group_byXoutE_countX_byXnameX() {
-        final Traversal<Vertex, Map<Long, Collection<String>>> traversal = get_g_V_group_byXoutE_countX_byXnameX();
-        printTraversalForm(traversal);
-        assertTrue(traversal.hasNext());
-        final Map<Long, Collection<String>> map = traversal.next();
-        assertFalse(traversal.hasNext());
-        assertEquals(4, map.size());
-        assertTrue(map.containsKey(0l));
-        assertTrue(map.containsKey(1l));
-        assertTrue(map.containsKey(2l));
-        assertTrue(map.containsKey(3l));
-        assertEquals(3, map.get(0l).size());
-        assertEquals(1, map.get(1l).size());
-        assertEquals(1, map.get(2l).size());
-        assertEquals(1, map.get(3l).size());
-        assertTrue(map.get(0l).contains("lop"));
-        assertTrue(map.get(0l).contains("ripple"));
-        assertTrue(map.get(0l).contains("vadas"));
-        assertTrue(map.get(1l).contains("peter"));
-        assertTrue(map.get(2l).contains("josh"));
-        assertTrue(map.get(3l).contains("marko"));
-    }
-
-    @Test
-    @LoadGraphWith(GRATEFUL)
-    public void g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX() {
-        final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byX1X_byXcountXlocalXX();
-        checkMap(new HashMap<String, Long>() {{
-            put("original", 771317l);
-            put("", 160968l);
-            put("cover", 368579l);
-        }}, traversal.next());
-        assertFalse(traversal.hasNext());
-    }
-
-    @Test
-    @LoadGraphWith(GRATEFUL)
-    public void g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byXcountX_capXaX() {
-        final Traversal<Vertex, Map<String, Long>> traversal = get_g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byX1X_byXcountXlocalXX_capXaX();
-        checkMap(new HashMap<String, Long>() {{
-            put("original", 771317l);
-            put("", 160968l);
-            put("cover", 368579l);
-        }}, traversal.next());
-        assertFalse(traversal.hasNext());
-    }
-
-    /**
-     * @deprecated As of release 3.1.0-incubating
-     */
-    @Deprecated
-    public static class Traversals extends GroupTestV3d0 {
-
-        @Override
-        public Traversal<Vertex, Map<String, Collection<Vertex>>> get_g_V_group_byXnameX() {
-            return g.V().<String, Collection<Vertex>>groupV3d0().by("name");
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Collection<Vertex>>> get_g_V_groupXaX_byXnameX_capXaX() {
-            return g.V().<String, Collection<Vertex>>groupV3d0("a").by("name").cap("a");
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Collection<String>>> get_g_V_hasXlangX_groupXaX_byXlangX_byXnameX_out_capXaX() {
-            return g.V().has("lang").groupV3d0("a").by("lang").by("name").out().cap("a");
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Long>> get_g_V_hasXlangX_group_byXlangX_byX1X_byXcountXlocalXX() {
-            return g.V().has("lang").<String, Long>groupV3d0().by("lang").by(inject(1)).<Collection>by(count(Scope.local));
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Long>> get_g_V_repeatXout_groupXaX_byXnameX_by_byXcountXlocalXX_timesX2X_capXaX() {
-            return g.V().repeat(out().groupV3d0("a").by("name").by().<Collection>by(count(Scope.local))).times(2).cap("a");
-        }
-
-        @Override
-        public Traversal<Vertex, Map<Long, Collection<String>>> get_g_V_group_byXoutE_countX_byXnameX() {
-            return g.V().<Long, Collection<String>>groupV3d0().by(outE().count()).by("name");
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Long>> get_g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byX1X_byXcountXlocalXX() {
-            return g.V().repeat(both("followedBy")).times(2).<String, Long>groupV3d0().by("songType").by(inject(1)).by(count(Scope.local));
-        }
-
-        @Override
-        public Traversal<Vertex, Map<String, Long>> get_g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byX1X_byXcountXlocalXX_capXaX() {
-            return g.V().repeat(both("followedBy")).times(2).<String, Long>groupV3d0("a").by("songType").by(inject(1)).by(count(Scope.local)).cap("a");
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/05ed3c29/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
----------------------------------------------------------------------
diff --git a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
index 63c7c57..72eee73 100644
--- a/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
+++ b/hadoop-gremlin/src/main/java/org/apache/tinkerpop/gremlin/hadoop/structure/HadoopGraph.java
@@ -132,16 +132,6 @@ import java.util.stream.Stream;
         reason = "Hadoop-Gremlin is OLAP-oriented and for OLTP operations, linear-scan joins are required. This particular tests takes many minutes to execute.",
         computers = {"ALL"})
 @Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTestV3d0",
-        method = "g_V_repeatXbothXfollowedByXX_timesX2X_group_byXsongTypeX_byXcountX",
-        reason = "Hadoop-Gremlin is OLAP-oriented and for OLTP operations, linear-scan joins are required. This particular tests takes many minutes to execute.",
-        computers = {"ALL"})
-@Graph.OptOut(
-        test = "org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.GroupTestV3d0",
-        method = "g_V_repeatXbothXfollowedByXX_timesX2X_groupXaX_byXsongTypeX_byXcountX_capXaX",
-        reason = "Hadoop-Gremlin is OLAP-oriented and for OLTP operations, linear-scan joins are required. This particular tests takes many minutes to execute.",
-        computers = {"ALL"})
-@Graph.OptOut(
         test = "org.apache.tinkerpop.gremlin.process.computer.GraphComputerTest",
         method = "shouldStartAndEndWorkersForVertexProgramAndMapReduce",
         reason = "Spark executes map and combine in a lazy fashion and thus, fails the blocking aspect of this test",


[3/3] tinkerpop git commit: Merge branch 'TINKERPOP-880'

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


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

Branch: refs/heads/master
Commit: 489533ff34a0cb24ded0317d8aaedf4c9a4c9dcf
Parents: caa5e5b 99d38d4
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Fri Jul 14 08:57:58 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Fri Jul 14 08:57:58 2017 -0600

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |   1 +
 docs/src/upgrade/release-3.3.x.asciidoc         |   5 +-
 .../traversal/dsl/graph/GraphTraversal.java     |  23 --
 .../gremlin/process/traversal/dsl/graph/__.java |  16 --
 .../traversal/step/map/GroupStepV3d0.java       | 172 --------------
 .../sideEffect/GroupSideEffectStepV3d0.java     | 151 ------------
 .../process/traversal/util/TraversalHelper.java |  14 --
 .../gremlin/structure/io/gryo/GryoVersion.java  |   5 +-
 .../sideEffect/GroupSideEffectStepV3d0Test.java |  47 ----
 .../gremlin_python/process/graph_traversal.py   |  12 -
 .../gremlin/process/ProcessComputerSuite.java   |   2 -
 .../gremlin/process/ProcessStandardSuite.java   |   2 -
 .../step/sideEffect/GroupTestV3d0.java          | 236 -------------------
 .../gremlin/hadoop/structure/HadoopGraph.java   |  10 -
 .../structure/TinkerGraphPlayTest.java          |  41 ----
 15 files changed, 7 insertions(+), 730 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --cc CHANGELOG.asciidoc
index b546093,c285e53..e92a157
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@@ -26,26 -26,7 +26,27 @@@ image::https://raw.githubusercontent.co
  TinkerPop 3.3.0 (Release Date: NOT OFFICIALLY RELEASED YET)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
 +* 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` and `Metrics` 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 to `optimization.LazyBarrierStrategy`).
 +* Removed previously deprecated `Constants` in Hadoop.
 +* Removed previously deprecated `VertexComputing.generateComputer(Graph)`.
 +* Established the Gryo 3.0 format.
 +* `GryoVersion` now includes a default `ClassResolver` to supply to the `GryoMapper`.
 +* `GryoClassResolver` renamed to `GryoClassResolverV1d0` which has an abstract class that for providers to extend in `AbstractGryoClassResolver`.
 +* Removed previously deprecated `Order` enums of `keyIncr`, `keyDecr`, `valueIncr`, and `valueDecr.`
 +* 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 respective `GroupSideEffectStepV3d0` and `GroupStepV3d0`.
  * Removed previously deprecated `TraversalSource.Builder` class.
  * Removed previously deprecated `ConnectiveP`, `AndP`, `OrP` constructors.
  * Removed previously deprecated `TraversalScriptFunction` class.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/docs/src/upgrade/release-3.3.x.asciidoc
----------------------------------------------------------------------
diff --cc docs/src/upgrade/release-3.3.x.asciidoc
index a3a53cf,baae438..b5033b5
--- a/docs/src/upgrade/release-3.3.x.asciidoc
+++ b/docs/src/upgrade/release-3.3.x.asciidoc
@@@ -225,23 -211,8 +225,25 @@@ The following deprecated classes, metho
  ** `org.apache.tinkerpop.gremlin.process.traversal.util.OrP(P...)`
  ** `org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptFunction`
  ** `org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper`
 +** `org.apache.tinkerpop.gremlin.process.traversal.Order.keyIncr`
 +** `org.apache.tinkerpop.gremlin.process.traversal.Order.valueIncr`
 +** `org.apache.tinkerpop.gremlin.process.traversal.Order.keyDecr`
 +** `org.apache.tinkerpop.gremlin.process.traversal.Order.valueIncr`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.GraphTraversal.mapKeys()`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.GraphTraversal.mapValues()`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#addV(Object...)`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#addE(Direction, String, String, Object...)`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#addOutE(String, String, Object...)`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#addInV(String, String, Object...)`
 +** `org.apache.tinkerpop.gremlin.process.traversal.Bindings()`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource#withBindings(Bindings)`
 +** `org.apache.tinkerpop.gremlin.structure.Transaction.submit(Function)`
 +** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#sack(BiFunction,String)`
 +** `org.apache.tinkerpop.gremlin.process.traversal.strategy.finalization.LazyBarrierStrategy`
 +** `org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects` (various methods)
 +** `org.apache.tinkerpop.gremlin.process.computer.traversal.step.VertexComputing#generateComputer(Graph)`
+ ** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#groupV3d0(String)`
+ ** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#groupV3d0()`
  ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#supportsAddProperty()`
  ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#FEATURE_ADD_PROPERTY`
  ** `org.apache.tinkerpop.gremlin.structure.Graph.OptIn#SUITE_GROOVY_PROCESS_STANDARD`
@@@ -351,11 -306,7 +353,12 @@@ link:https://issues.apache.org/jira/bro
  link:https://issues.apache.org/jira/browse/TINKERPOP-1622[TINKERPOP-1622],
  link:https://issues.apache.org/jira/browse/TINKERPOP-1651[TINKERPOP-1651],
  link:https://issues.apache.org/jira/browse/TINKERPOP-1694[TINKERPOP-1694],
 -link:https://issues.apache.org/jira/browse/TINKERPOP-1700[TINKERPOP-1700]
 +link:https://issues.apache.org/jira/browse/TINKERPOP-1700[TINKERPOP-1700],
 +link:https://issues.apache.org/jira/browse/TINKERPOP-1706[TINKERPOP-1706],
 +link:https://issues.apache.org/jira/browse/TINKERPOP-1721[TINKERPOP-1721],
 +link:https://issues.apache.org/jira/browse/TINKERPOP-1719[TINKERPOP-1719],
- link:https://issues.apache.org/jira/browse/TINKERPOP-1720[TINKERPOP-1720]
++link:https://issues.apache.org/jira/browse/TINKERPOP-1720[TINKERPOP-1720],
++link:https://issues.apache.org/jira/browse/TINKERPOP-880[TINKERPOP-880]
  
  Gremlin-server.sh and Init Scripts
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/__.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/gryo/GryoVersion.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessComputerSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessStandardSuite.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/489533ff/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
----------------------------------------------------------------------
diff --cc tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index e3c20b5,6ab8827..eeb4f38
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@@ -21,9 -21,9 +21,7 @@@ package org.apache.tinkerpop.gremlin.ti
  import org.apache.tinkerpop.gremlin.jsr223.JavaTranslator;
  import org.apache.tinkerpop.gremlin.process.computer.Computer;
  import org.apache.tinkerpop.gremlin.process.traversal.Bytecode;
--import org.apache.tinkerpop.gremlin.process.traversal.Operator;
  import org.apache.tinkerpop.gremlin.process.traversal.Order;
--import org.apache.tinkerpop.gremlin.process.traversal.Scope;
  import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
  import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
  import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
@@@ -53,8 -53,8 +51,6 @@@ import static org.apache.tinkerpop.grem
  import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.as;
  import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.both;
  import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.choose;
--import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.count;
--import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.fold;
  import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.has;
  import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.in;
  import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.out;
@@@ -106,44 -106,36 +102,7 @@@ public class TinkerGraphPlayTest 
              //assertEquals(result, t.next());
          }));
      }
 -    
 -    @Test
 -    @Ignore
 -    public void testPlay() {
 -        Graph g = TinkerGraph.open();
 -        Vertex v1 = g.addVertex(T.id, "1", "animal", "males");
 -        Vertex v2 = g.addVertex(T.id, "2", "animal", "puppy");
 -        Vertex v3 = g.addVertex(T.id, "3", "animal", "mama");
 -        Vertex v4 = g.addVertex(T.id, "4", "animal", "puppy");
 -        Vertex v5 = g.addVertex(T.id, "5", "animal", "chelsea");
 -        Vertex v6 = g.addVertex(T.id, "6", "animal", "low");
 -        Vertex v7 = g.addVertex(T.id, "7", "animal", "mama");
 -        Vertex v8 = g.addVertex(T.id, "8", "animal", "puppy");
 -        Vertex v9 = g.addVertex(T.id, "9", "animal", "chula");
 -
 -        v1.addEdge("link", v2, "weight", 2f);
 -        v2.addEdge("link", v3, "weight", 3f);
 -        v2.addEdge("link", v4, "weight", 4f);
 -        v2.addEdge("link", v5, "weight", 5f);
 -        v3.addEdge("link", v6, "weight", 1f);
 -        v4.addEdge("link", v6, "weight", 2f);
 -        v5.addEdge("link", v6, "weight", 3f);
 -        v6.addEdge("link", v7, "weight", 2f);
 -        v6.addEdge("link", v8, "weight", 3f);
 -        v7.addEdge("link", v9, "weight", 1f);
 -        v8.addEdge("link", v9, "weight", 7f);
 -
 -        g.traversal().withSack(Float.MIN_VALUE).V(v1).repeat(outE().sack(Operator.max, "weight").inV()).times(5).sack().forEachRemaining(x -> logger.info(x.toString()));
 -    }
  
-     @Test
-     @Ignore
-     public void benchmarkGroup() throws Exception {
-         Graph graph = TinkerGraph.open();
-         GraphTraversalSource g = graph.traversal();
-         graph.io(GraphMLIo.build()).readGraph("../data/grateful-dead.xml");
-         /////////
- 
-         //g.V().group().by(T.label).by(values("name")).forEachRemaining(x -> logger.info(x.toString()));
- 
-         System.out.println("group: " + g.V().both("followedBy").both("followedBy").group().by("songType").by(count()).next());
-         System.out.println("groupV3d0: " + g.V().both("followedBy").both("followedBy").groupV3d0().by("songType").by().by(__.count(Scope.local)).next());
- 
-         //
-         System.out.println("\n\nBig Values -- by(songType)");
- 
-         System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("songType").by(count()).next()));
-         System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("songType").by().by(__.count(Scope.local)).next()) + "\n");
- 
-         ///
- 
-         System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("songType").by(fold()).next()));
-         System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("songType").by().next()));
- 
-         ///
-         System.out.println("\n\nBig Keys -- by(name)");
- 
-         System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("name").by(count()).next()));
-         System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("name").by().by(__.count(Scope.local)).next()) + "\n");
- 
-         ///
- 
-         System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("name").by(fold()).next()));
-         System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("name").by().next()));
- 
-     }
- 
     /* @Test
      public void testTraversalDSL() throws Exception {
          Graph g = TinkerFactory.createClassic();


[2/3] tinkerpop git commit: fixed a bug in release docs. TinkerGraphPlay test had groupV3d0() references. Also, new graph_traversal.py created accordingly.

Posted by ok...@apache.org.
fixed a bug in release docs. TinkerGraphPlay test had groupV3d0() references. Also, new graph_traversal.py created accordingly.


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

Branch: refs/heads/master
Commit: 99d38d4a484ea2600d1bf7e1ec45f4f415407e07
Parents: 05ed3c2
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Mon Jul 10 10:26:54 2017 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Mon Jul 10 10:26:54 2017 -0600

----------------------------------------------------------------------
 docs/src/upgrade/release-3.3.x.asciidoc         |  4 +-
 .../gremlin_python/process/graph_traversal.py   | 12 ------
 .../structure/TinkerGraphPlayTest.java          | 39 +-------------------
 3 files changed, 3 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99d38d4a/docs/src/upgrade/release-3.3.x.asciidoc
----------------------------------------------------------------------
diff --git a/docs/src/upgrade/release-3.3.x.asciidoc b/docs/src/upgrade/release-3.3.x.asciidoc
index 3193906..baae438 100644
--- a/docs/src/upgrade/release-3.3.x.asciidoc
+++ b/docs/src/upgrade/release-3.3.x.asciidoc
@@ -211,8 +211,8 @@ The following deprecated classes, methods or fields have been removed in this ve
 ** `org.apache.tinkerpop.gremlin.process.traversal.util.OrP(P...)`
 ** `org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptFunction`
 ** `org.apache.tinkerpop.gremlin.process.traversal.util.TraversalScriptHelper`
-** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph#groupV3d0(String)`
-** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph#groupV3d0()`
+** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#groupV3d0(String)`
+** `org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal#groupV3d0()`
 ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#supportsAddProperty()`
 ** `org.apache.tinkerpop.gremlin.structure.Graph.Features.VertexPropertyFeatures#FEATURE_ADD_PROPERTY`
 ** `org.apache.tinkerpop.gremlin.structure.Graph.OptIn#SUITE_GROOVY_PROCESS_STANDARD`

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99d38d4a/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py
----------------------------------------------------------------------
diff --git a/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py b/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py
index ec5797e..c885f0a 100644
--- a/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py
+++ b/gremlin-python/src/main/jython/gremlin_python/process/graph_traversal.py
@@ -240,10 +240,6 @@ class GraphTraversal(Traversal):
         self.bytecode.add_step("groupCount", *args)
         return self
 
-    def groupV3d0(self, *args):
-        self.bytecode.add_step("groupV3d0", *args)
-        return self
-
     def has(self, *args):
         self.bytecode.add_step("has", *args)
         return self
@@ -644,10 +640,6 @@ class __(object):
         return cls.graph_traversal(None, None, Bytecode()).groupCount(*args)
 
     @classmethod
-    def groupV3d0(cls, *args):
-        return cls.graph_traversal(None, None, Bytecode()).groupV3d0(*args)
-
-    @classmethod
     def has(cls, *args):
         return cls.graph_traversal(None, None, Bytecode()).has(*args)
 
@@ -1017,10 +1009,6 @@ def groupCount(*args):
     return __.groupCount(*args)
 statics.add_static('groupCount', groupCount)
 
-def groupV3d0(*args):
-    return __.groupV3d0(*args)
-statics.add_static('groupV3d0', groupV3d0)
-
 def has(*args):
     return __.has(*args)
 statics.add_static('has', has)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/99d38d4a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
----------------------------------------------------------------------
diff --git a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index 37187fe..6ab8827 100644
--- a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@ -106,44 +106,7 @@ public class TinkerGraphPlayTest {
             //assertEquals(result, t.next());
         }));
     }
-
-    @Test
-    @Ignore
-    public void benchmarkGroup() throws Exception {
-        Graph graph = TinkerGraph.open();
-        GraphTraversalSource g = graph.traversal();
-        graph.io(GraphMLIo.build()).readGraph("../data/grateful-dead.xml");
-        /////////
-
-        //g.V().group().by(T.label).by(values("name")).forEachRemaining(x -> logger.info(x.toString()));
-
-        System.out.println("group: " + g.V().both("followedBy").both("followedBy").group().by("songType").by(count()).next());
-        System.out.println("groupV3d0: " + g.V().both("followedBy").both("followedBy").groupV3d0().by("songType").by().by(__.count(Scope.local)).next());
-
-        //
-        System.out.println("\n\nBig Values -- by(songType)");
-
-        System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("songType").by(count()).next()));
-        System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("songType").by().by(__.count(Scope.local)).next()) + "\n");
-
-        ///
-
-        System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("songType").by(fold()).next()));
-        System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("songType").by().next()));
-
-        ///
-        System.out.println("\n\nBig Keys -- by(name)");
-
-        System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("name").by(count()).next()));
-        System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("name").by().by(__.count(Scope.local)).next()) + "\n");
-
-        ///
-
-        System.out.println("group: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").group().by("name").by(fold()).next()));
-        System.out.println("groupV3d0: " + TimeUtil.clock(10, () -> g.V().both("followedBy").both("followedBy").groupV3d0().by("name").by().next()));
-
-    }
-
+    
     @Test
     @Ignore
     public void testPlay() {