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();