You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by rd...@apache.org on 2017/04/26 02:21:45 UTC

[1/4] tinkerpop git commit: Supply test

Repository: tinkerpop
Updated Branches:
  refs/heads/master d5a74b905 -> 0e1ebe99c


Supply test


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

Branch: refs/heads/master
Commit: c423d101f4bc09c6c3593b1bad10d9b4d8b53fea
Parents: 9bdef4d
Author: dpitera <dp...@us.ibm.com>
Authored: Thu Apr 6 13:53:18 2017 -0400
Committer: dpitera <dp...@us.ibm.com>
Committed: Mon Apr 17 14:31:41 2017 -0400

----------------------------------------------------------------------
 ...remlinGroovyScriptEngineFileSandboxTest.java | 12 +++++
 .../sandbox-empty-static-variable-types.yaml    | 56 ++++++++++++++++++++
 2 files changed, 68 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c423d101/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
index 3ee1306..a998aba 100644
--- a/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
+++ b/gremlin-groovy-test/src/main/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
@@ -61,6 +61,18 @@ public class GremlinGroovyScriptEngineFileSandboxTest extends AbstractGremlinTes
     }
 
     @Test
+    public void shouldSuccessfullyInstantiateGroovyScriptEngineWithEmptyStaticVariableTyping() throws Exception {
+        final File f = TestHelper.generateTempFileFromResource(graph.getClass(), GremlinGroovyScriptEngineFileSandboxTest.class, "sandbox-empty-static-variable-types.yaml", ".yaml");
+        System.setProperty(FileSandboxExtension.GREMLIN_SERVER_SANDBOX, f.getAbsolutePath());
+        final CompilerCustomizerProvider standardSandbox = new CompileStaticCustomizerProvider(FileSandboxExtension.class.getName());
+        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
+            assertEquals(123, engine.eval("java.lang.Math.abs(-123)"));
+            assertThat(engine.eval("new Boolean(true)"), is(true));
+            assertThat(engine.eval("new Boolean(true).toString()"), is("true"));
+        }
+    }
+
+    @Test
     public void shouldEvalAsTheMethodIsWhiteListed() throws Exception {
         final CompilerCustomizerProvider standardSandbox = new CompileStaticCustomizerProvider(FileSandboxExtension.class.getName());
         try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/c423d101/gremlin-groovy-test/src/main/resources/org/apache/tinkerpop/gremlin/groovy/jsr223/sandbox-empty-static-variable-types.yaml
----------------------------------------------------------------------
diff --git a/gremlin-groovy-test/src/main/resources/org/apache/tinkerpop/gremlin/groovy/jsr223/sandbox-empty-static-variable-types.yaml b/gremlin-groovy-test/src/main/resources/org/apache/tinkerpop/gremlin/groovy/jsr223/sandbox-empty-static-variable-types.yaml
new file mode 100644
index 0000000..8fe108e
--- /dev/null
+++ b/gremlin-groovy-test/src/main/resources/org/apache/tinkerpop/gremlin/groovy/jsr223/sandbox-empty-static-variable-types.yaml
@@ -0,0 +1,56 @@
+# 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.
+
+# This is an example configuration for the FileSandboxExtension.
+
+autoTypeUnknown: true
+methodWhiteList:
+  - java\.lang\.Boolean.*
+  - java\.lang\.Byte.*
+  - java\.lang\.Character.*
+  - java\.lang\.Double.*
+  - java\.lang\.Enum.*
+  - java\.lang\.Float.*
+  - java\.lang\.Integer.*
+  - java\.lang\.Long.*
+  - java\.lang\.Math.*
+  - java\.lang\.Number.*
+  - java\.lang\.Object.*
+  - java\.lang\.Short.*
+  - java\.lang\.String.*
+  - java\.lang\.StringBuffer.*
+  - java\.lang\.System#currentTimeMillis\(\)
+  - java\.lang\.System#nanoTime\(\)
+  - java\.lang\.Throwable.*
+  - java\.lang\.Void.*
+  - java\.util\..*
+  - org\.codehaus\.groovy\.runtime\.DefaultGroovyMethods.*
+  - org\.codehaus\.groovy\.runtime\.InvokerHelper#runScript\(java\.lang\.Class,java\.lang\.String\[\]\)
+  - org\.codehaus\.groovy\.runtime\.StringGroovyMethods.*
+  - groovy\.lang\.Script#<init>\(groovy.lang.Binding\)
+  - org\.apache\.tinkerpop\.gremlin\.structure\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\.computer\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\.computer\.bulkloading\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\.computer\.clustering\.peerpressure\.*
+  - org\.apache\.tinkerpop\.gremlin\.process\.computer\.ranking\.pagerank\.*
+  - org\.apache\.tinkerpop\.gremlin\.process\.computer\.traversal\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\.traversal\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\.traversal\.dsl\.graph\..*
+  - org\.apache\.tinkerpop\.gremlin\.process\.traversal\.engine\..*
+  - org\.apache\.tinkerpop\.gremlin\.server\.util\.LifeCycleHook.*
+staticVariableTypes:


[4/4] tinkerpop git commit: Merge branch 'tp32'

Posted by rd...@apache.org.
Merge branch 'tp32'


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

Branch: refs/heads/master
Commit: 0e1ebe99c81c79e27ff0c0aeda489bd70b70843d
Parents: d5a74b9 ea2ea71
Author: Robert Dale <ro...@gmail.com>
Authored: Tue Apr 25 22:21:03 2017 -0400
Committer: Robert Dale <ro...@gmail.com>
Committed: Tue Apr 25 22:21:03 2017 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../sandbox-empty-static-variable-types.yaml    | 56 ++++++++++++++++++++
 .../customizer/AbstractSandboxExtension.groovy  |  4 +-
 .../customizer/FileSandboxExtension.groovy      | 16 +++---
 ...remlinGroovyScriptEngineFileSandboxTest.java | 12 +++++
 5 files changed, 81 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0e1ebe99/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
----------------------------------------------------------------------
diff --cc gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
index 2b27dd0,0000000..951ea55
mode 100644,000000..100644
--- a/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
+++ b/gremlin-groovy/src/test/java/org/apache/tinkerpop/gremlin/groovy/jsr223/GremlinGroovyScriptEngineFileSandboxTest.java
@@@ -1,134 -1,0 +1,146 @@@
 +/*
 + * 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.gremlin.groovy.jsr223;
 +
 +import org.apache.tinkerpop.gremlin.LoadGraphWith;
 +import org.apache.tinkerpop.gremlin.TestHelper;
 +import org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.FileSandboxExtension;
 +import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
 +import org.apache.tinkerpop.gremlin.structure.Graph;
 +import org.apache.tinkerpop.gremlin.structure.Vertex;
 +import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory;
 +import org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph;
 +import org.codehaus.groovy.control.MultipleCompilationErrorsException;
 +import org.junit.AfterClass;
 +import org.junit.Before;
 +import org.junit.Test;
 +
 +import javax.script.Bindings;
 +import java.io.File;
 +import java.util.Arrays;
 +
 +import static org.hamcrest.CoreMatchers.is;
 +import static org.hamcrest.Matchers.containsString;
 +import static org.hamcrest.Matchers.greaterThan;
 +import static org.junit.Assert.assertEquals;
 +import static org.junit.Assert.assertThat;
 +import static org.junit.Assert.fail;
 +
 +/**
 + * @author Stephen Mallette (http://stephen.genoprime.com)
 + */
 +public class GremlinGroovyScriptEngineFileSandboxTest {
 +
 +    private Graph graph;
 +    private GraphTraversalSource g;
 +
 +    @Before
 +    public void setup() throws Exception {
 +        graph = TinkerFactory.createModern();
 +        g = graph.traversal();
 +        if (System.getProperty(FileSandboxExtension.GREMLIN_SERVER_SANDBOX) == null) {
 +            final File f = TestHelper.generateTempFileFromResource(TinkerGraph.class, GremlinGroovyScriptEngineFileSandboxTest.class, "sandbox.yaml", ".yaml");
 +            System.setProperty(FileSandboxExtension.GREMLIN_SERVER_SANDBOX, f.getAbsolutePath());
 +        }
 +    }
 +
 +    @AfterClass
 +    public static void destroy() {
 +        System.clearProperty(FileSandboxExtension.GREMLIN_SERVER_SANDBOX);
 +    }
 +
 +    @Test
++    public void shouldSuccessfullyInstantiateGroovyScriptEngineWithEmptyStaticVariableTyping() throws Exception {
++        final File f = TestHelper.generateTempFileFromResource(graph.getClass(), GremlinGroovyScriptEngineFileSandboxTest.class, "sandbox-empty-static-variable-types.yaml", ".yaml");
++        System.setProperty(FileSandboxExtension.GREMLIN_SERVER_SANDBOX, f.getAbsolutePath());
++        final CompilerCustomizerProvider standardSandbox = new CompileStaticCustomizerProvider(FileSandboxExtension.class.getName());
++        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
++            assertEquals(123, engine.eval("java.lang.Math.abs(-123)"));
++            assertThat(engine.eval("new Boolean(true)"), is(true));
++            assertThat(engine.eval("new Boolean(true).toString()"), is("true"));
++        }
++    }
++
++    @Test
 +    public void shouldEvalAsTheMethodIsWhiteListed() throws Exception {
 +        final CompileStaticGroovyCustomizer standardSandbox = new CompileStaticGroovyCustomizer(FileSandboxExtension.class.getName());
 +        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
 +            assertEquals(123, engine.eval("java.lang.Math.abs(-123)"));
 +            assertThat(engine.eval("new Boolean(true)"), is(true));
 +            assertThat(engine.eval("new Boolean(true).toString()"), is("true"));
 +        }
 +    }
 +
 +    @Test
 +    public void shouldEvalAsGroovyPropertiesWhenWhiteListed() throws Exception {
 +        final CompileStaticGroovyCustomizer standardSandbox = new CompileStaticGroovyCustomizer(FileSandboxExtension.class.getName());
 +        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
 +            assertThat(Arrays.equals("test".getBytes(), (byte[]) engine.eval("'test'.bytes")), is(true));
 +        }
 +    }
 +
 +    @Test
 +    public void shouldPreventMaliciousStuffWithSystemButAllowSomeMethodsOnSystem() throws Exception {
 +        final CompileStaticGroovyCustomizer standardSandbox = new CompileStaticGroovyCustomizer(FileSandboxExtension.class.getName());
 +        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
 +            assertThat((long) engine.eval("System.currentTimeMillis()"), greaterThan(0L));
 +            assertThat((long) engine.eval("System.nanoTime()"), greaterThan(0L));
 +
 +            engine.eval("System.exit(0)");
 +            fail("Should have a compile error because class/method is not white listed");
 +        } catch (Exception ex) {
 +            assertEquals(MultipleCompilationErrorsException.class, ex.getCause().getClass());
 +            assertThat(ex.getCause().getMessage(), containsString("Not authorized to call this method"));
 +        }
 +    }
 +
 +    @Test
 +    public void shouldPreventMaliciousStuffWithFile() throws Exception {
 +        final CompileStaticGroovyCustomizer standardSandbox = new CompileStaticGroovyCustomizer(FileSandboxExtension.class.getName());
 +        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
 +            engine.eval("java.nio.file.FileSystems.getDefault()");
 +            fail("Should have a compile error because class/method is not white listed");
 +        } catch (Exception ex) {
 +            assertEquals(MultipleCompilationErrorsException.class, ex.getCause().getClass());
 +            assertThat(ex.getCause().getMessage(), containsString("Not authorized to call this method"));
 +        }
 +    }
 +
 +    @Test
 +    @LoadGraphWith(LoadGraphWith.GraphData.MODERN)
 +    public void shouldEvalOnGAsTheMethodIsWhiteListed() throws Exception {
 +        final CompileStaticGroovyCustomizer standardSandbox = new CompileStaticGroovyCustomizer(FileSandboxExtension.class.getName());
 +        try (GremlinGroovyScriptEngine engine = new GremlinGroovyScriptEngine(standardSandbox)) {
 +            final Bindings bindings = engine.createBindings();
 +            bindings.put("g", g);
 +            bindings.put("marko", convertToVertexId(graph, "marko"));
 +            assertEquals(g.V(convertToVertexId(graph, "marko")).next(), engine.eval("g.V(marko).next()", bindings));
 +            assertEquals(g.V(convertToVertexId(graph, "marko")).out("created").count().next(), engine.eval("g.V(marko).out(\"created\").count().next()", bindings));
 +        }
 +    }
 +
 +    private Object convertToVertexId(final Graph graph, final String vertexName) {
 +        return convertToVertex(graph, vertexName).id();
 +    }
 +
 +    private Vertex convertToVertex(final Graph graph, final String vertexName) {
 +        // all test graphs have "name" as a unique id which makes it easy to hardcode this...works for now
 +        return graph.traversal().V().has("name", vertexName).next();
 +    }
 +}


[2/4] tinkerpop git commit: Check if variable is null to avoid NPE

Posted by rd...@apache.org.
Check if variable is null to avoid NPE

If staticVariableTypes is an empty list in the YAML file, then we throw
an NPE by trying to run collectEntries() on a null object or trying to
run containsKey() on a null object.


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

Branch: refs/heads/master
Commit: 9bdef4d86c3065b02c402a6d44dbf0329a0e2ddc
Parents: 1e349c8
Author: dpitera <dp...@us.ibm.com>
Authored: Thu Apr 6 12:16:59 2017 -0400
Committer: dpitera <dp...@us.ibm.com>
Committed: Mon Apr 17 14:31:41 2017 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                                  |  1 +
 .../customizer/AbstractSandboxExtension.groovy      |  4 ++--
 .../jsr223/customizer/FileSandboxExtension.groovy   | 16 ++++++++++------
 3 files changed, 13 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bdef4d8/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 40819af..6923a84 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -73,6 +73,7 @@ TinkerPop 3.2.5 (Release Date: NOT OFFICIALLY RELEASED YET)
 * Implemented `DefaultGraphManager` to include previous `GraphManager` functionality and adhere to updated interface.
 * Deprecated `GraphManager.getGraphs()` and added `GraphManager.getGraphNames()`.
 * Deprecated `GraphManager.getTraversalSources()` and added `GraphManager.getTraversalSourceNames()`.
+* Fixed a bug so now users can supply a YAML with an empty `staticVariableTypes` to be used by the `FileSandboxExtension`
 
 [[release-3-2-4]]
 TinkerPop 3.2.4 (Release Date: February 8, 2017)

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bdef4d8/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
index 699e250..9685607 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/AbstractSandboxExtension.groovy
@@ -51,7 +51,7 @@ abstract class AbstractSandboxExtension extends GroovyTypeCheckingExtensionSuppo
         def boolean autoTypeUnknown = allowAutoTypeOfUnknown()
 
         unresolvedVariable { var ->
-            if (staticVariableTyping.containsKey(var.name)) {
+            if ((null != staticVariableTyping) && (staticVariableTyping.containsKey(var.name))) {
                 storeType(var, classNodeFor(staticVariableTyping[var.name]))
                 handled = true
                 return
@@ -87,4 +87,4 @@ abstract class AbstractSandboxExtension extends GroovyTypeCheckingExtensionSuppo
             visitor.visitMethod(methodNode)
         }
     }
-}
\ No newline at end of file
+}

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/9bdef4d8/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
----------------------------------------------------------------------
diff --git a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
index 30e440b..6e9e374 100644
--- a/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
+++ b/gremlin-groovy/src/main/groovy/org/apache/tinkerpop/gremlin/groovy/jsr223/customizer/FileSandboxExtension.groovy
@@ -63,12 +63,16 @@ class FileSandboxExtension extends AbstractSandboxExtension {
 
         autoTypeUnknown = settings.autoTypeUnknown
         methodWhiteList = settings.methodWhiteList
-        staticVariableTypes = settings.staticVariableTypes.collectEntries { kv ->
-            try {
-                return [(kv.key): Class.forName(kv.value)]
-            } catch (Exception ex) {
-                logger.error("Could not convert ${kv.value} to a Class for variable ${kv.key}", ex)
-                throw ex
+        if (null == settings.staticVariableTypes) {
+            staticVariableTypes = null
+        } else {
+            staticVariableTypes = settings.staticVariableTypes.collectEntries { kv ->
+                try {
+                    return [(kv.key): Class.forName(kv.value)]
+                } catch (Exception ex) {
+                    logger.error("Could not convert ${kv.value} to a Class for variable ${kv.key}", ex)
+                    throw ex
+                }
             }
         }
     }


[3/4] tinkerpop git commit: Merge branch 'TINKERPOP-1666' into tp32

Posted by rd...@apache.org.
Merge branch 'TINKERPOP-1666' into tp32


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

Branch: refs/heads/master
Commit: ea2ea7116f2d407619e8c5beee7201877fd423c3
Parents: a4e6015 c423d10
Author: Robert Dale <ro...@gmail.com>
Authored: Tue Apr 25 22:19:41 2017 -0400
Committer: Robert Dale <ro...@gmail.com>
Committed: Tue Apr 25 22:19:41 2017 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 ...remlinGroovyScriptEngineFileSandboxTest.java | 12 +++++
 .../sandbox-empty-static-variable-types.yaml    | 56 ++++++++++++++++++++
 .../customizer/AbstractSandboxExtension.groovy  |  4 +-
 .../customizer/FileSandboxExtension.groovy      | 16 +++---
 5 files changed, 81 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


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