You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/06/10 20:07:22 UTC

incubator-tinkerpop git commit: Gremlin Server Settings class has sensible defaults.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 68ae6ae33 -> 0fdee01b7


Gremlin Server Settings class has sensible defaults.

This allows Gremlin Server to be started with new Settings() and no other configuration.


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

Branch: refs/heads/master
Commit: 0fdee01b7e0b3c55bf17bbdc228b0fb912650a77
Parents: 68ae6ae
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Jun 10 14:06:32 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Jun 10 14:06:32 2015 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../tinkerpop/gremlin/server/Settings.java      | 21 +++++++++++++++++---
 .../server/GremlinServerIntegrateTest.java      | 16 +++++++++++++++
 3 files changed, 35 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/0fdee01b/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index b8c5a18..653d90d 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -25,6 +25,7 @@ image::http://www.tinkerpop.com/docs/current/images/gremlin-hindu.png[width=225]
 TinkerPop 3.0.0.GA (NOT OFFICIALLY RELEASED YET)
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+* Gremlin Server `Settings` now has sensible defaults thus allowing the server to be started with no additional configuration.
 * Replaced dependency on `groovy-all` with individual Groovy dependencies as needed.
 * Bumped `org.gperfutils:gbench` to the `0.4.3` and a version explicitly compatible with Groovy 2.4.x.
 * Added `ScopeP` which wraps a predicate and is bound by the `Traverser` and `Scoping` step.

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/0fdee01b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java
index fe291f5..1dcaccb 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/Settings.java
@@ -19,12 +19,15 @@
 package org.apache.tinkerpop.gremlin.server;
 
 import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
+import org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0;
+import org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy;
 import org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer;
 import info.ganglia.gmetric4j.gmetric.GMetric;
 import org.apache.tinkerpop.gremlin.server.util.LifeCycleHook;
 import org.apache.tinkerpop.gremlin.structure.Graph;
+import org.apache.tinkerpop.gremlin.structure.io.gryo.GryoMapper;
 import org.yaml.snakeyaml.TypeDescription;
 import org.yaml.snakeyaml.Yaml;
 import org.yaml.snakeyaml.constructor.Constructor;
@@ -33,6 +36,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -47,6 +51,17 @@ import java.util.UUID;
  */
 public class Settings {
 
+    public Settings() {
+        // setup some sensible defaults like gremlin-groovy and gryo serialization
+        scriptEngines = new HashMap<>();
+        scriptEngines.put("gremlin-groovy", new ScriptEngineSettings());
+
+        serializers = new ArrayList<>();
+        final SerializerSettings graphson = new SerializerSettings();
+        graphson.className = GryoMessageSerializerV1d0.class.getName();
+        serializers.add(graphson);
+    }
+
     /**
      * Host to bind the server to. Defaults to localhost.
      */
@@ -149,9 +164,9 @@ public class Settings {
     public ServerMetrics metrics = null;
 
     /**
-     * {@link Map} of {@link org.apache.tinkerpop.gremlin.structure.Graph} objects keyed by their binding name.
+     * {@link Map} of {@link Graph} objects keyed by their binding name.
      */
-    public Map<String, String> graphs;
+    public Map<String, String> graphs = new HashMap<>();
 
     /**
      * {@link Map} of settings for {@code ScriptEngine} setting objects keyed by the name of the {@code ScriptEngine}
@@ -160,7 +175,7 @@ public class Settings {
     public Map<String, ScriptEngineSettings> scriptEngines;
 
     /**
-     * List of {@link org.apache.tinkerpop.gremlin.driver.MessageSerializer} to configure.
+     * List of {@link MessageSerializer} to configure.
      */
     public List<SerializerSettings> serializers;
 

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/0fdee01b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --git 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
index e1c47ee..9b5c8dd 100644
--- 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
@@ -111,6 +111,8 @@ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegration
                 settings.ssl = new Settings.SslSettings();
                 settings.ssl.enabled = true;
                 break;
+            case "shouldStartWithDefaultSettings":
+                return new Settings();
             case "shouldHaveTheSessionTimeout":
                 settings.processors.clear();
                 final Settings.ProcessorSettings processorSettings = new Settings.ProcessorSettings();
@@ -125,6 +127,20 @@ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegration
     }
 
     @Test
+    public void shouldStartWithDefaultSettings() {
+        // just quickly validate that results are returning given defaults. no graphs are config'd with defaults
+        // so just eval a groovy script.
+        final Cluster cluster = Cluster.open();
+        final Client client = cluster.connect();
+
+        final ResultSet results = client.submit("[1,2,3,4,5,6,7,8,9]");
+        final AtomicInteger counter = new AtomicInteger(0);
+        results.stream().map(i -> i.get(Integer.class) * 2).forEach(i -> assertEquals(counter.incrementAndGet() * 2, Integer.parseInt(i.toString())));
+
+        cluster.close();
+    }
+
+    @Test
     public void shouldEnableSsl() {
         final Cluster cluster = Cluster.build().enableSsl(true).create();
         final Client client = cluster.connect();