public static RemoteGraph open(final Configuration conf) {
        if (!conf.containsKey(RemoteConnection.GREMLIN_REMOTE_CONNECTION_CLASS))
            throw new IllegalArgumentException("Configuration must contain the '" + RemoteConnection.GREMLIN_REMOTE_CONNECTION_CLASS + "' key");

        final RemoteConnection remoteConnection;
        try {
            final Class<? extends RemoteConnection> clazz = Class.forName(conf.getString(RemoteConnection.GREMLIN_REMOTE_CONNECTION_CLASS)).asSubclass(RemoteConnection.class);
            final Constructor<? extends RemoteConnection> ctor = clazz.getConstructor(Configuration.class);
            remoteConnection = ctor.newInstance(conf);
        } catch (Exception ex) {
            throw new IllegalStateException(ex);
        }

        return new RemoteGraph(remoteConnection, conf);
    }
Creates a new {@link RemoteGraph} instance using the specified configuration, which allows {@link RemoteGraph}
to be compliant with {@link GraphFactory}. Expects key for {@link RemoteConnection#GREMLIN_REMOTE_CONNECTION_CLASS}
as well as any configuration required by the underlying {@link RemoteConnection} which will be instantiated.
Note that the {@code Configuration} object is passed down without change to the creation of the
{@link RemoteConnection} instance.
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/structure/RemoteGraph.java