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

okram pushed a commit to branch tp4
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/tp4 by this push:
     new 34a848c  added P. It is much easier to work with than TP3 P. It is 
just an enum at the bytecode level. No more nested analysis of the P argument. 
Really clean.
34a848c is described below

commit 34a848cb317a78471c2258f2d1c89628d453463f
Author: Marko A. Rodriguez <okramma...@gmail.com>
AuthorDate: Mon Mar 18 08:48:37 2019 -0600

    added P. It is much easier to work with than TP3 P. It is just an enum at 
the bytecode level. No more nested analysis of the P argument. Really clean.
---
 .../tinkerpop/machine/bytecode/BytecodeUtil.java   |   2 +-
 .../tinkerpop/machine/bytecode/Compilation.java    |   4 +-
 .../org/apache/tinkerpop/machine/bytecode/P.java   | 113 +++++++++++++++++++++
 .../machine/function/filter/IsFilter.java          |  11 +-
 .../machine/processor/ConstantProcessor.java       |   2 +-
 ...{BooleanProcessor.java => FilterProcessor.java} |   4 +-
 .../machine/processor/HasNextProcessor.java        |   2 +-
 .../machine/processor/LoopsProcessor.java          |   2 +-
 ...ingletonProcessor.java => SimpleProcessor.java} |   2 +-
 .../tinkerpop/language/gremlin/Traversal.java      |  10 +-
 .../tinkerpop/language/gremlin/TraversalUtil.java  |   4 +
 .../org/apache/tinkerpop/machine/beam/Beam.java    |   2 +-
 .../beam/{OutputStep.java => OutputFn.java}        |   9 +-
 .../tinkerpop/machine/beam/RepeatDeadEndFn.java    |   1 +
 .../machine/beam/util/PrimitiveVisitor.java        |   9 +-
 .../apache/tinkerpop/machine/beam/BeamTest.java    |   7 ++
 .../apache/tinkerpop/machine/pipes/PipesTest.java  |   6 ++
 java/pom.xml                                       |   2 +-
 18 files changed, 170 insertions(+), 22 deletions(-)

diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java
index 016eb30..7a81cd1 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/BytecodeUtil.java
@@ -177,7 +177,7 @@ public final class BytecodeUtil {
             case Symbols.INJECT:
                 return new InjectInitial<>(coefficient, labels, 
instruction.args());
             case Symbols.IS:
-                return new IsFilter<>(coefficient, labels, 
Argument.create(instruction.args()[0]));
+                return new IsFilter<>(coefficient, labels, (P.Type) 
instruction.args()[0], Argument.create(instruction.args()[1]));
             case Symbols.INCR:
                 return new IncrMap<>(coefficient, labels);
             case Symbols.JOIN:
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java
index 3c8c0a2..7872c7e 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/Compilation.java
@@ -19,7 +19,7 @@
 package org.apache.tinkerpop.machine.bytecode;
 
 import org.apache.tinkerpop.machine.function.CFunction;
-import org.apache.tinkerpop.machine.processor.BooleanProcessor;
+import org.apache.tinkerpop.machine.processor.FilterProcessor;
 import org.apache.tinkerpop.machine.processor.LoopsProcessor;
 import org.apache.tinkerpop.machine.processor.Processor;
 import org.apache.tinkerpop.machine.processor.ProcessorFactory;
@@ -160,7 +160,7 @@ public final class Compilation<C, S, E> implements 
Serializable {
             else if (arg instanceof Integer)
                 objects.add(new Compilation<>(new LoopsProcessor<>((int) 
arg)));
             else if (arg instanceof Boolean)
-                objects.add(new Compilation<>(new BooleanProcessor<>((boolean) 
arg)));
+                objects.add(new Compilation<>(new FilterProcessor<>((boolean) 
arg)));
         }
         return objects;
     }
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/P.java 
b/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/P.java
new file mode 100644
index 0000000..32dc6c7
--- /dev/null
+++ b/java/core/src/main/java/org/apache/tinkerpop/machine/bytecode/P.java
@@ -0,0 +1,113 @@
+/*
+ * 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.machine.bytecode;
+
+import org.apache.tinkerpop.util.NumberHelper;
+
+/**
+ * @author Marko A. Rodriguez (http://markorodriguez.com)
+ */
+public final class P<S> {
+
+    public enum Type {
+        eq {
+            public boolean test(final Object first, final Object second) {
+                return null == first ? null == second : (first instanceof 
Number && second instanceof Number
+                        ? NumberHelper.compare((Number) first, (Number) 
second) == 0
+                        : first.equals(second));
+            }
+        }, neq {
+            public boolean test(final Object first, final Object second) {
+                return !eq.test(first, second);
+            }
+        }, lt {
+            public boolean test(final Object first, final Object second) {
+                return null != first && null != second && (
+                        first instanceof Number && second instanceof Number
+                                ? NumberHelper.compare((Number) first, 
(Number) second) < 0
+                                : ((Comparable) first).compareTo(second) < 0);
+            }
+        }, gt {
+            public boolean test(final Object first, final Object second) {
+                return null != first && null != second && (
+                        first instanceof Number && second instanceof Number
+                                ? NumberHelper.compare((Number) first, 
(Number) second) > 0
+                                : ((Comparable) first).compareTo(second) > 0);
+            }
+        }, lte {
+            public boolean test(final Object first, final Object second) {
+                return null == first ? null == second : (null != second && 
!gt.test(first, second));
+            }
+        }, gte {
+            public boolean test(final Object first, final Object second) {
+                return null == first ? null == second : (null != second && 
!lt.test(first, second));
+            }
+        };
+
+        public abstract boolean test(final Object first, final Object second);
+
+    }
+
+    private final S object;
+    private final Type type;
+
+    private P(final Type type, final S object) {
+        this.type = type;
+        this.object = object;
+    }
+
+    public S object() {
+        return this.object;
+    }
+
+    public Type type() {
+        return this.type;
+    }
+
+    public static <S> P<S> eq(final Object object) {
+        return new P<>(Type.eq, (S) object);
+    }
+
+    public static <S> P<S> neq(final Object object) {
+        return new P<>(Type.neq, (S) object);
+    }
+
+    public static <S> P<S> lt(final Object object) {
+        return new P<>(Type.lt, (S) object);
+    }
+
+    public static <S> P<S> gt(final Object object) {
+        return new P<>(Type.gt, (S) object);
+    }
+
+    public static <S> P<S> lte(final Object object) {
+        return new P<>(Type.lte, (S) object);
+    }
+
+    public static <S> P<S> gte(final Object object) {
+        return new P<>(Type.gte, (S) object);
+    }
+
+    @Override
+    public String toString() {
+        return this.type.toString();
+    }
+
+
+}
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java
index c4c8138..ac4dc28 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/function/filter/IsFilter.java
@@ -19,6 +19,7 @@
 package org.apache.tinkerpop.machine.function.filter;
 
 import org.apache.tinkerpop.machine.bytecode.Argument;
+import org.apache.tinkerpop.machine.bytecode.P;
 import org.apache.tinkerpop.machine.coefficient.Coefficient;
 import org.apache.tinkerpop.machine.function.AbstractFunction;
 import org.apache.tinkerpop.machine.function.FilterFunction;
@@ -32,20 +33,22 @@ import java.util.Set;
  */
 public final class IsFilter<C, S> extends AbstractFunction<C> implements 
FilterFunction<C, S> {
 
-    private Argument<S> argument;
+    private final P.Type predicate;
+    private final Argument<S> argument;
 
-    public IsFilter(final Coefficient<C> coefficient, final Set<String> 
labels, final Argument<S> argument) {
+    public IsFilter(final Coefficient<C> coefficient, final Set<String> 
labels, final P.Type predicate, final Argument<S> argument) {
         super(coefficient, labels);
+        this.predicate = predicate;
         this.argument = argument;
     }
 
     @Override
     public boolean test(final Traverser<C, S> traverser) {
-        return traverser.object().equals(this.argument.getArg(traverser));
+        return this.predicate.test(traverser.object(), 
this.argument.getArg(traverser));
     }
 
     @Override
     public String toString() {
-        return StringFactory.makeFunctionString(this, this.argument);
+        return StringFactory.makeFunctionString(this, this.predicate, 
this.argument);
     }
 }
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/ConstantProcessor.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/ConstantProcessor.java
index ec84968..5e52aff 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/ConstantProcessor.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/ConstantProcessor.java
@@ -23,7 +23,7 @@ import org.apache.tinkerpop.machine.traverser.Traverser;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class ConstantProcessor<C, S, E> extends SingletonProcessor<C, S, 
E> {
+public final class ConstantProcessor<C, S, E> extends SimpleProcessor<C, S, E> 
{
 
     private final E constant;
 
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/BooleanProcessor.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/FilterProcessor.java
similarity index 90%
rename from 
java/core/src/main/java/org/apache/tinkerpop/machine/processor/BooleanProcessor.java
rename to 
java/core/src/main/java/org/apache/tinkerpop/machine/processor/FilterProcessor.java
index 99172a7..1a23279 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/BooleanProcessor.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/FilterProcessor.java
@@ -23,11 +23,11 @@ import org.apache.tinkerpop.machine.traverser.Traverser;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class BooleanProcessor<C, S> extends SingletonProcessor<C, S, S> {
+public final class FilterProcessor<C, S> extends SimpleProcessor<C, S, S> {
 
     private final boolean allow;
 
-    public BooleanProcessor(final boolean allow) {
+    public FilterProcessor(final boolean allow) {
         this.allow = allow;
     }
 
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java
index 7f0ec33..83aa364 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/HasNextProcessor.java
@@ -24,7 +24,7 @@ import org.apache.tinkerpop.machine.traverser.Traverser;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class HasNextProcessor<C, S> extends SingletonProcessor<C, S, 
Boolean> {
+public final class HasNextProcessor<C, S> extends SimpleProcessor<C, S, 
Boolean> {
 
     private final Compilation<C, S, ?> predicate;
 
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/LoopsProcessor.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/LoopsProcessor.java
index eb060b4..d367356 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/LoopsProcessor.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/LoopsProcessor.java
@@ -23,7 +23,7 @@ import org.apache.tinkerpop.machine.traverser.Traverser;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public final class LoopsProcessor<C, S> extends SingletonProcessor<C, S, S> {
+public final class LoopsProcessor<C, S> extends SimpleProcessor<C, S, S> {
 
     private final int loops;
 
diff --git 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/SingletonProcessor.java
 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java
similarity index 95%
rename from 
java/core/src/main/java/org/apache/tinkerpop/machine/processor/SingletonProcessor.java
rename to 
java/core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java
index f6acd9a..b96ab6b 100644
--- 
a/java/core/src/main/java/org/apache/tinkerpop/machine/processor/SingletonProcessor.java
+++ 
b/java/core/src/main/java/org/apache/tinkerpop/machine/processor/SimpleProcessor.java
@@ -29,7 +29,7 @@ import java.util.List;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public abstract class SingletonProcessor<C, S, E> implements Processor<C, S, 
E>, ProcessorFactory {
+public abstract class SimpleProcessor<C, S, E> implements Processor<C, S, E>, 
ProcessorFactory {
 
     protected Traverser<C, E> traverser = null;
 
diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
index f9eae16..ab939e7 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/Traversal.java
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.language.gremlin;
 import org.apache.tinkerpop.machine.bytecode.Bytecode;
 import org.apache.tinkerpop.machine.bytecode.BytecodeUtil;
 import org.apache.tinkerpop.machine.bytecode.Compilation;
+import org.apache.tinkerpop.machine.bytecode.P;
 import org.apache.tinkerpop.machine.bytecode.Symbols;
 import org.apache.tinkerpop.machine.coefficient.Coefficient;
 import org.apache.tinkerpop.machine.coefficient.LongCoefficient;
@@ -150,12 +151,17 @@ public class Traversal<C, S, E> implements Iterator<E> {
     }
 
     public Traversal<C, S, E> is(final E object) {
-        this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
object);
+        this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
P.Type.eq, object);
         return this;
     }
 
     public Traversal<C, S, E> is(final Traversal<C, E, E> objectTraversal) {
-        this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
objectTraversal.bytecode);
+        this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
P.Type.eq, objectTraversal.bytecode);
+        return this;
+    }
+
+    public Traversal<C, S, E> is(final P<E> predicate) {
+        this.bytecode.addInstruction(this.currentCoefficient, Symbols.IS, 
predicate.type(), TraversalUtil.tryToGetBytecode(predicate.object()));
         return this;
     }
 
diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java
index e776bff..15f0ccc 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/TraversalUtil.java
@@ -36,6 +36,10 @@ public final class TraversalUtil {
         return traversal.bytecode;
     }
 
+    public static Object tryToGetBytecode(final Object object) {
+        return object instanceof Traversal ? ((Traversal) object).bytecode : 
object;
+    }
+
     public static <C, S, E> void insertRepeatInstruction(final Bytecode<C> 
bytecode, final Coefficient<C> currentCoefficient, final char type, final 
Object argument) {
         final Instruction<C> lastInstruction = bytecode.lastInstruction();
         if (lastInstruction.op().equals(Symbols.REPEAT))
diff --git 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java
index 5e0dcab..2a5d2e9 100644
--- 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java
+++ 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/Beam.java
@@ -52,7 +52,7 @@ public class Beam<C, S, E> implements Processor<C, S, E> {
         final PCollection<Traverser<C, S>> source = 
this.pipeline.apply(Create.of(EmptyTraverser.instance()));
         source.setCoder(new TraverserCoder<>());
         final PCollection<Traverser<C, E>> sink = TopologyUtil.compile(source, 
compilation);
-        sink.apply(ParDo.of(new OutputStep<>())); // TODO: we need an 
in-memory router of outgoing data
+        sink.apply(ParDo.of(new OutputFn<>())); // TODO: we need an in-memory 
router of outgoing data
 
     }
 
diff --git 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/OutputStep.java
 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/OutputFn.java
similarity index 87%
rename from 
java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/OutputStep.java
rename to 
java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/OutputFn.java
index a66f60b..7c2c37c 100644
--- 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/OutputStep.java
+++ 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/OutputFn.java
@@ -24,10 +24,10 @@ import org.apache.tinkerpop.machine.traverser.Traverser;
 /**
  * @author Marko A. Rodriguez (http://markorodriguez.com)
  */
-public class OutputStep<C, S> extends DoFn<Traverser<C, S>, String> {
+public class OutputFn<C, S> extends DoFn<Traverser<C, S>, String> {
 
 
-    public OutputStep() {
+    public OutputFn() {
 
     }
 
@@ -35,4 +35,9 @@ public class OutputStep<C, S> extends DoFn<Traverser<C, S>, 
String> {
     public void processElement(final @Element Traverser<C, S> traverser, final 
OutputReceiver<String> output) {
         Beam.OUTPUT.add(traverser);
     }
+
+    @Override
+    public String toString() {
+        return "";
+    }
 }
\ No newline at end of file
diff --git 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/RepeatDeadEndFn.java
 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/RepeatDeadEndFn.java
index b228b0b..ca28c72 100644
--- 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/RepeatDeadEndFn.java
+++ 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/RepeatDeadEndFn.java
@@ -34,4 +34,5 @@ public class RepeatDeadEndFn<C, S> extends DoFn<Traverser<C, 
S>, Traverser<C, S>
     public void processElement(final @DoFn.Element Traverser<C, S> traverser, 
final DoFn.OutputReceiver<Traverser<C, S>> output) {
         throw new IllegalStateException("There are not enough repetitions to 
account for this traversal: " + Beam.MAX_REPETIONS + " (max loops)");
     }
+
 }
diff --git 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/util/PrimitiveVisitor.java
 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/util/PrimitiveVisitor.java
index 43c7e03..d85042e 100644
--- 
a/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/util/PrimitiveVisitor.java
+++ 
b/java/machine/beam/src/main/java/org/apache/tinkerpop/machine/beam/util/PrimitiveVisitor.java
@@ -22,6 +22,8 @@ import org.apache.beam.sdk.Pipeline;
 import org.apache.beam.sdk.runners.TransformHierarchy;
 import org.apache.beam.sdk.transforms.PTransform;
 import org.apache.beam.sdk.values.PValue;
+import org.apache.tinkerpop.machine.beam.OutputFn;
+import org.apache.tinkerpop.machine.beam.RepeatDeadEndFn;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -40,7 +42,7 @@ public class PrimitiveVisitor implements 
Pipeline.PipelineVisitor {
 
     @Override
     public CompositeBehavior enterCompositeTransform(final 
TransformHierarchy.Node node) {
-        return node.isRootNode() ? CompositeBehavior.ENTER_TRANSFORM : 
CompositeBehavior.DO_NOT_ENTER_TRANSFORM;
+        return CompositeBehavior.ENTER_TRANSFORM;
     }
 
     @Override
@@ -51,9 +53,10 @@ public class PrimitiveVisitor implements 
Pipeline.PipelineVisitor {
     @Override
     public void visitPrimitiveTransform(final TransformHierarchy.Node node) {
         if (!node.getTransform().toString().startsWith("Read") &&
-                !node.getTransform().toString().contains("OutputStep") &&
+                
!node.getTransform().toString().contains(OutputFn.class.getSimpleName()) &&
+                
!node.getTransform().toString().contains(RepeatDeadEndFn.class.getSimpleName()) 
&&
                 !node.getTransform().toString().startsWith("Flatten"))
-        this.primitives.add(node.getTransform());
+            this.primitives.add(node.getTransform());
     }
 
     @Override
diff --git 
a/java/machine/beam/src/test/java/org/apache/tinkerpop/machine/beam/BeamTest.java
 
b/java/machine/beam/src/test/java/org/apache/tinkerpop/machine/beam/BeamTest.java
index 75c203a..72f8a26 100644
--- 
a/java/machine/beam/src/test/java/org/apache/tinkerpop/machine/beam/BeamTest.java
+++ 
b/java/machine/beam/src/test/java/org/apache/tinkerpop/machine/beam/BeamTest.java
@@ -23,11 +23,13 @@ import org.apache.tinkerpop.language.gremlin.Traversal;
 import org.apache.tinkerpop.language.gremlin.TraversalSource;
 import org.apache.tinkerpop.language.gremlin.TraversalUtil;
 import org.apache.tinkerpop.language.gremlin.__;
+import org.apache.tinkerpop.machine.bytecode.P;
 import org.apache.tinkerpop.machine.strategy.IdentityStrategy;
 import org.junit.jupiter.api.Test;
 
 import java.util.Arrays;
 
+import static org.apache.tinkerpop.language.gremlin.__.constant;
 import static org.apache.tinkerpop.language.gremlin.__.incr;
 import static org.apache.tinkerpop.language.gremlin.__.is;
 
@@ -47,6 +49,11 @@ public class BeamTest {
         System.out.println(traversal);
         System.out.println(traversal.toList());
         System.out.println("\n----------\n");
+        traversal = g.inject(Arrays.asList(1L, 
2L)).<Long>unfold().map(incr()).is(P.lt(constant(3L)));
+        System.out.println(TraversalUtil.getBytecode(traversal));
+        System.out.println(traversal);
+        System.out.println(traversal.toList());
+        System.out.println("\n----------\n");
         traversal = g.inject(1L).times(10).repeat(__.incr()).emit();
         System.out.println(TraversalUtil.getBytecode(traversal));
         System.out.println(traversal);
diff --git 
a/java/machine/pipes/src/test/java/org/apache/tinkerpop/machine/pipes/PipesTest.java
 
b/java/machine/pipes/src/test/java/org/apache/tinkerpop/machine/pipes/PipesTest.java
index e6b1a59..42b7ec5 100644
--- 
a/java/machine/pipes/src/test/java/org/apache/tinkerpop/machine/pipes/PipesTest.java
+++ 
b/java/machine/pipes/src/test/java/org/apache/tinkerpop/machine/pipes/PipesTest.java
@@ -23,6 +23,7 @@ import org.apache.tinkerpop.language.gremlin.Traversal;
 import org.apache.tinkerpop.language.gremlin.TraversalSource;
 import org.apache.tinkerpop.language.gremlin.TraversalUtil;
 import org.apache.tinkerpop.language.gremlin.__;
+import org.apache.tinkerpop.machine.bytecode.P;
 import org.apache.tinkerpop.machine.coefficient.LongCoefficient;
 import org.apache.tinkerpop.machine.strategy.IdentityStrategy;
 import org.junit.jupiter.api.Test;
@@ -51,6 +52,11 @@ public class PipesTest {
         System.out.println(traversal);
         System.out.println(traversal.toList());
         System.out.println("\n----------\n");
+        traversal = g.inject(Arrays.asList(1L, 
2L)).unfold().is(P.lt(__.constant(2L)));
+        System.out.println(TraversalUtil.getBytecode(traversal));
+        System.out.println(traversal);
+        System.out.println(traversal.toList());
+        System.out.println("\n----------\n");
         traversal = g.inject(1L).times(10).repeat(__.incr()).emit();
         System.out.println(TraversalUtil.getBytecode(traversal));
         System.out.println(traversal);
diff --git a/java/pom.xml b/java/pom.xml
index c404757..2486950 100644
--- a/java/pom.xml
+++ b/java/pom.xml
@@ -171,7 +171,7 @@ limitations under the License.
                         <source>11</source>
                         <target>11</target>
                         <compilerArgs>
-                            <arg>-parameters</arg>
+                            <object>-parameters</object>
                         </compilerArgs>
                     </configuration>
                 </plugin>

Reply via email to