http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/generate-modern.groovy ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/generate-modern.groovy b/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/generate-modern.groovy deleted file mode 100644 index 23b4a61..0000000 --- a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/generate-modern.groovy +++ /dev/null @@ -1,33 +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 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.") - TinkerFactory.generateModern(graph) - } -] as LifeCycleHook] - -// define the default TraversalSource to bind queries to - this one will be named "g". -globals << [g : graph.traversal()] \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/gremlin-server-modern-secure-py.yaml ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/gremlin-server-modern-secure-py.yaml b/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/gremlin-server-modern-secure-py.yaml deleted file mode 100644 index a1b595f..0000000 --- a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/gremlin-server-modern-secure-py.yaml +++ /dev/null @@ -1,63 +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. - -# Note that TinkerPop does not include gremlin-python dependencies in -# its distributions. This file cannot be used as a configuration file -# to Gremlin Server unless those dependencies are installed on the -# Gremlin Server path with: -# -# bin/gremlin-server.sh -i org.apache.tinkerpop gremlin-python x.y.z -# -# The primary change in this file to enable the GremlinJythonScriptEngine -# is the addition of "gremlin-jython" to the "scriptEngines" field. - -host: localhost -port: 45940 -scriptEvaluationTimeout: 30000 -graphs: { - graph: src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-empty.properties} -plugins: - - tinkerpop.tinkergraph -scriptEngines: { - gremlin-groovy: { - imports: [java.lang.Math], - staticImports: [java.lang.Math.PI], - scripts: [src/test/resources/org/apache/tinkerpop/gremlin/python/driver/generate-modern.groovy]}, - gremlin-jython: {}, - gremlin-python: {} -} -serializers: - - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }} # application/vnd.gremlin-v1.0+gryo - - { className: org.apache.tinkerpop.gremlin.driver.ser.GryoMessageSerializerV1d0, config: { serializeResultToString: true }} # application/vnd.gremlin-v1.0+gryo-stringd - - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }} # application/vnd.gremlin-v1.0+json - - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV2d0] }} # application/vnd.gremlin-v2.0+json - - { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0, config: { ioRegistries: [org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIoRegistryV1d0] }} # application/json -metrics: { - slf4jReporter: {enabled: true, interval: 180000}} -strictTransactionManagement: false -threadPoolBoss: 1 -maxInitialLineLength: 4096 -maxHeaderSize: 8192 -maxChunkSize: 8192 -maxContentLength: 65536 -maxAccumulationBufferComponents: 1024 -resultIterationBatchSize: 64 -authentication: { - authenticator: org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator, - config: { - credentialsDb: src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-credentials.properties}} - http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-credentials.properties ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-credentials.properties b/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-credentials.properties deleted file mode 100644 index 909b92b..0000000 --- a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-credentials.properties +++ /dev/null @@ -1,22 +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. -# -gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph -gremlin.tinkergraph.vertexIdManager=LONG -gremlin.tinkergraph.graphLocation=src/test/resources/org/apache/tinkerpop/gremlin/python/driver/credentials.kryo -gremlin.tinkergraph.graphFormat=gryo \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-empty.properties ---------------------------------------------------------------------- diff --git a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-empty.properties b/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-empty.properties deleted file mode 100644 index e09a13d..0000000 --- a/gremlin-python/src/test/resources/org/apache/tinkerpop/gremlin/python/driver/tinkergraph-empty.properties +++ /dev/null @@ -1,18 +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. -gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph -gremlin.tinkergraph.vertexIdManager=LONG \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/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 8690206..d0bd8fd 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 @@ -28,6 +28,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.TraversalStrategy; import org.apache.tinkerpop.gremlin.server.auth.AllowAllAuthenticator; import org.apache.tinkerpop.gremlin.server.auth.Authenticator; import org.apache.tinkerpop.gremlin.server.channel.WebSocketChannelizer; +import org.apache.tinkerpop.gremlin.server.handler.AbstractAuthenticationHandler; import org.apache.tinkerpop.gremlin.server.util.DefaultGraphManager; import info.ganglia.gmetric4j.gmetric.GMetric; import org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor; @@ -409,7 +410,7 @@ public class Settings { * The fully qualified class name of the {@link Authenticator} implementation. This class name will be * used to load the implementation from the classpath. Defaults to {@link AllowAllAuthenticator} when * not specified. - * @deprecated As of release 3.2.5, replaced by {@link authenticator}. + * @deprecated As of release 3.2.5, replaced by {@link #authenticator}. */ @Deprecated public String className = AllowAllAuthenticator.class.getName(); http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/MetricManager.java ---------------------------------------------------------------------- diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/MetricManager.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/MetricManager.java index 70957c9..12d78fc 100644 --- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/MetricManager.java +++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/util/MetricManager.java @@ -431,7 +431,10 @@ public enum MetricManager { * {@link GremlinScriptEngine} implementations achieve greater parity these metrics will get expanded. */ public void registerGremlinScriptEngineMetrics(final GremlinScriptEngine engine, final String... prefix) { - if (engine instanceof GremlinGroovyScriptEngine) { + // only register if metrics aren't already registered. typically only happens in testing where two gremlin + // server instances are running in the same jvm. they will share the same metrics if that is the case since + // the MetricsManager is static + if (engine instanceof GremlinGroovyScriptEngine && getRegistry().getNames().stream().noneMatch(n -> n.endsWith("long-run-compilation-count"))) { final GremlinGroovyScriptEngine gremlinGroovyScriptEngine = (GremlinGroovyScriptEngine) engine; getRegistry().register( MetricRegistry.name(GremlinServer.class, ArrayUtils.add(prefix, "long-run-compilation-count")), http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-server/src/test/scripts/test-server-start.groovy ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/scripts/test-server-start.groovy b/gremlin-server/src/test/scripts/test-server-start.groovy new file mode 100644 index 0000000..83efcd5 --- /dev/null +++ b/gremlin-server/src/test/scripts/test-server-start.groovy @@ -0,0 +1,49 @@ +/* + * 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.Settings +import org.apache.tinkerpop.gremlin.server.auth.SimpleAuthenticator + +if (Boolean.parseBoolean(skipTests)) return + +log.info("Starting Gremlin Server instances for native testing of ${executionName}") +def settings = Settings.read("${gremlinServerDir}/conf/gremlin-server-modern-py.yaml") +settings.graphs.graph = gremlinServerDir + "/conf/tinkergraph-empty.properties" +settings.scriptEngines["gremlin-groovy"].scripts = [gremlinServerDir + "/scripts/generate-modern.groovy"] +settings.port = 45940 + +def server = new GremlinServer(settings) +server.start().join() + +project.setContextValue("gremlin.server", server) +log.info("Gremlin Server with no authentication started on port 45940") + +def settingsSecure = Settings.read("${gremlinServerDir}/conf/gremlin-server-modern.yaml") +settingsSecure.graphs.graph = gremlinServerDir + "/conf/tinkergraph-empty.properties" +settingsSecure.scriptEngines["gremlin-groovy"].scripts = [gremlinServerDir + "/scripts/generate-modern.groovy"] +settingsSecure.port = 45941 +settingsSecure.authentication.className = SimpleAuthenticator.class.name +settingsSecure.authentication.config = [credentialsDb: gremlinServerDir + "/conf/tinkergraph-credentials.properties", credentialsDbLocation: gremlinServerDir + "/data/credentials.kryo"] + +def serverSecure = new GremlinServer(settingsSecure) +serverSecure.start().join() + +project.setContextValue("gremlin.server.secure", serverSecure) +log.info("Gremlin Server with authentication started on port 45941") \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/gremlin-server/src/test/scripts/test-server-stop.groovy ---------------------------------------------------------------------- diff --git a/gremlin-server/src/test/scripts/test-server-stop.groovy b/gremlin-server/src/test/scripts/test-server-stop.groovy new file mode 100644 index 0000000..595d9bd --- /dev/null +++ b/gremlin-server/src/test/scripts/test-server-stop.groovy @@ -0,0 +1,32 @@ +/* + * 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. + */ + +if (Boolean.parseBoolean(skipTests)) return + +log.info("Tests for native ${executionName} complete") + +def server = project.getContextValue("gremlin.server") +log.info("Shutting down $server") +server.stop().join() + +def serverSecure = project.getContextValue("gremlin.server.secure") +log.info("Shutting down $serverSecure") +serverSecure.stop().join() + +log.info("All Gremlin Server instances are shutdown for ${executionName}") \ No newline at end of file http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/hadoop-gremlin/pom.xml ---------------------------------------------------------------------- diff --git a/hadoop-gremlin/pom.xml b/hadoop-gremlin/pom.xml index f002e3f..3ed26d4 100644 --- a/hadoop-gremlin/pom.xml +++ b/hadoop-gremlin/pom.xml @@ -221,6 +221,20 @@ limitations under the License. <plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>addSources</goal> + <goal>addTestSources</goal> + <goal>generateStubs</goal> + <goal>compile</goal> + <goal>generateTestStubs</goal> + <goal>compileTests</goal> + <goal>removeStubs</goal> + <goal>removeTestStubs</goal> + </goals> + </execution> + </executions> </plugin> </plugins> </build> http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 57d1262..867aaf4 100644 --- a/pom.xml +++ b/pom.xml @@ -462,21 +462,7 @@ limitations under the License. <plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> - <version>1.5</version> - <executions> - <execution> - <goals> - <goal>addSources</goal> - <goal>addTestSources</goal> - <goal>generateStubs</goal> - <goal>compile</goal> - <goal>testGenerateStubs</goal> - <goal>testCompile</goal> - <goal>removeStubs</goal> - <goal>removeTestStubs</goal> - </goals> - </execution> - </executions> + <version>1.6</version> <configuration> <targetBytecode>1.8</targetBytecode> <invokeDynamic>true</invokeDynamic> http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/e9801e6a/spark-gremlin/pom.xml ---------------------------------------------------------------------- diff --git a/spark-gremlin/pom.xml b/spark-gremlin/pom.xml index dc3c0ea..560e236 100644 --- a/spark-gremlin/pom.xml +++ b/spark-gremlin/pom.xml @@ -361,6 +361,20 @@ <plugin> <groupId>org.codehaus.gmavenplus</groupId> <artifactId>gmavenplus-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>addSources</goal> + <goal>addTestSources</goal> + <goal>generateStubs</goal> + <goal>compile</goal> + <goal>generateTestStubs</goal> + <goal>compileTests</goal> + <goal>removeStubs</goal> + <goal>removeTestStubs</goal> + </goals> + </execution> + </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId>