[tinkerpop] 01/02: Adding JMH based benchmarking module with initial traversal benchmarks based on Marko's processor benchmarks.

2019-04-09 Thread twilmes
This is an automated email from the ASF dual-hosted git repository.

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

commit 12f732872b7adf402a8484f88424d6cb6b8fb11c
Author: Ted Wilmes 
AuthorDate: Tue Apr 9 15:06:01 2019 -0500

Adding JMH based benchmarking module with initial traversal benchmarks 
based on Marko's processor benchmarks.
---
 java/machine/machine-perf-test/pom.xml | 142 +
 .../benchmark/machine/PipesTraversalBenchmark.java |  27 
 .../machine/RxParallelTraversalBenchmark.java  |  27 
 .../machine/RxSerialTraversalBenchmark.java|  27 
 .../benchmark/util/AbstractBenchmarkBase.java  | 123 ++
 .../benchmark/util/AbstractProcessorBenchmark.java |  69 ++
 .../util/AbstractTraversalBenchmarkBase.java   |  37 ++
 .../tinkerpop/benchmark/util/ProcessorType.java|  23 
 .../tinkerpop/benchmark/util/WithProcessor.java|  32 +
 java/machine/pom.xml   |   1 +
 10 files changed, 508 insertions(+)

diff --git a/java/machine/machine-perf-test/pom.xml 
b/java/machine/machine-perf-test/pom.xml
new file mode 100644
index 000..2bbfa98
--- /dev/null
+++ b/java/machine/machine-perf-test/pom.xml
@@ -0,0 +1,142 @@
+
+http://maven.apache.org/POM/4.0.0;
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
+
+machine
+org.apache.tinkerpop
+4.0.0-SNAPSHOT
+
+4.0.0
+Apache TinkerPop :: Machine :: Machine-Perf-Test
+machine-perf-test
+
+
+1.21
+
+true
+${skipBenchmarks}
+
+
+
+
+org.apache.tinkerpop
+machine-core
+${project.version}
+
+
+org.apache.tinkerpop
+gremlin
+${project.version}
+
+
+org.apache.tinkerpop
+pipes
+${project.version}
+
+
+org.apache.tinkerpop
+rxjava
+${project.version}
+
+
+
+org.openjdk.jmh
+jmh-core
+${jmh.version}
+
+
+org.openjdk.jmh
+jmh-generator-annprocess
+${jmh.version}
+provided
+
+
+
+org.junit.jupiter
+junit-jupiter-api
+${junit.version}
+
+
+org.junit.jupiter
+junit-jupiter-engine
+${junit.version}
+
+
+
+
+
+maven-deploy-plugin
+
+true
+
+
+
+org.apache.maven.plugins
+maven-surefire-plugin
+
+
${project.build.sourceDirectory}
+
${project.build.outputDirectory}
+
+**/*Benchmark*.java
+
+
+**/*$*.class
+**/Abstract*
+**/*_jmhType*
+
+
+
${project.build.directory}/reports/benchmark/
+-server -Xms2g -Xmx2g
+10
+10
+2
+
+
+
+
+org.apache.maven.plugins
+maven-shade-plugin
+
+
+package
+
+shade
+
+
+
false
+
+
+org.openjdk.jmh.Main
+
+
+
+
+*:*
+
+META-INF/*.SF
+META-INF/*.DSA
+META-INF/*.RSA
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git 
a/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/machine/PipesTraversalBenchmark.java
 
b/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/machine/PipesTraversalBenchmark.java
new file mode 100644
index 000..8ce9ebc
--- /dev/null
+++ 

[tinkerpop] 02/02: Updated config reference after rebase.

2019-04-09 Thread twilmes
This is an automated email from the ASF dual-hosted git repository.

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

commit cb1fc2ec9ecb0f3c5f86e9cf847077a23ae85eb5
Author: Ted Wilmes 
AuthorDate: Tue Apr 9 16:17:44 2019 -0500

Updated config reference after rebase.
---
 .../org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git 
a/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java
 
b/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java
index 1da0d31..64b8af6 100644
--- 
a/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java
+++ 
b/java/machine/machine-perf-test/src/main/java/org/apache/tinkerpop/benchmark/util/AbstractProcessorBenchmark.java
@@ -55,7 +55,7 @@ public class AbstractProcessorBenchmark extends 
AbstractBenchmarkBase {
 break;
 case RX_PARALLEL:
 g = g.withProcessor(RxJavaProcessor.class,
-Map.of(RxJavaProcessor.RXJAVA_THREADS, 
Runtime.getRuntime().availableProcessors() - 1));
+Map.of(RxJavaProcessor.RX_THREAD_POOL_SIZE, 
Runtime.getRuntime().availableProcessors() - 1));
 break;
 default:
 throw new RuntimeException("Unrecognized processor type");



[tinkerpop] branch tp4-jmh created (now cb1fc2e)

2019-04-09 Thread twilmes
This is an automated email from the ASF dual-hosted git repository.

twilmes pushed a change to branch tp4-jmh
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git.


  at cb1fc2e  Updated config reference after rebase.

This branch includes the following new commits:

 new 12f7328  Adding JMH based benchmarking module with initial traversal 
benchmarks based on Marko's processor benchmarks.
 new cb1fc2e  Updated config reference after rebase.

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




[tinkerpop] branch master updated: Minor text fix now that we use SHA512 CTR

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 14f638a  Minor text fix now that we use SHA512 CTR
14f638a is described below

commit 14f638a49745a8e592272cf19bc3c3ab78ae542e
Author: Stephen Mallette 
AuthorDate: Tue Apr 9 16:57:07 2019 -0400

Minor text fix now that we use SHA512 CTR
---
 docs/site/home/downloads.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/site/home/downloads.html b/docs/site/home/downloads.html
index c7d4326..8501e53 100644
--- a/docs/site/home/downloads.html
+++ b/docs/site/home/downloads.html
@@ -155,7 +155,7 @@ limitations under the License.
   gpg --verify apache-gremlin-console-x.y.z-bin.zip.asc 
apache-gremlin-console-x.y.z-bin.zip
   
 
-Alternatively, consider verifying the SHA512 signature on the files. An 
SHA512 signature consists of 40 hex characters.
+Alternatively, consider verifying the SHA512 signature on the files. An 
SHA512 signature consists of 128 hex characters.
Ensure that the generated signature string matches the signature string 
published in the files above.
  
 



[tinkerpop] branch tp4 updated: learned about Disposable. Got rid of the AtomicBoolean in AbstractRxJava. Both serial and parallel processors support real-time streaming of results.

2019-04-09 Thread okram
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 ec18e21  learned about Disposable. Got rid of the AtomicBoolean in 
AbstractRxJava. Both serial and parallel processors support real-time streaming 
of results.
ec18e21 is described below

commit ec18e214bee503fc3fe94a1557c14f63df395bd7
Author: Marko A. Rodriguez 
AuthorDate: Tue Apr 9 13:20:28 2019 -0600

learned about Disposable. Got rid of the AtomicBoolean in AbstractRxJava. 
Both serial and parallel processors support real-time streaming of results.
---
 .../tinkerpop/machine/processor/rxjava/AbstractRxJava.java   | 5 +++--
 .../tinkerpop/machine/processor/rxjava/ParallelRxJava.java   | 9 +
 .../apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java  | 8 +++-
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java
 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java
index 4da0657..22a6e9e 100644
--- 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java
+++ 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/AbstractRxJava.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.machine.processor.rxjava;
 
+import io.reactivex.disposables.Disposable;
 import org.apache.tinkerpop.machine.bytecode.compiler.Compilation;
 import org.apache.tinkerpop.machine.processor.Processor;
 import org.apache.tinkerpop.machine.traverser.Traverser;
@@ -33,7 +34,7 @@ public abstract class AbstractRxJava implements 
Processor {
 static final int MAX_REPETITIONS = 8; // TODO: this needs to be a dynamic 
configuration
 
 boolean executed = false;
-final AtomicBoolean alive = new AtomicBoolean(Boolean.FALSE);
+Disposable disposable;
 final TraverserSet starts = new TraverserSet<>();
 final TraverserSet ends = new TraverserSet<>();
 final Compilation compilation;
@@ -63,8 +64,8 @@ public abstract class AbstractRxJava implements 
Processor {
 public void reset() {
 this.starts.clear();
 this.ends.clear();
+this.disposable = null;
 this.executed = false;
-this.alive.set(Boolean.FALSE);
 }
 
 protected abstract void prepareFlow();
diff --git 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
index daa8bd4..8828e5e 100644
--- 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
+++ 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
@@ -63,22 +63,23 @@ public final class ParallelRxJava extends 
AbstractRxJava {
 protected void prepareFlow() {
 if (!this.executed) {
 this.executed = true;
-this.alive.set(Boolean.TRUE);
-this.compile(
+this.disposable = this.compile(
 ParallelFlowable.from(Flowable.fromIterable(this.starts)).
 runOn(Schedulers.from(this.threadPool)), 
this.compilation).
 doOnNext(this.ends::add).
 sequential().
 doFinally(() -> {
-this.alive.set(Boolean.FALSE);
 if (null != this.bytecodeId) { // only the parent 
compilation should close the thread pool
 this.threadPool.shutdown();
 
RxJavaProcessor.THREAD_POOLS.remove(this.bytecodeId);
 }
 }).
-blockingSubscribe(); // thread this so results can be 
received before computation completes
+subscribe(); // don't block the execution so results can 
be streamed back in real-time
 
 }
+while (!this.disposable.isDisposed() && this.ends.isEmpty()) {
+// only return if there is a result ready from the flow (or the 
flow is dead)
+}
 }
 
 // EXECUTION PLAN COMPILER
diff --git 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
index 183f043..87d2c97 100644
--- 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
+++ 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
@@ -52,13 

[tinkerpop] branch tp4 updated: More work on ParallelRxJava thread pools. I also added SimpleRemoteParallelTest to check to make sure MachieServer + multi-threaded traversal execution play well togeth

2019-04-09 Thread okram
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 53d5623  More work on ParallelRxJava thread pools. I also added 
SimpleRemoteParallelTest to check to make sure MachieServer + multi-threaded 
traversal execution play well together. They do.
53d5623 is described below

commit 53d5623e34436a6debfc2adfde58a5a385b0724d
Author: Marko A. Rodriguez 
AuthorDate: Tue Apr 9 13:02:40 2019 -0600

More work on ParallelRxJava thread pools. I also added 
SimpleRemoteParallelTest to check to make sure MachieServer + multi-threaded 
traversal execution play well together. They do.
---
 .../tinkerpop/machine/AbstractTestSuite.java   | 15 +++---
 .../machine/processor/beam/SimpleRemoteTest.java   | 15 --
 .../machine/processor/pipes/SimpleRemoteTest.java  | 15 --
 .../machine/processor/rxjava/ParallelRxJava.java   | 11 +--
 .../machine/processor/rxjava/RxJavaProcessor.java  | 15 +++---
 .../processor/rxjava/strategy/RxJavaStrategy.java  |  8 
 .../machine/processor/rxjava/RxJavaBenchmark.java  |  4 ++--
 .../processor/rxjava/SimpleLocalParallelTest.java  |  2 +-
 ...rialTest.java => SimpleRemoteParallelTest.java} | 23 +-
 .../processor/rxjava/SimpleRemoteSerialTest.java   | 15 --
 10 files changed, 77 insertions(+), 46 deletions(-)

diff --git 
a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java
 
b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java
index 8524292..822636e 100644
--- 
a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java
+++ 
b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/AbstractTestSuite.java
@@ -40,16 +40,17 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 public abstract class AbstractTestSuite {
 
 protected Machine machine;
-protected TraversalSource g;
+TraversalSource g;
 
-public AbstractTestSuite(final Machine machine, final Bytecode source) {
+AbstractTestSuite(final Machine machine, final Bytecode source) {
 this.machine = machine;
 this.g = Gremlin.traversal(machine);
-BytecodeUtil.mergeSourceInstructions(source, 
TraversalUtil.getBytecode(g));
+BytecodeUtil.mergeSourceInstructions(source, 
TraversalUtil.getBytecode(this.g));
 }
 
 @AfterAll
 public void shutdown() {
+this.g.close();
 this.machine.close();
 }
 
@@ -69,4 +70,12 @@ public abstract class AbstractTestSuite {
 assertFalse(traversal.hasNext());
 }
 
+public static void sleep(final int time) {
+try {
+Thread.sleep(time);
+} catch (final InterruptedException e) {
+// do nothing
+}
+}
+
 }
diff --git 
a/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java
 
b/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java
index 5b3448a..72fac52 100644
--- 
a/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java
+++ 
b/java/machine/processor/beam/src/test/java/org/apache/tinkerpop/machine/processor/beam/SimpleRemoteTest.java
@@ -18,12 +18,14 @@
  */
 package org.apache.tinkerpop.machine.processor.beam;
 
+import org.apache.tinkerpop.machine.AbstractTestSuite;
 import org.apache.tinkerpop.machine.SimpleTestSuite;
 import org.apache.tinkerpop.machine.bytecode.Bytecode;
 import org.apache.tinkerpop.machine.bytecode.compiler.CoreCompiler;
 import org.apache.tinkerpop.machine.species.remote.MachineServer;
 import org.apache.tinkerpop.machine.species.remote.RemoteMachine;
 import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.AfterEach;
 
 import java.util.Map;
 
@@ -46,14 +48,15 @@ public class SimpleRemoteTest extends SimpleTestSuite {
 super(RemoteMachine.open(, "localhost", ), BYTECODE);
 }
 
+@AfterEach
+void delayShutdown() {
+AbstractTestSuite.sleep(100);
+}
+
 @AfterAll
-static void stopServer() {
+void stopServer() {
 SERVER.close();
-try {
-Thread.sleep(10);
-} catch (final InterruptedException e) {
-
-}
+AbstractTestSuite.sleep(100);
 }
 
 }
\ No newline at end of file
diff --git 
a/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/SimpleRemoteTest.java
 
b/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/SimpleRemoteTest.java
index 5e0b32b..f895ada 100644
--- 
a/java/machine/processor/pipes/src/test/java/org/apache/tinkerpop/machine/processor/pipes/SimpleRemoteTest.java
+++ 

[GitHub] [tinkerpop] spmallette commented on issue #1075: Docker gremlin-server test script

2019-04-09 Thread GitBox
spmallette commented on issue #1075: Docker gremlin-server test script
URL: https://github.com/apache/tinkerpop/pull/1075#issuecomment-481362889
 
 
   This works nicely for me. Was able to start up Gremlin Server with the above 
command and then run c# tests out of the debugger in Rider. Looking at the file 
changes on this PR, it looks like a fair bit of copy/paste of our existing 
config files to `docker/` - is that right? or are there substantive changes in 
those new files? if not substantive and they are just copies, can we figure out 
how to single source them somehow so that we don't have to remember to update 
both places when we have a change?
   
   i put a fair bit of effort into trying to unify the 
`gremlin-server-integration*.yaml` test files - would be nice to just have a 
single set to work with that drives all tests if we can.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[tinkerpop] branch tp4 updated: thread pool hell. I have it so RxJavaStrategy analyzes nested compilations to see if they are 'simple' or not. if they are simple, then a serial flow is used to execute

2019-04-09 Thread okram
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 ef0fd1f  thread pool hell. I have it so RxJavaStrategy analyzes nested 
compilations to see if they are 'simple' or not. if they are simple, then a 
serial flow is used to execute it. This way, we don't exhaust the threadpool 
with overly threaded nests of compilations. RxJavaStrategy is the first complex 
strategy. It uses the new Bytecode hiearchy to assoicate a thread pool with the 
root bytecode.
ef0fd1f is described below

commit ef0fd1f3a6f87939ebd063f14f078cf47750f3ac
Author: Marko A. Rodriguez 
AuthorDate: Tue Apr 9 11:51:42 2019 -0600

thread pool hell. I have it so RxJavaStrategy analyzes nested compilations 
to see if they are 'simple' or not. if they are simple, then a serial flow is 
used to execute it. This way, we don't exhaust the threadpool with overly 
threaded nests of compilations. RxJavaStrategy is the first complex strategy. 
It uses the new Bytecode hiearchy to assoicate a thread pool with the root 
bytecode.
---
 .../machine/processor/rxjava/ParallelRxJava.java   |  2 +-
 .../machine/processor/rxjava/RxJavaProcessor.java  |  4 ++--
 .../machine/processor/rxjava/SerialRxJava.java |  2 +-
 .../processor/rxjava/strategy/RxJavaStrategy.java  | 27 --
 .../machine/processor/rxjava/RxJavaBenchmark.java  |  6 ++---
 .../processor/rxjava/SimpleLocalParallelTest.java  |  2 +-
 6 files changed, 28 insertions(+), 15 deletions(-)

diff --git 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
index 5b81368..9c9476d 100644
--- 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
+++ 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/ParallelRxJava.java
@@ -64,8 +64,8 @@ public final class ParallelRxJava extends 
AbstractRxJava {
 runOn(Schedulers.from(this.threadPool)), 
this.compilation).
 doOnNext(this.ends::add).
 sequential().
-doOnComplete(() -> this.alive.set(Boolean.FALSE)).
 doFinally(() -> {
+this.alive.set(Boolean.FALSE);
 if 
(this.compilation.getBytecode().getParent().isEmpty()) // only the parent 
compilation should close the thread pool
 this.threadPool.shutdown();
 }).
diff --git 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java
 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java
index be5d850..e9792eb 100644
--- 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java
+++ 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/RxJavaProcessor.java
@@ -56,8 +56,8 @@ public final class RxJavaProcessor implements 
ProcessorFactory {
 public  Processor mint(final Compilation 
compilation) {
 final int threads = (int) 
this.configuration.getOrDefault(RxJavaProcessor.RXJAVA_THREADS, 0);
 final String id = (String) 
BytecodeUtil.getSourceInstructions(BytecodeUtil.getRootBytecode(compilation.getBytecode()),
 RX_BYCODE_ID).get(0).args()[0];
-final ExecutorService threadPool = 
RxJavaProcessor.THREAD_POOLS.compute(id, (key, value) -> null == value && 
threads > 0 ? Executors.newCachedThreadPool() : value);
-// System.out.println(id + "--" + threadPool + "---" + THREAD_POOLS);
+final ExecutorService threadPool = threads > 0 ? 
RxJavaProcessor.THREAD_POOLS.computeIfAbsent(id, key -> 
Executors.newFixedThreadPool(threads)) : null;
+// System.out.println(id + "::" + threads + "--" + threadPool);
 return null == threadPool ?
 new SerialRxJava<>(compilation) :
 new ParallelRxJava<>(compilation, threadPool);
diff --git 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
index ace99b4..183f043 100644
--- 
a/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
+++ 
b/java/machine/processor/rxjava/src/main/java/org/apache/tinkerpop/machine/processor/rxjava/SerialRxJava.java
@@ -55,7 +55,7 @@ public final class SerialRxJava extends 
AbstractRxJava {
 this.alive.set(Boolean.TRUE);
 

[GitHub] [tinkerpop] spmallette edited a comment on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction

2019-04-09 Thread GitBox
spmallette edited a comment on issue #1094: TINKERPOP-2195: Add finally block 
in HttpGremlinEndpointHandler to commit transaction
URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-481354208
 
 
   I think that your implementation should configure `ReferenceElementStrategy` 
(which for 3.4.0 is enabled by default in Gremlin Server sample init files):
   
   
https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/ReferenceElementStrategy.java
   
   and which will detach your elements at iteration time when building the 
`ResponseMessage`. No new transaction will be opened on serialization. If you 
don't like the "references" that `ReferenceElementStrategy` produces then you 
could write your own strategy to produce "detached" objects just as easily to 
same effect - just used `DetachedFactory` rather than `ReferenceFactory`:
   
   
https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
   
   That should solve your problem without this change - right?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] [tinkerpop] spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction

2019-04-09 Thread GitBox
spmallette commented on issue #1094: TINKERPOP-2195: Add finally block in 
HttpGremlinEndpointHandler to commit transaction
URL: https://github.com/apache/tinkerpop/pull/1094#issuecomment-481354208
 
 
   I think that your implementation should configure `ReferenceElementStrategy` 
(which for 3.4.0 is enabled by default):
   
   
https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/finalization/ReferenceElementStrategy.java
   
   and which will detach your elements at iteration time when building the 
`ResponseMessage`. No new transaction will be opened on serialization. If you 
don't like the "references" that `ReferenceElementStrategy` produces then you 
could write your own strategy to produce "detached" objects just as easily to 
same effect - just used `DetachedFactory` rather than `ReferenceFactory`:
   
   
https://github.com/apache/tinkerpop/blob/7062595b72108e9545eaceb62e45b4ea7d946ed6/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/detached/DetachedFactory.java
   
   That should solve your problem without this change - right?


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[tinkerpop] branch tp4 updated: nested Bytecode now knows about its parent bytecode. It is also possible to walk the Bytecode tree up to the root. This is used to share information between Compilation

2019-04-09 Thread okram
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 ae6ac40  nested Bytecode now knows about its parent bytecode. It is 
also possible to walk the Bytecode tree up to the root. This is used to share 
information between Compilations such as thread pool info in ParallelRxJava. 
Noticing a weird relationship between ProcessorFactory and Compilation. Need to 
think things through. Anywho, for now ParallelRxJava traverasls share a common 
thread pool for their execution. Need to get smart and not thread simple nests 
so we don't spawn so ma [...]
ae6ac40 is described below

commit ae6ac400ba1eb511ab52995dad430dda12365d99
Author: Marko A. Rodriguez 
AuthorDate: Tue Apr 9 09:03:34 2019 -0600

nested Bytecode now knows about its parent bytecode. It is also possible to 
walk the Bytecode tree up to the root. This is used to share information 
between Compilations such as thread pool info in ParallelRxJava. Noticing a 
weird relationship between ProcessorFactory and Compilation. Need to think 
things through. Anywho, for now ParallelRxJava traverasls share a common thread 
pool for their execution. Need to get smart and not thread simple nests so we 
don't spawn so many threads.
---
 .../tinkerpop/language/gremlin/TraversalUtil.java  |  5 +-
 .../language/gremlin/common/CommonTraversal.java   |  6 +--
 .../language/gremlin/core/CoreTraversal.java   |  6 +--
 .../tinkerpop/machine/bytecode/Bytecode.java   | 33 +++-
 .../tinkerpop/machine/bytecode/BytecodeUtil.java   | 24 +
 .../tinkerpop/machine/bytecode/Instruction.java| 16 ++
 .../machine/bytecode/compiler/Compilation.java |  8 +++
 .../tinkerpop/machine/util/StringFactory.java  |  5 ++
 .../tinkerpop/machine/bytecode/BytecodeTest.java   | 60 ++
 .../machine/processor/rxjava/ParallelRxJava.java   | 13 ++---
 .../machine/processor/rxjava/RxJavaProcessor.java  | 22 ++--
 .../processor/rxjava/strategy/RxJavaStrategy.java  | 20 ++--
 .../machine/processor/rxjava/RxJavaBenchmark.java  |  2 +-
 .../processor/rxjava/SimpleLocalParallelTest.java  |  2 +-
 14 files changed, 183 insertions(+), 39 deletions(-)

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 efdf824..3587e4c 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
@@ -45,9 +45,8 @@ public final class TraversalUtil {
 }
 
 public static  Traversal insertRepeatInstruction(final 
AbstractTraversal traversal, final char type, final Object argument) {
-final Instruction lastInstruction = 
traversal.bytecode.lastInstruction();
-if (lastInstruction.op().equals(Symbols.REPEAT))
-lastInstruction.addArgs(type, argument);
+if (traversal.bytecode.lastInstruction().op().equals(Symbols.REPEAT))
+traversal.bytecode.addArgs(type, argument);
 else
 traversal.addInstruction(Symbols.REPEAT, type, argument);
 return traversal;
diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java
 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java
index 7d44169..95aeb51 100644
--- 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java
+++ 
b/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/common/CommonTraversal.java
@@ -61,13 +61,13 @@ public class CommonTraversal extends 
AbstractTraversal {
 
 @Override
 public Traversal by(final String byString) {
-this.bytecode.lastInstruction().addArg(byString);
+this.bytecode.addArgs(byString);
 return this;
 }
 
 @Override
 public Traversal by(final Traversal byTraversal) {
-
this.bytecode.lastInstruction().addArg(TraversalUtil.getBytecode(byTraversal));
+this.bytecode.addArgs(TraversalUtil.getBytecode(byTraversal));
 return this;
 }
 
@@ -78,7 +78,7 @@ public class CommonTraversal extends 
AbstractTraversal {
 
 @Override
 public Traversal by(final Traversal byTraversal, final 
Order order) {
-
this.bytecode.lastInstruction().addArgs(TraversalUtil.getBytecode(byTraversal), 
order.name());
+this.bytecode.addArgs(TraversalUtil.getBytecode(byTraversal), 
order.name());
 return this;
 }
 
diff --git 
a/java/language/gremlin/src/main/java/org/apache/tinkerpop/language/gremlin/core/CoreTraversal.java
 

[GitHub] [tinkerpop] moayad86 opened a new pull request #1094: TINKERPOP-2195: Add finally block in HttpGremlinEndpointHandler to commit transaction

2019-04-09 Thread GitBox
moayad86 opened a new pull request #1094: TINKERPOP-2195: Add finally block in 
HttpGremlinEndpointHandler to commit transaction
URL: https://github.com/apache/tinkerpop/pull/1094
 
 
   https://issues.apache.org/jira/browse/TINKERPOP-2195
   
   An improvement is to do the serialisation first, and add a finally block to 
the try...catch statement, where transaction commit can take place. More 
information in the ticket.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[tinkerpop] branch tp4 updated: cleaned up Traverser species equals() and hashCode() some more. Scary to have faults in those.

2019-04-09 Thread okram
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 a633015  cleaned up Traverser species equals() and hashCode() some 
more. Scary to have faults in those.
a633015 is described below

commit a633015216f1646b0efa876003dd3f07b8e9e834
Author: Marko A. Rodriguez 
AuthorDate: Tue Apr 9 06:58:46 2019 -0600

cleaned up Traverser species equals() and hashCode() some more. Scary to 
have faults in those.
---
 .../apache/tinkerpop/machine/traverser/species/COP_Traverser.java  | 6 --
 .../apache/tinkerpop/machine/traverser/species/COR_Traverser.java  | 7 ++-
 .../tinkerpop/machine/traverser/species/ProjectedTraverser.java| 3 ++-
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java
index 24ad297..f2bda7a 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COP_Traverser.java
@@ -57,12 +57,14 @@ public class COP_Traverser extends CO_Traverser 
{
 
 @Override
 public boolean equals(final Object other) {
-return other instanceof COP_Traverser && ((COP_Traverser) 
other).object.equals(this.object);
+return other instanceof COP_Traverser &&
+((COP_Traverser) other).object.equals(this.object) &&
+((COP_Traverser) other).path.equals(this.path);
 }
 
 @Override
 public int hashCode() {
-return this.object.hashCode(); // TODO: include path
+return this.object.hashCode() ^ this.path.hashCode();
 }
 
 @Override
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
index ba4184a..d5ed29c 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
@@ -29,7 +29,7 @@ public class COR_Traverser extends CO_Traverser {
 
 private short loops = 0;
 
-public COR_Traverser(final Coefficient coefficient, final S object) {
+COR_Traverser(final Coefficient coefficient, final S object) {
 super(coefficient, object);
 }
 
@@ -62,4 +62,9 @@ public class COR_Traverser extends CO_Traverser {
 this.object.equals(((COR_Traverser) other).object) &&
 this.loops == ((COR_Traverser) other).loops;
 }
+
+@Override
+public int hashCode() {
+return super.hashCode() ^ this.loops;
+}
 }
diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java
index 935a516..fe6c7a4 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/ProjectedTraverser.java
@@ -83,7 +83,8 @@ public class ProjectedTraverser implements 
Traverser {
 
 @Override
 public boolean equals(final Object object) {
-return object instanceof ProjectedTraverser && 
this.baseTraverser.equals(((ProjectedTraverser) object).baseTraverser);
+return object instanceof ProjectedTraverser &&
+this.baseTraverser.equals(((ProjectedTraverser) 
object).baseTraverser);
 }
 
 @Override



[tinkerpop] branch tp4 updated: found a bug in COR_Traverser that was showing up in looping in Pipes. Didn't do equals() correctly and TraverserSet traversers were merging inappropriatly.

2019-04-09 Thread okram
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 e252855  found a bug in COR_Traverser that was showing up in looping 
in Pipes. Didn't do equals() correctly and TraverserSet traversers were merging 
inappropriatly.
e252855 is described below

commit e252855c136126b19a09aaacb592c61c535d909b
Author: Marko A. Rodriguez 
AuthorDate: Tue Apr 9 06:53:02 2019 -0600

found a bug in COR_Traverser that was showing up in looping in Pipes. 
Didn't do equals() correctly and TraverserSet traversers were merging 
inappropriatly.
---
 .../apache/tinkerpop/machine/traverser/species/COR_Traverser.java  | 7 +++
 .../main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java| 2 +-
 .../org/apache/tinkerpop/machine/processor/pipes/BranchStep.java   | 4 ++--
 3 files changed, 10 insertions(+), 3 deletions(-)

diff --git 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
index b9ccc67..ba4184a 100644
--- 
a/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
+++ 
b/java/machine/machine-core/src/main/java/org/apache/tinkerpop/machine/traverser/species/COR_Traverser.java
@@ -55,4 +55,11 @@ public class COR_Traverser extends CO_Traverser {
 clone.coefficient.multiply(function.coefficient());
 return clone;
 }
+
+@Override
+public boolean equals(final Object other) {
+return other instanceof COR_Traverser &&
+this.object.equals(((COR_Traverser) other).object) &&
+this.loops == ((COR_Traverser) other).loops;
+}
 }
diff --git 
a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java
 
b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java
index 31177e4..862ff71 100644
--- 
a/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java
+++ 
b/java/machine/machine-test/src/main/java/org/apache/tinkerpop/machine/SimpleTestSuite.java
@@ -225,7 +225,7 @@ public class SimpleTestSuite extends 
AbstractTestSuite {
 g.inject(1L).repeat(union(incr(), 
__.incr().incr())).times(2));
 }
 
-//@Test
+@Test
 void g_injectX1X_repeatXunionXincr__incr_incrXX_timesX3X() {
 verify(List.of(4L, 5L, 5L, 6L, 5L, 6L, 6L, 7L),
 g.inject(1L).repeat(union(incr(), 
__.incr().incr())).times(3));
diff --git 
a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java
 
b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java
index 0ef8280..667af99 100644
--- 
a/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java
+++ 
b/java/machine/processor/pipes/src/main/java/org/apache/tinkerpop/machine/processor/pipes/BranchStep.java
@@ -71,8 +71,8 @@ final class BranchStep extends AbstractStep {
 }
 }
 if (!found) {
-for (final Compilation defaultBranches : 
this.defaultBranches) {
-((MultiIterator>) 
this.nextTraversers).addIterator(defaultBranches.addTraverser(traverser.clone()));
+for (final Compilation defaultBranch : 
this.defaultBranches) {
+((MultiIterator>) 
this.nextTraversers).addIterator(defaultBranch.addTraverser(traverser.clone()));
 }
 }
 }



[tinkerpop] branch TINKERPOP-2181 deleted (was db335da)

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


 was db335da  TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin 
Console

The revisions that were on this branch are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[GitHub] [tinkerpop] spmallette commented on issue #1088: TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console

2019-04-09 Thread GitBox
spmallette commented on issue #1088: TINKERPOP-2181 Allow ctrl+c to break a 
command in Gremlin Console
URL: https://github.com/apache/tinkerpop/pull/1088#issuecomment-481221194
 
 
   And here's the support for breaking infinite loops on `master`:
   
   
https://github.com/apache/tinkerpop/commit/7062595b72108e9545eaceb62e45b4ea7d946ed6


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[tinkerpop] branch master updated: Support loop interruption in Console with ctrl+c

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/master by this push:
 new 7062595  Support loop interruption in Console with ctrl+c
7062595 is described below

commit 7062595b72108e9545eaceb62e45b4ea7d946ed6
Author: Stephen Mallette 
AuthorDate: Tue Apr 9 07:56:40 2019 -0400

Support loop interruption in Console with ctrl+c

Couldn't support this with older versions of groovysh/jline so versions 
before the 3.4.2 line won't be able to break out of while(true){} types of 
situations. CTR
---
 .../groovy/org/apache/tinkerpop/gremlin/console/Console.groovy |  7 +++
 .../apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy| 10 +-
 .../console/jsr223/GephiRemoteAcceptorIntegrateTest.java   |  2 +-
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
index 9324f6d..d275dc2 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/Console.groovy
@@ -47,12 +47,9 @@ import org.codehaus.groovy.tools.shell.IO
 import org.codehaus.groovy.tools.shell.InteractiveShellRunner
 import org.codehaus.groovy.tools.shell.commands.SetCommand
 import org.fusesource.jansi.Ansi
-import picocli.CommandLine
 import sun.misc.Signal
 import sun.misc.SignalHandler
 
-import java.util.concurrent.atomic.AtomicBoolean
-
 /**
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
@@ -99,7 +96,7 @@ class Console {
 }
 })
 
-groovy = new GremlinGroovysh(mediator)
+groovy = new GremlinGroovysh(mediator, io)
 
 def commandsToRemove = groovy.getRegistry().commands().findAll { it 
instanceof SetCommand }
 commandsToRemove.each { groovy.getRegistry().remove(it) }
@@ -121,6 +118,8 @@ class Console {
 imports.getFieldClasses().collect { Mediator.IMPORT_STATIC_SPACE + 
it.getCanonicalName() + Mediator.IMPORT_WILDCARD}.each{ groovy.execute(it) }
 
 final InteractiveShellRunner runner = new 
InteractiveShellRunner(groovy, handlePrompt)
+runner.reader.setHandleUserInterrupt(false)
+runner.reader.setHandleLitteralNext(false)
 runner.setErrorHandler(handleError)
 try {
 final FileHistory history = new FileHistory(new 
File(ConsoleFs.HISTORY_FILE))
diff --git 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy
 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy
index f5fa16a..96015db 100644
--- 
a/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy
+++ 
b/gremlin-console/src/main/groovy/org/apache/tinkerpop/gremlin/console/GremlinGroovysh.groovy
@@ -18,9 +18,13 @@
  */
 package org.apache.tinkerpop.gremlin.console
 
+import groovy.transform.ThreadInterrupt
 import org.apache.tinkerpop.gremlin.console.commands.GremlinSetCommand
+import org.codehaus.groovy.control.CompilerConfiguration
+import org.codehaus.groovy.control.customizers.ASTTransformationCustomizer
 import org.codehaus.groovy.tools.shell.Command
 import org.codehaus.groovy.tools.shell.Groovysh
+import org.codehaus.groovy.tools.shell.IO
 import org.codehaus.groovy.tools.shell.ParseCode
 import org.codehaus.groovy.tools.shell.Parser
 import org.codehaus.groovy.tools.shell.util.CommandArgumentParser
@@ -33,8 +37,12 @@ import 
org.codehaus.groovy.tools.shell.util.CommandArgumentParser
 class GremlinGroovysh extends Groovysh {
 
 private final Mediator mediator
+private final static CompilerConfiguration compilerConfig = new 
CompilerConfiguration(CompilerConfiguration.DEFAULT) {{
+addCompilationCustomizers(new 
ASTTransformationCustomizer(ThreadInterrupt.class))
+}}
 
-public GremlinGroovysh(final Mediator mediator) {
+public GremlinGroovysh(final Mediator mediator, final IO io) {
+super(io, compilerConfig)
 this.mediator = mediator
 }
 
diff --git 
a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java
 
b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java
index 9a1c541..b1f8eff 100644
--- 
a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java
+++ 
b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/GephiRemoteAcceptorIntegrateTest.java
@@ -55,7 +55,7 @@ import static org.junit.Assert.assertThat;
  * @author Stephen Mallette (http://stephen.genoprime.com)
  */
 public class 

[tinkerpop] branch tp33 updated (bc2c3f5 -> ccdc7c2)

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


from bc2c3f5  Merge pull request #1087 from apache/TINKERPOP-2191
 add db335da  TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin 
Console
 add ccdc7c2  Merge branch 'TINKERPOP-2181' into tp33

No new revisions were added by this update.

Summary of changes:
 CHANGELOG.asciidoc |  1 +
 docs/src/reference/gremlin-applications.asciidoc   | 25 +++
 docs/src/upgrade/release-3.3.x.asciidoc| 17 +
 .../tinkerpop/gremlin/console/Console.groovy   | 67 -
 .../gremlin/console/GremlinGroovysh.groovy | 84 --
 .../tinkerpop/gremlin/console/Mediator.groovy  |  7 ++
 6 files changed, 146 insertions(+), 55 deletions(-)



[GitHub] [tinkerpop] spmallette merged pull request #1088: TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin Console

2019-04-09 Thread GitBox
spmallette merged pull request #1088: TINKERPOP-2181 Allow ctrl+c to break a 
command in Gremlin Console
URL: https://github.com/apache/tinkerpop/pull/1088
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[tinkerpop] branch master updated (87fe157 -> ed318bb)

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


from 87fe157  Merge pull request #1093 from nastra/negative-text-predicates
 new db335da  TINKERPOP-2181 Allow ctrl+c to break a command in Gremlin 
Console
 new ccdc7c2  Merge branch 'TINKERPOP-2181' into tp33
 new ed318bb  Merge branch 'tp33'

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


Summary of changes:
 CHANGELOG.asciidoc |  1 +
 docs/src/reference/gremlin-applications.asciidoc   | 25 +++
 docs/src/upgrade/release-3.3.x.asciidoc| 17 +
 .../tinkerpop/gremlin/console/Console.groovy   | 67 -
 .../gremlin/console/GremlinGroovysh.groovy | 84 --
 .../tinkerpop/gremlin/console/Mediator.groovy  |  7 ++
 6 files changed, 146 insertions(+), 55 deletions(-)



[GitHub] [tinkerpop] spmallette commented on issue #1076: TINKERPOP-2112 Fold property() so that T values can work in any order

2019-04-09 Thread GitBox
spmallette commented on issue #1076: TINKERPOP-2112 Fold property() so that T 
values can work in any order
URL: https://github.com/apache/tinkerpop/pull/1076#issuecomment-481198197
 
 
   Ok - this is finally good now. I rolled back an eager attempt at improvement 
around cardinality checks on the graph when folding.  That proved to be a mess 
because we don't do a great job enforcing behavior for that in our test suite 
so every graph is a little different unfortunately.  The current approach to 
folding seems to fix the initial problem reported with `T.id` (and some other 
noted issues) without breaking existing behavior.


This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[tinkerpop] branch TINKERPOP-2112 updated (e99496a -> 14d1fd0)

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


 discard e99496a  TINKERPOP-2112 Fold property() so that T values can work in 
any order
 new 70c8f7e  Bump GMavenPlus to 1.6.3 CTR
 new 9334272  TINKERPOP-2180: Make sure user.working_dir is still respected 
properly
 new 62158d2  TINKERPOP-2180: Fix -l DEBUG
 new 06cc959  TINKERPOP-2179: Have SerializationException extend IOException
 new b59d779  Merge pull request #1083 from newkek/TINKERPOP-2179
 new 0769976  Implemented EdgeLabelVerificationStrategy
 new bc2c3f5  Merge pull request #1087 from apache/TINKERPOP-2191
 new 14d1fd0  TINKERPOP-2112 Fold property() so that T values can work in 
any order

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

 * -- * -- B -- O -- O -- O   (e99496a)
\
 N -- N -- N   refs/heads/TINKERPOP-2112 (14d1fd0)

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

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

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


Summary of changes:
 CHANGELOG.asciidoc |   1 +
 docs/src/upgrade/release-3.3.x.asciidoc|  38 +
 gremlin-console/src/main/bin/gremlin.sh|  13 +-
 .../src/test/python/tests/test_console.py  |   5 +
 .../tinkerpop/gremlin/jsr223/CoreImports.java  |   2 +
 .../EdgeLabelVerificationStrategy.java | 131 ++
 .../structure/io/graphson/GraphSONModule.java  |   5 +
 .../gremlin/structure/io/gryo/GryoVersion.java |   7 +-
 .../EdgeLabelVerificationStrategyTest.java | 188 +
 .../gremlin/driver/ser/SerializationException.java |   8 +-
 .../gremlin/driver/SerializationExceptionTest.java |  31 ++--
 pom.xml|   2 +-
 12 files changed, 408 insertions(+), 23 deletions(-)
 create mode 100644 
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategy.java
 create mode 100644 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/verification/EdgeLabelVerificationStrategyTest.java
 copy 
gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/structure/DirectionTest.java
 => 
gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/SerializationExceptionTest.java
 (59%)



[tinkerpop] branch TINKERPOP-2112 updated (5ccdf56 -> e99496a)

2019-04-09 Thread spmallette
This is an automated email from the ASF dual-hosted git repository.

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


 discard 5ccdf56  TINKERPOP-2112 Fold property() so that T values can work in 
any order
 new e99496a  TINKERPOP-2112 Fold property() so that T values can work in 
any order

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

 * -- * -- B -- O -- O -- O   (5ccdf56)
\
 N -- N -- N   refs/heads/TINKERPOP-2112 (e99496a)

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

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

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


Summary of changes:
 .../traversal/dsl/graph/GraphTraversal.java| 23 +-
 .../strategy/decoration/EventStrategyTest.java |  2 +-
 .../neo4j/structure/trait/MultiMetaNeo4jTrait.java |  3 ++-
 3 files changed, 12 insertions(+), 16 deletions(-)