Example #1
0
        public static IGremlinQueryExecutionPipeline UseWebSocketExecutor(
            this IGremlinQueryExecutionPipeline pipeline,
            string hostname,
            int port        = 8182,
            bool enableSsl  = false,
            string username = null,
            string password = null,
            GraphsonVersion graphsonVersion = GraphsonVersion.V2,
            IReadOnlyDictionary <Type, IGraphSONSerializer> additionalGraphsonSerializers       = null,
            IReadOnlyDictionary <string, IGraphSONDeserializer> additionalGraphsonDeserializers = null,
            ILogger logger = null)
        {
            var actualAdditionalGraphsonSerializers   = additionalGraphsonSerializers ?? ImmutableDictionary <Type, IGraphSONSerializer> .Empty;
            var actualAdditionalGraphsonDeserializers = additionalGraphsonDeserializers ?? ImmutableDictionary <string, IGraphSONDeserializer> .Empty;

            return(pipeline
                   .UseWebSocketExecutor(
                       () => new GremlinClient(
                           new GremlinServer(hostname, port, enableSsl, username, password),
                           graphsonVersion == GraphsonVersion.V2
                            ? new GraphSON2Reader(actualAdditionalGraphsonDeserializers)
                            : (GraphSONReader) new GraphSON3Reader(actualAdditionalGraphsonDeserializers),
                           graphsonVersion == GraphsonVersion.V2
                            ? new GraphSON2Writer(actualAdditionalGraphsonSerializers)
                            : (GraphSONWriter) new GraphSON3Writer(actualAdditionalGraphsonSerializers),
                           graphsonVersion == GraphsonVersion.V2
                            ? GremlinClient.GraphSON2MimeType
                            : GremlinClient.DefaultMimeType),
                       logger));
        }
        public static IGremlinQueryExecutionPipeline UseWebSocketExecutor(
            this IGremlinQueryExecutionPipeline pipeline,
            Uri uri,
            string?username = null,
            string?password = null,
            string alias    = "g",
            GraphsonVersion graphsonVersion = GraphsonVersion.V2,
            IReadOnlyDictionary <Type, IGraphSONSerializer>?additionalGraphsonSerializers       = null,
            IReadOnlyDictionary <string, IGraphSONDeserializer>?additionalGraphsonDeserializers = null,
            ILogger?logger = null)
        {
            var actualAdditionalGraphsonSerializers   = additionalGraphsonSerializers ?? ImmutableDictionary <Type, IGraphSONSerializer> .Empty;
            var actualAdditionalGraphsonDeserializers = additionalGraphsonDeserializers ?? ImmutableDictionary <string, IGraphSONDeserializer> .Empty;

            if (!"ws".Equals(uri.Scheme, StringComparison.OrdinalIgnoreCase) && !"wss".Equals(uri.Scheme, StringComparison.OrdinalIgnoreCase))
            {
                throw new ArgumentException();
            }

            return(pipeline
                   .UseWebSocketExecutor(
                       () => new GremlinClient(
                           new GremlinServer((uri.Host + uri.AbsolutePath).TrimEnd('/'), uri.Port, "wss".Equals(uri.Scheme, StringComparison.OrdinalIgnoreCase), username, password),
                           graphsonVersion == GraphsonVersion.V2
                            ? new GraphSON2Reader(actualAdditionalGraphsonDeserializers)
                            : (GraphSONReader) new GraphSON3Reader(actualAdditionalGraphsonDeserializers),
                           graphsonVersion == GraphsonVersion.V2
                            ? new GraphSON2Writer(actualAdditionalGraphsonSerializers)
                            : (GraphSONWriter) new GraphSON3Writer(actualAdditionalGraphsonSerializers),
                           graphsonVersion == GraphsonVersion.V2
                            ? GremlinClient.GraphSON2MimeType
                            : GremlinClient.DefaultMimeType),
                       alias,
                       logger));
        }
Example #3
0
 public static IGremlinQueryExecutionPipeline UseCosmosDbSerializer(this IGremlinQueryExecutionPipeline pipeline)
 {
     return(pipeline
            .ConfigureSerializer(serializer => serializer
                                 .UseCosmosDbWorkarounds()
                                 .ToGroovy()));
 }
Example #4
0
 public GremlinQueryEnvironmentImpl(IGraphModel model, IGremlinQueryExecutionPipeline pipeline, IImmutableDictionary <GremlinqOption, object> options, ILogger logger)
 {
     Model    = model;
     Pipeline = pipeline;
     Options  = options;
     Logger   = logger;
 }
Example #5
0
 public static IGremlinQueryExecutionPipeline UseCosmosDbSerializer(this IGremlinQueryExecutionPipeline pipeline)
 {
     return(pipeline
            .UseSerializer(builder => builder
                           .UseDefaultGremlinStepSerializationHandlers()
                           .UseGroovy()
                           .UseCosmosDbWorkarounds()
                           .Build()));
 }
 public ConfigurableGremlinQuerySourceImpl(string name, IGraphModel model, GremlinqOptions gremlinqOptions, bool isUserSetModel, IGremlinQueryExecutionPipeline pipeline, ImmutableList <IGremlinQueryStrategy> includedStrategies, ImmutableList <string> excludedStrategies, ILogger logger)
 {
     Name                  = name;
     Model                 = model;
     Logger                = logger;
     Options               = gremlinqOptions;
     Pipeline              = pipeline;
     _isUserSetModel       = isUserSetModel;
     IncludedStrategies    = includedStrategies;
     ExcludedStrategyNames = excludedStrategies;
 }
Example #7
0
 public static IGremlinQueryExecutionPipeline UseCosmosDbExecutor(this IGremlinQueryExecutionPipeline pipeline, Uri uri, string database, string graphName, string authKey, ILogger logger)
 {
     return(pipeline
            .UseWebSocketExecutor(
                uri,
                $"/dbs/{database}/colls/{graphName}",
                authKey,
                "g",
                GraphsonVersion.V2,
                new Dictionary <Type, IGraphSONSerializer>
     {
         { typeof(TimeSpan), new TimeSpanSerializer() }
     },
Example #8
0
 private static IGremlinQueryExecutionPipeline UseCosmosDbExecutor(this IGremlinQueryExecutionPipeline builder, string hostname, int port, bool enableSsl, string database, string graphName, string authKey, ILogger logger)
 {
     return(builder
            .UseWebSocketExecutor(
                hostname,
                port,
                enableSsl,
                $"/dbs/{database}/colls/{graphName}",
                authKey,
                GraphsonVersion.V2,
                new Dictionary <Type, IGraphSONSerializer>
     {
         { typeof(TimeSpan), new TimeSpanSerializer() }
     },
Example #9
0
 public static IGremlinQueryExecutionPipeline UseCosmosDbEmulatorExecutor(this IGremlinQueryExecutionPipeline builder, string hostname, string database, string graphName, string authKey, ILogger logger, int port = 8901)
 {
     return(builder.UseCosmosDbExecutor(hostname, port, false, database, graphName, authKey, logger));
 }
Example #10
0
 public static IGremlinQueryExecutionPipeline UseCosmosDbDeserializer(this IGremlinQueryExecutionPipeline pipeline)
 {
     return(pipeline
            .UseDeserializer(GremlinQueryExecutionResultDeserializer.GraphsonWithJsonConverters(new TimespanConverter())));
 }
Example #11
0
 public static IGremlinQueryExecutionPipeline UseExecutor(this IGremlinQueryExecutionPipeline pipeline, IGremlinQueryExecutor executor)
 {
     return(pipeline.ConfigureExecutor(_ => executor));
 }
Example #12
0
 public static IGremlinQueryExecutionPipeline UseDeserializer(this IGremlinQueryExecutionPipeline pipeline, IGremlinQueryExecutionResultDeserializer deserializer)
 {
     return(pipeline.ConfigureDeserializer(_ => deserializer));
 }
Example #13
0
 public static IGremlinQueryExecutionPipeline UseSerializer(this IGremlinQueryExecutionPipeline pipeline, IGremlinQuerySerializer serializer)
 {
     return(pipeline.ConfigureSerializer(_ => serializer));
 }
Example #14
0
 public static IGremlinQueryExecutionPipeline UseWebSocketExecutor(this IGremlinQueryExecutionPipeline pipeline, Func <IGremlinClient> clientFactory, ILogger logger = null)
 {
     return(pipeline
            .UseExecutor(new WebSocketGremlinQueryExecutor(clientFactory, logger)));
 }
Example #15
0
 public static IGremlinQueryExecutionPipeline UseSerializer(this IGremlinQueryExecutionPipeline pipeline, Func <IGremlinQuerySerializerBuilder, IGremlinQuerySerializer> builder)
 {
     return(pipeline.ConfigureSerializer(_ => builder(GremlinQuerySerializerBuilder.Invalid)));
 }
Example #16
0
 public static IGremlinQueryEnvironment UseExecutionPipeline(this IGremlinQueryEnvironment source, IGremlinQueryExecutionPipeline pipeline)
 {
     return(source.ConfigureExecutionPipeline(_ => pipeline));
 }