This is an automated email from the ASF dual-hosted git repository. colegreer pushed a commit to branch TINKERPOP-3107 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit e3321df5df59bc788dd23a6377a420ac920efa67 Author: Cole Greer <[email protected]> AuthorDate: Mon Apr 13 18:13:06 2026 -0700 update test configs --- .../gremlin-server-integration-krb5.yaml | 23 ++-- .../gremlin-server-integration-secure.yaml | 23 ++-- .../gremlin-server/gremlin-server-integration.yaml | 24 +++-- .../AbstractGremlinServerIntegrationTest.java | 5 - .../console/jsr223/gremlin-server-integration.yaml | 10 +- .../tinkerpop/gremlin/server/ServerTestHelper.java | 27 ++--- .../gremlin/server/gremlin-server-integration.yaml | 20 +++- .../src/test/scripts/generate-all.groovy | 72 ------------- .../src/test/scripts/init-functions.groovy | 15 +-- .../src/test/scripts/test-server-start.groovy | 120 --------------------- 10 files changed, 82 insertions(+), 257 deletions(-) diff --git a/docker/gremlin-server/gremlin-server-integration-krb5.yaml b/docker/gremlin-server/gremlin-server-integration-krb5.yaml index 6dfd94dfc5..974c94a8cc 100644 --- a/docker/gremlin-server/gremlin-server-integration-krb5.yaml +++ b/docker/gremlin-server/gremlin-server-integration-krb5.yaml @@ -27,14 +27,21 @@ graphs: { sink: conf/tinkergraph-empty.properties, tx: conf/tinkertransactiongraph-empty.properties } -scriptEngines: { - gremlin-lang : {}, - gremlin-groovy: { - plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCompilerGremlinPlugin: {expectedCompilationTime: 30000}, - org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]}, - org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/generate-all.groovy]}}}} +traversalSources: { + gclassic: {graph: classic}, + gmodern: {graph: modern}, + g: {graph: graph}, + gcrew: {graph: crew}, + ggraph: {graph: graph}, + ggrateful: {graph: grateful}, + gsink: {graph: sink}, + gtx: {graph: tx}} +lifecycleHooks: + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: classic, dataset: classic}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: modern, dataset: modern}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: crew, dataset: crew}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: grateful, dataset: grateful}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: sink, dataset: sink}} serializers: - { className: org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV3, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] }} - { className: org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV2, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2] }} diff --git a/docker/gremlin-server/gremlin-server-integration-secure.yaml b/docker/gremlin-server/gremlin-server-integration-secure.yaml index 6528551cb9..9dfa96903f 100644 --- a/docker/gremlin-server/gremlin-server-integration-secure.yaml +++ b/docker/gremlin-server/gremlin-server-integration-secure.yaml @@ -27,14 +27,21 @@ graphs: { sink: conf/tinkergraph-empty.properties, tx: conf/tinkertransactiongraph-empty.properties } -scriptEngines: { - gremlin-lang : {}, - gremlin-groovy: { - plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCompilerGremlinPlugin: {expectedCompilationTime: 30000}, - org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]}, - org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/generate-all.groovy]}}}} +traversalSources: { + gclassic: {graph: classic}, + gmodern: {graph: modern}, + g: {graph: graph}, + gcrew: {graph: crew}, + ggraph: {graph: graph}, + ggrateful: {graph: grateful}, + gsink: {graph: sink}, + gtx: {graph: tx}} +lifecycleHooks: + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: classic, dataset: classic}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: modern, dataset: modern}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: crew, dataset: crew}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: grateful, dataset: grateful}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: sink, dataset: sink}} serializers: - { className: org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV4, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] }} # application/json - { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV4 } # application/vnd.graphbinary-v1.0 diff --git a/docker/gremlin-server/gremlin-server-integration.yaml b/docker/gremlin-server/gremlin-server-integration.yaml index 8f5d2f74f8..dcaff57e8b 100644 --- a/docker/gremlin-server/gremlin-server-integration.yaml +++ b/docker/gremlin-server/gremlin-server-integration.yaml @@ -29,14 +29,22 @@ graphs: { sink: conf/tinkergraph-service.properties, tx: conf/tinkertransactiongraph-service.properties } -scriptEngines: { - gremlin-lang : {}, - gremlin-groovy: { - plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCompilerGremlinPlugin: {expectedCompilationTime: 30000}, - org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]}, - org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/generate-all.groovy]}}}} +traversalSources: { + gclassic: {graph: classic}, + gmodern: {graph: modern}, + g: {graph: graph}, + gcrew: {graph: crew}, + ggraph: {graph: graph}, + ggrateful: {graph: grateful}, + gsink: {graph: sink}, + gtx: {graph: tx}, + gimmutable: {graph: immutable}} +lifecycleHooks: + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: classic, dataset: classic}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: modern, dataset: modern}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: crew, dataset: crew}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: grateful, dataset: grateful}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: sink, dataset: sink}} serializers: - { className: org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV4, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] }} # application/json - { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV4 } # application/vnd.graphbinary-v1.0 diff --git a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/AbstractGremlinServerIntegrationTest.java b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/AbstractGremlinServerIntegrationTest.java index f9fc146551..393373b89a 100644 --- a/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/AbstractGremlinServerIntegrationTest.java +++ b/gremlin-console/src/test/java/org/apache/tinkerpop/gremlin/console/jsr223/AbstractGremlinServerIntegrationTest.java @@ -25,7 +25,6 @@ import org.junit.Before; import java.io.InputStream; import java.nio.file.Paths; -import java.util.Collections; /** * Starts and stops an instance for each executed test. @@ -51,10 +50,6 @@ public abstract class AbstractGremlinServerIntegrationTest { final Settings overridenSettings = overrideSettings(settings); final String prop = Paths.get(AbstractGremlinServerIntegrationTest.class.getResource("tinkergraph-empty.properties").toURI()).toString(); overridenSettings.graphs.put("graph", prop); - final String script = Paths.get(AbstractGremlinServerIntegrationTest.class.getResource("generate.groovy").toURI()).toString(); - overridenSettings.scriptEngines.get("gremlin-groovy").plugins - .get("org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin") - .put("files", Collections.singletonList(script)); this.server = new GremlinServer(overridenSettings); diff --git a/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/gremlin-server-integration.yaml b/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/gremlin-server-integration.yaml index 4bb6dcf754..cb16c1fa8f 100644 --- a/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/gremlin-server-integration.yaml +++ b/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/gremlin-server-integration.yaml @@ -19,12 +19,10 @@ host: localhost port: 45940 evaluationTimeout: 30000 channelizer: org.apache.tinkerpop.gremlin.server.channel.HttpChannelizer -scriptEngines: { - gremlin-groovy: { - plugins: { org.apache.tinkerpop.gremlin.server.jsr223.GremlinServerGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {}, - org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]}, - org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {}}}} +graphs: { + graph: conf/tinkergraph-empty.properties} +lifecycleHooks: + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: graph, dataset: modern}} serializers: - { className: org.apache.tinkerpop.gremlin.util.ser.GraphBinaryMessageSerializerV4} # application/vnd.graphbinary-v4.0 metrics: { diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java index 0d642ffd7f..1a3dc91f92 100644 --- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java +++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/ServerTestHelper.java @@ -38,24 +38,25 @@ public class ServerTestHelper { * If an overriden path is determined to be absolute then the path is not re-written. */ public static void rewritePathsInGremlinServerSettings(final Settings overridenSettings) { - final Map<String, Map<String, Object>> plugins; - final Map<String, Object> scriptFileGremlinPlugin; final File homeDir; homeDir = new File( getBuildDir(), "../src/test/scripts" ); - plugins = overridenSettings.scriptEngines.get("gremlin-groovy").plugins; - scriptFileGremlinPlugin = plugins.get(ScriptFileGremlinPlugin.class.getName()); + final Settings.ScriptEngineSettings groovyEngine = overridenSettings.scriptEngines.get("gremlin-groovy"); + if (groovyEngine != null) { + final Map<String, Map<String, Object>> plugins = groovyEngine.plugins; + final Map<String, Object> scriptFileGremlinPlugin = plugins.get(ScriptFileGremlinPlugin.class.getName()); - if (scriptFileGremlinPlugin != null) { - scriptFileGremlinPlugin - .put("files", - ((List<String>) scriptFileGremlinPlugin.get("files")).stream() - .map(s -> new File(s)) - .map(f -> f.isAbsolute() ? f - : new File(relocateFile( homeDir, f))) - .map(f -> Storage.toPath(f)) - .collect(Collectors.toList())); + if (scriptFileGremlinPlugin != null) { + scriptFileGremlinPlugin + .put("files", + ((List<String>) scriptFileGremlinPlugin.get("files")).stream() + .map(s -> new File(s)) + .map(f -> f.isAbsolute() ? f + : new File(relocateFile( homeDir, f))) + .map(f -> Storage.toPath(f)) + .collect(Collectors.toList())); + } } overridenSettings.graphs = overridenSettings.graphs.entrySet().stream() diff --git 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 index 13a1c6ffdb..c13041f1dd 100644 --- 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 @@ -25,8 +25,7 @@ # - docker/gremlin-server/gremlin-server-integration-secure.yaml # # Without such changes, the test docker server can't be started for independent -# testing with Gremlin Language Variants. Note this file's relation to -# gremlin-server/src/test/resources/scripts/test-server-start.groovy +# testing with Gremlin Language Variants. ############################################################################### host: 0.0.0.0 @@ -41,6 +40,21 @@ graphs: { sink: conf/tinkergraph-empty.properties, tx: conf/tinkertransactiongraph-empty.properties } +traversalSources: { + gclassic: {graph: classic}, + gmodern: {graph: modern}, + g: {graph: graph}, + gcrew: {graph: crew}, + ggraph: {graph: graph}, + ggrateful: {graph: grateful}, + gsink: {graph: sink}, + gtx: {graph: tx}} +lifecycleHooks: + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: classic, dataset: classic}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: modern, dataset: modern}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: crew, dataset: crew}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: grateful, dataset: grateful}} + - { className: org.apache.tinkerpop.gremlin.server.util.TinkerFactoryDataLoader, config: {graph: sink, dataset: sink}} scriptEngines: { gremlin-lang : {}, gremlin-groovy: { @@ -48,7 +62,7 @@ scriptEngines: { org.apache.tinkerpop.gremlin.tinkergraph.jsr223.TinkerGraphGremlinPlugin: {}, org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCompilerGremlinPlugin: {expectedCompilationTime: 30000}, org.apache.tinkerpop.gremlin.jsr223.ImportGremlinPlugin: {classImports: [java.lang.Math], methodImports: [java.lang.Math#*]}, - org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/generate-all.groovy]}}}} + org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: {files: [scripts/init-functions.groovy]}}}} serializers: - { className: org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV4, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] }} - { className: org.apache.tinkerpop.gremlin.util.ser.GraphSONMessageSerializerV3, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV3] }} diff --git a/gremlin-server/src/test/scripts/generate-all.groovy b/gremlin-server/src/test/scripts/generate-all.groovy deleted file mode 100644 index 7f3706f2d8..0000000000 --- a/gremlin-server/src/test/scripts/generate-all.groovy +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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. - */ - -// An example of an initialization script that can be configured to run in Gremlin Server. -// Functions defined here will go into global cache and will not be removed from there -// unless there is a reset of the ScriptEngine. -def addItUp(x, y) { x + y } - -// an init script that returns a Map allows explicit setting of global bindings. -def globals = [:] - -// Generates the modern graph into an "empty" TinkerGraph via LifeCycleHook. -// Note that the name of the key in the "global" map is unimportant. -globals << [hook : [ - onStartUp: { ctx -> - // a wild bit of trickery here. the process tests use an INTEGER id manager when LoadGraphWith is used. this - // closure provides a way to to manually override the various id managers for TinkerGraph - the graph on which - // all of these remote tests are executed - so that the tests will pass nicely. an alternative might have been - // to have a special test TinkerGraph config for setting up the id manager properly, but based on how we do - // things now, that test config would have been mixed in with release artifacts and there would have been ugly - // exclusions to make packaging work properly. - allowSetOfIdManager = { graph, idManagerFieldName, idManager -> - java.lang.reflect.Field idManagerField = graph.class.getSuperclass().getDeclaredField(idManagerFieldName) - idManagerField.setAccessible(true) - idManagerField.set(graph, idManager) - } - - [classic, modern, crew, sink, grateful].each{ - allowSetOfIdManager(it, "vertexIdManager", TinkerGraph.DefaultIdManager.INTEGER) - allowSetOfIdManager(it, "edgeIdManager", TinkerGraph.DefaultIdManager.INTEGER) - allowSetOfIdManager(it, "vertexPropertyIdManager", TinkerGraph.DefaultIdManager.LONG) - } - TinkerFactory.generateClassic(classic) - TinkerFactory.generateModern(modern) - TinkerFactory.generateTheCrew(crew) - TinkerFactory.generateGratefulDead(grateful) - TinkerFactory.generateKitchenSink(sink) - } -] as LifeCycleHook] - -// add default TraversalSource instances for each graph instance -globals << [gclassic : traversal().withEmbedded(classic)] -globals << [gmodern : traversal().withEmbedded(modern)] -globals << [g : traversal().withEmbedded(graph)] -globals << [gcrew : traversal().withEmbedded(crew)] -globals << [ggraph : traversal().withEmbedded(graph)] -globals << [ggrateful : traversal().withEmbedded(grateful)] -globals << [gsink : traversal().withEmbedded(sink)] -globals << [gtx : traversal().withEmbedded(tx)] - -// dynamically detect existence of gimmutable as it is only used in gremlin-go testing suite -def dynamicGimmutable = context.getBindings(javax.script.ScriptContext.GLOBAL_SCOPE)["immutable"] -if (dynamicGimmutable != null) - globals << [gimmutable : traversal().withEmbedded(dynamicGimmutable)] - -globals diff --git a/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/generate.groovy b/gremlin-server/src/test/scripts/init-functions.groovy similarity index 57% rename from gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/generate.groovy rename to gremlin-server/src/test/scripts/init-functions.groovy index 5c2b791dbc..5c105446dc 100644 --- a/gremlin-console/src/test/resources/org/apache/tinkerpop/gremlin/console/jsr223/generate.groovy +++ b/gremlin-server/src/test/scripts/init-functions.groovy @@ -17,17 +17,4 @@ * under the License. */ -// an init script that returns a Map allows explicit setting of global bindings. -def globals = [:] - -// Generates the modern graph into an "empty" TinkerGraph via LifeCycleHook. -// Note that the name of the key in the "global" map is unimportant. -globals << [hook : [ - onStartUp: { ctx -> - ctx.logger.info("Loading 'modern' graph data.") - org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerFactory.generateModern(graph) - } -] as LifeCycleHook] - -// define the default TraversalSource to bind queries to - this one will be named "g". -globals << [g : traversal().withEmbedded(graph)] \ No newline at end of file +def addItUp(x, y) { x + y } diff --git a/gremlin-server/src/test/scripts/test-server-start.groovy b/gremlin-server/src/test/scripts/test-server-start.groovy deleted file mode 100644 index c7e7f5e954..0000000000 --- a/gremlin-server/src/test/scripts/test-server-start.groovy +++ /dev/null @@ -1,120 +0,0 @@ -/* - * 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. - */ - -import org.apache.tinkerpop.gremlin.server.GremlinServer -import org.apache.tinkerpop.gremlin.server.KdcFixture -import org.apache.tinkerpop.gremlin.server.Settings - -//////////////////////////////////////////////////////////////////////////////// -// IMPORTANT -//////////////////////////////////////////////////////////////////////////////// -// Changes to this file need to be appropriately replicated to -// -// - docker/gremlin-server/* -// - docker/gremlin-server.sh -// -// Without such changes, the test docker server can't be started for independent -// testing with Gremlin Language Variants. -//////////////////////////////////////////////////////////////////////////////// - -if (Boolean.parseBoolean(skipTests)) return - -log.info("Starting Gremlin Server instances for native testing of ${executionName}") - -def platformAgnosticBaseDirPath = "${tinkerpopRootDir}".replace("\\", "/") -def platformAgnosticGremlinServerDir = platformAgnosticBaseDirPath + "/gremlin-server" -def platformAgnosticSettingsFile = platformAgnosticGremlinServerDir + "/src/test/resources/org" + - "/apache/tinkerpop/gremlin/server/gremlin-server-integration.yaml" - -def settings = Settings.read("${platformAgnosticSettingsFile}") -settings.graphs.graph = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settings.graphs.classic = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settings.graphs.modern = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settings.graphs.crew = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settings.graphs.grateful = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settings.graphs.sink = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settings.graphs.tx = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkertransactiongraph-empty.properties" -settings.scriptEngines["gremlin-groovy"].plugins["org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin"].files = [platformAgnosticGremlinServerDir + "/src/test/scripts/generate-all.groovy"] -settings.port = 45940 - -def server = new GremlinServer(settings) -server.start().join() - -project.setContextValue("gremlin.server", server) -log.info("Gremlin Server without authentication started on port 45940") - - -def securePropsFile = new File("${platformAgnosticBaseDirPath}/target/tinkergraph-credentials.properties") -if (!securePropsFile.exists()) { - securePropsFile.createNewFile() - securePropsFile << "gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph\n" - securePropsFile << "gremlin.tinkergraph.vertexIdManager=LONG\n" - securePropsFile << "gremlin.tinkergraph.graphLocation=${platformAgnosticGremlinServerDir}/data/credentials.kryo\n" - securePropsFile << "gremlin.tinkergraph.graphFormat=gryo" -} - -def settingsSecure = Settings.read("${platformAgnosticSettingsFile}") -settingsSecure.graphs.graph = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsSecure.graphs.classic = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsSecure.graphs.modern = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsSecure.graphs.crew = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsSecure.graphs.grateful = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsSecure.graphs.sink = platformAgnosticGremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsSecure.scriptEngines["gremlin-groovy"].plugins["org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin"].files = [platformAgnosticGremlinServerDir + "/src/test/scripts/generate-all.groovy"] -settingsSecure.port = 45941 -settingsSecure.authentication.authenticator = "org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator" -settingsSecure.authentication.config = [credentialsDb: platformAgnosticBaseDirPath + "/target/tinkergraph-credentials.properties"] -settingsSecure.ssl = new Settings.SslSettings() -settingsSecure.ssl.enabled = true -settingsSecure.ssl.sslEnabledProtocols = ["TLSv1.2"] -settingsSecure.ssl.keyStore = platformAgnosticGremlinServerDir + "/src/test/resources/server-key.jks" -settingsSecure.ssl.keyStorePassword = "changeit" - -def serverSecure = new GremlinServer(settingsSecure) -serverSecure.start().join() - -project.setContextValue("gremlin.server.secure", serverSecure) -log.info("Gremlin Server with password authentication started on port 45941") - - -def kdcServer = new KdcFixture(projectBaseDir) -kdcServer.setUp() - -project.setContextValue("gremlin.server.kdcserver", kdcServer) -log.info("KDC started with configuration ${projectBaseDir}/target/kdc/krb5.conf") - -def settingsKrb5 = Settings.read("${settingsFile}") -settingsKrb5.graphs.graph = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsKrb5.graphs.classic = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsKrb5.graphs.modern = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsKrb5.graphs.crew = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsKrb5.graphs.grateful = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsKrb5.graphs.sink = gremlinServerDir + "/src/test/scripts/tinkergraph-empty.properties" -settingsKrb5.scriptEngines["gremlin-groovy"].plugins["org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin"].files = [gremlinServerDir + "/src/test/scripts/generate-all.groovy"] -settingsKrb5.port = 45942 -settingsKrb5.authentication.authenticator = "org.apache.tinkerpop.gremlin.server.auth.Krb5Authenticator" -settingsKrb5.authentication.config = [ - "principal": kdcServer.serverPrincipal, - "keytab": kdcServer.serviceKeytabFile.getAbsolutePath()] - -def serverKrb5 = new GremlinServer(settingsKrb5) -serverKrb5.start().join() - -project.setContextValue("gremlin.server.krb5", serverKrb5) -log.info("Gremlin Server with kerberos authentication started on port 45942")
