Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-1538-tp32 [created] 3bc691119


Merge branch 'TINKERPOP-1538' into TINKERPOP-1538-tp32

Conflicts:
        
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
        
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
        
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerSessionIntegrateTest.java
        
gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
        
gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml


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

Branch: refs/heads/TINKERPOP-1538-tp32
Commit: 8818db4754dc6bbac7dc0f5a7ac4f40ab1386341
Parents: fa9f898 569753e
Author: Stephen Mallette <[email protected]>
Authored: Sun Nov 13 16:54:32 2016 -0500
Committer: Stephen Mallette <[email protected]>
Committed: Sun Nov 13 16:54:32 2016 -0500

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../src/main/java/Service.java                  |  2 +-
 .../src/test/java/ServiceTest.java              |  2 +-
 .../src/test/resources/gremlin-server.yaml      |  2 +-
 .../plugin/gremlin-server-integration.yaml      |  2 +-
 .../gremlin/console/groovy/plugin/remote.yaml   |  2 +-
 .../AbstractGremlinServerPerformanceTest.java   |  2 +-
 .../server/GremlinAdditionPerformanceTest.java  |  2 +-
 .../server/GremlinDriverIntegrateTest.java      | 92 ++++++++++----------
 .../server/GremlinResultSetIntegrateTest.java   |  2 +-
 .../server/GremlinServerAuthIntegrateTest.java  | 24 ++---
 .../GremlinServerAuthOldIntegrateTest.java      | 25 +++---
 .../server/GremlinServerHttpIntegrateTest.java  | 92 ++++++++++----------
 .../server/GremlinServerIntegrateTest.java      | 66 +++++++-------
 .../GremlinServerSessionIntegrateTest.java      | 17 ++--
 .../server/GremlinTraversalPerformanceTest.java |  2 +-
 .../gremlin/server/TestClientFactory.java       | 60 +++++++++++++
 .../server/gremlin-server-integration.yaml      |  2 +-
 .../server/gremlin-server-performance.yaml      |  2 +-
 19 files changed, 234 insertions(+), 165 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/CHANGELOG.asciidoc
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/groovy/plugin/gremlin-server-integration.yaml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/AbstractGremlinServerPerformanceTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinAdditionPerformanceTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
index d8aff4a,685b7d4..832ae7f
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinDriverIntegrateTest.java
@@@ -175,38 -133,8 +175,38 @@@ public class GremlinDriverIntegrateTes
      }
  
      @Test
 +    public void shouldKeepAliveForWebSockets() throws Exception {
 +        // keep the connection pool size at 1 to remove the possibility of 
lots of connections trying to ping which will
 +        // complicate the assertion logic
 +        final Cluster cluster = Cluster.build().
 +                minConnectionPoolSize(1).
 +                maxConnectionPoolSize(1).
 +                keepAliveInterval(1000).create();
 +        final Client client = cluster.connect();
 +
 +        // fire up lots of requests so as to schedule/deschedule lots of ping 
jobs
 +        for (int ix = 0; ix < 500; ix++) {
 +            assertEquals(2, client.submit("1+1").all().get().get(0).getInt());
 +        }
 +
 +        // don't send any messages for a bit so that the driver pings in the 
background
 +        Thread.sleep(3000);
 +
 +        // make sure no bonus messages sorta fire off once we get back to 
sending requests
 +        for (int ix = 0; ix < 500; ix++) {
 +            assertEquals(2, client.submit("1+1").all().get().get(0).getInt());
 +        }
 +
 +        // there really shouldn't be more than 3 of these sent. should 
definitely be at least one though
 +        final long messages = 
recordingAppender.getMessages().stream().filter(m -> m.contains("Received 
response from keep-alive request")).count();
 +        assertThat(messages, allOf(greaterThan(0L), lessThanOrEqualTo(3L)));
 +
 +        cluster.close();
 +    }
 +
 +    @Test
      public void shouldEventuallySucceedAfterChannelLevelError() throws 
Exception {
-         final Cluster cluster = Cluster.build().addContactPoint("localhost")
+         final Cluster cluster = TestClientFactory.build()
                  .reconnectIntialDelay(500)
                  .reconnectInterval(500)
                  .maxContentLength(1024).create();
@@@ -678,8 -606,8 +678,8 @@@
      }
  
      @Test
 -    public void shouldWorkWithGraphSONSerialization() throws Exception {
 +    public void shouldWorkWithGraphSONV1Serialization() throws Exception {
-         final Cluster cluster = 
Cluster.build("localhost").serializer(Serializers.GRAPHSON_V1D0).create();
+         final Cluster cluster = 
TestClientFactory.build().serializer(Serializers.GRAPHSON_V1D0).create();
          final Client client = cluster.connect();
  
          final List<Result> r = 
client.submit("TinkerFactory.createModern().traversal().V(1)").all().join();
@@@ -714,43 -642,9 +714,43 @@@
      }
  
      @Test
 +    public void shouldWorkWithGraphSONV2Serialization() throws Exception {
 +        final Cluster cluster = 
Cluster.build("localhost").serializer(Serializers.GRAPHSON_V2D0).create();
 +        final Client client = cluster.connect();
 +
 +        final List<Result> r = 
client.submit("TinkerFactory.createModern().traversal().V(1)").all().join();
 +        assertEquals(1, r.size());
 +
 +        final Vertex v = r.get(0).get(DetachedVertex.class);
 +        assertEquals(1, v.id());
 +        assertEquals("person", v.label());
 +
 +        assertEquals(2, IteratorUtils.count(v.properties()));
 +        assertEquals("marko", v.value("name"));
 +        assertEquals(29, Integer.parseInt(v.value("age").toString()));
 +
 +        cluster.close();
 +    }
 +
 +    @Test
 +    public void shouldWorkWithGraphSONExtendedV2Serialization() throws 
Exception {
 +        final Cluster cluster = 
Cluster.build("localhost").serializer(Serializers.GRAPHSON_V2D0).create();
 +        final Client client = cluster.connect();
 +
 +        final Instant now = Instant.now();
 +        final List<Result> r = 
client.submit("java.time.Instant.ofEpochMilli(" + now.toEpochMilli() + 
")").all().join();
 +        assertEquals(1, r.size());
 +
 +        final Instant then = r.get(0).get(Instant.class);
 +        assertEquals(now, then);
 +
 +        cluster.close();
 +    }
 +
 +    @Test
      @org.junit.Ignore("Can't seem to make this test pass consistently")
      public void shouldHandleRequestSentThatNeverReturns() throws Exception {
-         final Cluster cluster = Cluster.open();
+         final Cluster cluster = TestClientFactory.open();
          final Client client = cluster.connect();
  
          final ResultSet results = client.submit("Thread.sleep(10000); 
'should-not-ever-get-back-coz-we-killed-the-server'");

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
index 3c1efef,b0b1e54..9916f73
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinResultSetIntegrateTest.java
@@@ -79,11 -73,11 +79,11 @@@ public class GremlinResultSetIntegrateT
      public void beforeTest() {
          final MessageSerializer serializer = new GryoMessageSerializerV1d0();
          final Map<String,Object> c = new HashMap<>();
 -        c.put("ioRegistries", 
Arrays.asList(TinkerIoRegistry.class.getName()));
 -        c.put("custom", 
Arrays.asList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
 +        c.put("ioRegistries", 
Collections.singletonList(TinkerIoRegistry.class.getName()));
 +        c.put("custom", 
Collections.singletonList("groovy.json.JsonBuilder;org.apache.tinkerpop.gremlin.driver.ser.JsonBuilderGryoSerializer"));
  
          serializer.configure(c, null);
-         cluster = Cluster.build().serializer(serializer).create();
+         cluster = TestClientFactory.build().serializer(serializer).create();
          client = cluster.connect();
      }
  

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerHttpIntegrateTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 15db36d,5ff3adf..78c5b2a
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@@ -40,10 -38,8 +40,9 @@@ import org.apache.tinkerpop.gremlin.dri
  import org.apache.tinkerpop.gremlin.driver.ser.Serializers;
  import org.apache.tinkerpop.gremlin.driver.simple.NioClient;
  import org.apache.tinkerpop.gremlin.driver.simple.SimpleClient;
- import org.apache.tinkerpop.gremlin.driver.simple.WebSocketClient;
  import org.apache.tinkerpop.gremlin.groovy.jsr223.GremlinGroovyScriptEngine;
  import 
org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.CompileStaticCustomizerProvider;
 +import 
org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.ConfigurationCustomizerProvider;
  import 
org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.InterpreterModeCustomizerProvider;
  import 
org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.SimpleSandboxExtension;
  import 
org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.TimedInterruptCustomizerProvider;
@@@ -163,7 -136,23 +162,10 @@@ public class GremlinServerIntegrateTes
                  settings.ssl.overrideSslContext(createServerSslContext());
                  break;
              case "shouldStartWithDefaultSettings":
-                 return new Settings();
+                 // test with defaults exception for port because we want to 
keep testing off of 8182
+                 final Settings defaultSettings = new Settings();
+                 defaultSettings.port = TestClientFactory.PORT;
+                 return settings;
 -            case "shouldHaveTheSessionTimeout":
 -                settings.processors.clear();
 -                final Settings.ProcessorSettings processorSettings = new 
Settings.ProcessorSettings();
 -                processorSettings.className = 
SessionOpProcessor.class.getCanonicalName();
 -                processorSettings.config = new HashMap<>();
 -                
processorSettings.config.put(SessionOpProcessor.CONFIG_SESSION_TIMEOUT, 3000L);
 -                settings.processors.add(processorSettings);
 -                break;
 -            case 
"shouldExecuteInSessionAndSessionlessWithoutOpeningTransactionWithSingleClient":
 -            case "shouldExecuteInSessionWithTransactionManagement":
 -                deleteDirectory(new File("/tmp/neo4j"));
 -                settings.graphs.put("graph", "conf/neo4j-empty.properties");
 -                break;
              case "shouldUseSimpleSandbox":
                  settings.scriptEngines.get("gremlin-groovy").config = 
getScriptEngineConfForSimpleSandbox();
                  break;
@@@ -221,33 -207,9 +223,33 @@@
          return scriptEngineConf;
      }
  
 +    private static Map<String, Object> getScriptEngineConfForBaseScript() {
 +        final Map<String,Object> scriptEngineConf = new HashMap<>();
 +        final Map<String,Object> compilerCustomizerProviderConf = new 
HashMap<>();
 +        final List<Object> keyValues = new ArrayList<>();
 +
 +        final Map<String,Object> properties = new HashMap<>();
 +        properties.put("ScriptBaseClass", 
BaseScriptForTesting.class.getName());
 +        keyValues.add(properties);
 +
 +        
compilerCustomizerProviderConf.put(ConfigurationCustomizerProvider.class.getName(),
 keyValues);
 +        scriptEngineConf.put("compilerCustomizerProviders", 
compilerCustomizerProviderConf);
 +        return scriptEngineConf;
 +    }
 +
 +    @Test
 +    public void shouldUseBaseScript() throws Exception {
 +        final Cluster cluster = Cluster.open();
 +        final Client client = cluster.connect(name.getMethodName());
 +
 +        assertEquals("hello, stephen", 
client.submit("hello('stephen')").all().get().get(0).getString());
 +
 +        cluster.close();
 +    }
 +
      @Test
      public void shouldUseInterpreterMode() throws Exception {
-         final Cluster cluster = Cluster.open();
+         final Cluster cluster = TestClientFactory.open();
          final Client client = cluster.connect(name.getMethodName());
  
          client.submit("def subtractAway(x,y){x-y};[]").all().get();
@@@ -449,10 -411,10 +451,10 @@@
  
              if (!latch.await(3000, TimeUnit.MILLISECONDS))
                  fail("Request should have returned error, but instead timed 
out");
 -            assertTrue(pass.get());
 +            assertThat(pass.get(), is(true));
          }
  
-         try (SimpleClient client = new WebSocketClient()) {
+         try (SimpleClient client = TestClientFactory.createWebSocketClient()) 
{
              final Map<String, Object> bindings = new HashMap<>();
              bindings.put("id", "123");
              final RequestMessage request = 
RequestMessage.build(Tokens.OPS_EVAL)
@@@ -619,14 -581,10 +621,14 @@@
          }
      }
  
 +    /**
 +     * @deprecated As of release 3.2.1, replaced by tests covering {@link 
Settings#scriptEvaluationTimeout}.
 +     */
      @Test
      @SuppressWarnings("unchecked")
 +    @Deprecated
      public void shouldReceiveFailureTimeOutOnTotalSerialization() throws 
Exception {
-         try (SimpleClient client = new WebSocketClient()){
+         try (SimpleClient client = TestClientFactory.createWebSocketClient()){
              final List<ResponseMessage> responses = 
client.submit("(0..<100000)");
  
              // the last message should contain the error

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerSessionIntegrateTest.java
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerSessionIntegrateTest.java
index cc0cb68,1c27c51..da6f5d2
--- 
a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerSessionIntegrateTest.java
+++ 
b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerSessionIntegrateTest.java
@@@ -125,10 -113,10 +124,10 @@@ public class GremlinServerSessionIntegr
          // basically, we need one to submit the long run job and one to do 
the close operation that will cancel the
          // long run job. it is probably possible to do this with some 
low-level message manipulation but that's
          // probably not necessary
-         final Cluster cluster1 = Cluster.build().create();
+         final Cluster cluster1 = TestClientFactory.open();
          final Client client1 = cluster1.connect(name.getMethodName());
 -        client1.submit("1+1").all().join();
 +        client1.submit("graph.addVertex()").all().join();
-         final Cluster cluster2 = Cluster.build().create();
+         final Cluster cluster2 = TestClientFactory.open();
          final Client client2 = cluster2.connect(name.getMethodName());
          client2.submit("1+1").all().join();
  

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinTraversalPerformanceTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
index 3d5c154,cee377d..d0f7b32
--- 
a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
+++ 
b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml
@@@ -16,8 -16,11 +16,8 @@@
  # under the License.
  
  host: localhost
- port: 8182
+ port: 45940
 -threadPoolWorker: 1
 -gremlinPool: 8
  scriptEvaluationTimeout: 30000
 -serializedResponseTimeout: 30000
  graphs: {
    graph: conf/tinkergraph-empty.properties}
  plugins:

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/8818db47/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
----------------------------------------------------------------------
diff --cc 
gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
index db36aed,03be730..cda4f19
--- 
a/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
+++ 
b/gremlin-server/src/test/resources/org/apache/tinkerpop/gremlin/server/gremlin-server-performance.yaml
@@@ -16,8 -16,11 +16,8 @@@
  # under the License.
  
  host: localhost
- port: 8182
+ port: 45940
 -threadPoolWorker: 1
 -gremlinPool: 8
  scriptEvaluationTimeout: 30000
 -serializedResponseTimeout: 30000
  graphs: {
    graph: conf/tinkergraph-empty.properties}
  plugins:

Reply via email to