anchor.diff:  available threads and Gremlin Server would stop responding.
   
   Gremlin Server (more specifically the `GremlinGroovyScriptEngine`) provides methods to protect itself from these
  -kinds of troublesome scripts.  A user can configure the script engine with different `CompilerCustomizerProvider`
  -implementations.  Consider the basic configuration from the Gremlin Server YAML file:
  +kinds of troublesome scripts.  A user can configure the script engine with a `GroovyCompilerGremlinPlugin`
  +implementation. Consider the basic configuration from the Gremlin Server YAML file:
   
   [source,yaml]
  +----
   scriptEngines: {
     gremlin-groovy: {
  -    imports: [java.lang.Math],
  -    staticImports: [java.lang.Math.PI],
  -    scripts: [scripts/empty-sample.groovy]}}
  -
  -This configuration can be extended to include a `config` key as follows:
  +    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: {files: [scripts/empty-sample.groovy]}}}}
  +----
  +
  +This configuration can be expaded to include a the `GroovyCompilerGremlinPlugin`:
   
   [source,yaml]
  +----
   scriptEngines: {
     gremlin-groovy: {
  -    imports: [java.lang.Math],
  -    staticImports: [java.lang.Math.PI],
  -    scripts: [scripts/empty-sample.groovy],
  -    config: {
  -      compilerCustomizerProviders: {
  -        "org.apache.tinkerpop.gremlin.groovy.jsr223.customizer.TimedInterruptCustomizerProvider":[10000] }}}
  -
  -This configuration sets up the script engine with a `CompilerCustomizerProvider` implementation.  The
  -`TimedInterruptCustomizerProvider` injects checks that ensure that loops (like `while`) can only execute for `10000`
  +    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: {files: [scripts/empty-sample-secure.groovy]},
  +               org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyCompilerGremlinPlugin: {timedInterrupt: 10000}}}}
  +----
  +
  +This configuration sets up the script engine with to ensure that loops (like `while`) can only execute for `10000`
   milliseconds.  With this configuration in place, a remote execution as follows, now times out rather than consuming
   the thread continuously:
   
  
positive.code: [INFO] MetricManager - Configured Metrics Slf4jReporter configured with interval=180000ms and loggerName=org.apache.tinkerpop.gremlin.server.Settings$Slf4jReporterMetrics
  [INFO] GraphManager - Graph [graph] was successfully configured via [conf/tinkergraph-empty.properties].
  [INFO] ServerGremlinExecutor - Initialized Gremlin thread pool.  Threads in pool named with pattern gremlin-*
  [INFO] ScriptEngines - Loaded gremlin-groovy ScriptEngine
  [INFO] GremlinExecutor - Initialized gremlin-groovy ScriptEngine with scripts/generate-modern.groovy
  [INFO] ServerGremlinExecutor - Initialized GremlinExecutor and configured ScriptEngines.
  [INFO] ServerGremlinExecutor - A GraphTraversalSource is now bound to [g] with graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
  [INFO] OpLoader - Adding the standard OpProcessor.
  [INFO] OpLoader - Adding the control OpProcessor.
  [INFO] OpLoader - Adding the session OpProcessor.
  [INFO] OpLoader - Adding the traversal OpProcessor.
  [INFO] TraversalOpProcessor - Initialized cache for TraversalOpProcessor with size 1000 and expiration time of 600000 ms
  
negative.code: |metrics.jmxReporter.enabled |Turns on JMX reporting of metrics. |false
  |metrics.slf4jReporter.enabled |Turns on SLF4j reporting of metrics. |false
  |metrics.slf4jReporter.interval |Time in milliseconds between reports of metrics to SLF4j. |180000
  |port |The port to bind the server to. |8182
  |processors |A `List` of `Map` settings, where each `Map` represents a `OpProcessor` implementation to use along with its configuration. |_none_
  |processors[X].className |The full class name of the `OpProcessor` implementation. |_none_
  