Beispiel #1
0
 public HttpDiagnosticListenerObserver(
     IEnumerable <IContextInjector <TContext, HttpRequestMessage> > contextInjectors,
     IEndpointFilter endpointFilter,
     IOutgoingRequestNotifier <TContext, HttpRequestMessage, HttpResponseMessage> requestNotifier)
 {
     this.endpointFilter   = endpointFilter;
     this.contextInjectors = new List <IContextInjector <TContext, HttpRequestMessage> >(contextInjectors);
     this.requestNotifier  = requestNotifier;
 }
        public ReplicationEndpoint Endpoint(
            ImmutableHashSet <string> logNames,
            ImmutableHashSet <ReplicationConnection> connections,
            IEndpointFilter endpointFilters       = null,
            string applicationName                = null,
            ApplicationVersion?applicationVersion = null,
            bool activate = true)
        {
            endpointFilters = endpointFilters ?? NoFilters.Instance;
            applicationName = applicationName ?? ReplicationEndpoint.DefaultApplicationName;
            var appVer = applicationVersion ?? ReplicationEndpoint.DefaultApplicationVersion;

            var endpoint = new ReplicationEndpoint(System, Id, logNames, LogFactory, connections, endpointFilters, applicationName, appVer);

            if (activate)
            {
                endpoint.Activate();
            }
            return(endpoint);
        }
        public ReplicationEndpoint(
            ActorSystem system,
            string id,
            ImmutableHashSet <string> logNames,
            Func <string, Props> logFactory,
            ImmutableHashSet <ReplicationConnection> connections,
            IEndpointFilter endpointFilters       = null,
            string applicationName                = null,
            ApplicationVersion?applicationVersion = null)
        {
            System             = system;
            Id                 = id;
            LogNames           = logNames;
            LogFactory         = logFactory;
            Connections        = connections;
            EndpointFilters    = endpointFilters ?? NoFilters.Instance;
            ApplicationName    = applicationName ?? DefaultApplicationName;
            ApplicationVersion = applicationVersion ?? DefaultApplicationVersion;
            Settings           = new ReplicationSettings(system.Settings.Config);

            var logs = ImmutableDictionary.CreateBuilder <string, IActorRef>();

            foreach (var logName in logNames)
            {
                var logId = LogId(logName);
                logs[logName] = system.ActorOf(LogFactory(logId), logId);
            }
            Logs = logs.ToImmutable();

            var connectors = ImmutableHashSet.CreateBuilder <SourceConnector>();

            foreach (var connection in connections)
            {
                connectors.Add(new SourceConnector(this, connection));
            }
            this.connectors = connectors.ToImmutable();
            this.acceptor   = new Lazy <IActorRef>(() => system.ActorOf(Props.Create(() => new Acceptor(this)), Eventuate.Acceptor.Name));
            var started = this.acceptor.Value;
        }
Beispiel #4
0
 public static TBuilder AddEndpointFilter <TBuilder>(this TBuilder builder, IEndpointFilter filter) where TBuilder : IEndpointConventionBuilder =>
 builder.AddEndpointFilterFactory((routeHandlerContext, next) => (context) => filter.InvokeAsync(context, next));
 /// <summary>
 /// Sets <see cref="IEndpointFilter"/>
 /// </summary>
 /// <param name="endpointFilter"><see cref="IEndpointFilter"/> instance</param>
 /// <returns>Current <see cref="Configuration{TContext,TOutRequest,TOutResponse}"/> for chaining</returns>
 public Configuration <TContext, TOutRequest, TOutResponse> WithEndpointValidator(IEndpointFilter endpointFilter)
 {
     EndpointFilter = endpointFilter;
     return(this);
 }