protected MessageQueueingServiceTests(IDiagnosticService diagnosticService, TMessageQueueingService messageQueueingService) { DiagnosticService = diagnosticService ?? Platibus.Diagnostics.DiagnosticService.DefaultInstance; MessageQueueingService = messageQueueingService; SecurityTokenService = new JwtSecurityTokenService(); DiagnosticService.AddSink(VerificationSink); }
public AesMessageEncryptionServiceTests() { var key = GenerateKey(); Options = new AesMessageEncryptionOptions(key) { DiagnosticService = DiagnosticService }; DiagnosticService.AddSink(EmittedDiagnosticEvents.Add); }
private HttpServer(IHttpServerConfiguration configuration) { _baseUri = configuration.BaseUri; _metricsCollector = new HttpMetricsCollector(); _diagnosticService = configuration.DiagnosticService; _diagnosticService.AddSink(_metricsCollector); _subscriptionTrackingService = configuration.SubscriptionTrackingService; _messageQueueingService = configuration.MessageQueueingService; _messageJournal = configuration.MessageJournal; var transportServiceOptions = new HttpTransportServiceOptions(_baseUri, _messageQueueingService, _subscriptionTrackingService) { DiagnosticService = configuration.DiagnosticService, Endpoints = configuration.Endpoints, MessageJournal = configuration.MessageJournal, BypassTransportLocalDestination = configuration.BypassTransportLocalDestination }; TransportService = new HttpTransportService(transportServiceOptions); _bus = new Bus(configuration, _baseUri, TransportService, _messageQueueingService); var authorizationService = configuration.AuthorizationService; _resourceRouter = new ResourceTypeDictionaryRouter(configuration.BaseUri) { { "message", new MessageController(TransportService.ReceiveMessage, authorizationService) }, { "topic", new TopicController(_subscriptionTrackingService, configuration.Topics, authorizationService) }, { "journal", new JournalController(configuration.MessageJournal, configuration.AuthorizationService) }, { "metrics", new MetricsController(_metricsCollector) } }; _httpListener = InitHttpListener(_baseUri, configuration.AuthenticationSchemes); var acceptBlockOptions = new ExecutionDataflowBlockOptions { CancellationToken = _cancellationTokenSource.Token }; if (configuration.ConcurrencyLimit > 0) { acceptBlockOptions.MaxDegreeOfParallelism = configuration.ConcurrencyLimit; } _acceptBlock = new ActionBlock <HttpListenerContext>(async ctx => await Accept(ctx), acceptBlockOptions); }
/// <summary> /// Adds a new <see cref="IDiagnosticEventSink"/> that invokes the specified callback /// when diagnostic events are emitted. /// </summary> /// <param name="diagnosticService">The diagnostic service to which the sink is to be /// added</param> /// <param name="consume">The callback used to consume the diagnostic events emitted /// throug the <paramref name="diagnosticService"/></param> public static void AddSink(this IDiagnosticService diagnosticService, Action <DiagnosticEvent> consume) { diagnosticService.AddSink(new DelegateDiagnosticEventSink(consume)); }