@Override
    public void addPlugin(final GremlinPlugin plugin) {
        // TODO: should modules be a set based on "name" to ensure uniqueness? not sure what bad stuff can happen with dupes
        if (plugin != null) plugins.add(plugin);
    }
This constructor loads the implementations of {@link GremlinScriptEngineFactory} visible to the given
{@code ClassLoader} using the {@code ServiceLoader} mechanism. If loader is <code>null</code>, the script
engine factories that are bundled with the platform and that are in the usual extension directories
(installed extensions) are loaded.
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/jsr223/DefaultGremlinScriptEngineManager.java