public OutboundQueueListener(ITransportService transportService, IMessageJournalingService messageJournalingService, Func<Uri, IEndpointCredentials> credentialsFactory) { if (transportService == null) { throw new ArgumentNullException("transportService"); } _transportService = transportService; _messageJournalingService = messageJournalingService; _credentialsFactory = credentialsFactory ?? (uri => null); }
public HttpTransportService(Uri baseUri, IEndpointCollection endpoints, IMessageQueueingService messageQueueingService, IMessageJournalingService messageJournalingService, ISubscriptionTrackingService subscriptionTrackingService) { if (baseUri == null) throw new ArgumentNullException("baseUri"); if (messageQueueingService == null) throw new ArgumentNullException("messageQueueingService"); if (subscriptionTrackingService == null) throw new ArgumentNullException("subscriptionTrackingService"); _baseUri = baseUri; _endpoints = endpoints == null ? ReadOnlyEndpointCollection.Empty : new ReadOnlyEndpointCollection(endpoints); _messageQueueingService = messageQueueingService; _messageJournalingService = messageJournalingService; _subscriptionTrackingService = subscriptionTrackingService; _outboundQueueName = "Outbound"; }
private async Task Init(CancellationToken cancellationToken = default(CancellationToken)) { _configuration = await IISConfigurationManager.LoadConfiguration(); _baseUri = _configuration.BaseUri; _subscriptionTrackingService = _configuration.SubscriptionTrackingService; _messageQueueingService = _configuration.MessageQueueingService; _messageJournalingService = _configuration.MessageJournalingService; var endpoints = _configuration.Endpoints; _transportService = new HttpTransportService(_baseUri, endpoints, _messageQueueingService, _messageJournalingService, _subscriptionTrackingService); _bus = new Bus(_configuration, _baseUri, _transportService, _messageQueueingService); await _transportService.Init(cancellationToken); await _bus.Init(cancellationToken); _resourceRouter = new ResourceTypeDictionaryRouter { {"message", new MessageController(_bus.HandleMessage)}, {"topic", new TopicController(_subscriptionTrackingService, _configuration.Topics)} }; }
/// <summary> /// Initializes a new <see cref="Bus"/> with the specified configuration and services /// provided by the host /// </summary> /// <param name="configuration">The core bus configuration</param> /// <param name="baseUri">The base URI provided by the host</param> /// <param name="transportService">The transport service provided by the host</param> /// <param name="messageQueueingService">The message queueing service provided by the host</param> /// <exception cref="ArgumentNullException">Thrown if any of the parameters are <c>null</c></exception> public Bus(IPlatibusConfiguration configuration, Uri baseUri, ITransportService transportService, IMessageQueueingService messageQueueingService) { if (configuration == null) throw new ArgumentNullException("configuration"); if (baseUri == null) throw new ArgumentNullException("baseUri"); if (transportService == null) throw new ArgumentNullException("transportService"); if (messageQueueingService == null) throw new ArgumentNullException("messageQueueingService"); _baseUri = baseUri; _transportService = transportService; _messageQueueingService = messageQueueingService; // TODO: Throw configuration exception if message queueing service, message naming // service, or serialization service are null _messageJournalingService = configuration.MessageJournalingService; _messageNamingService = configuration.MessageNamingService; _serializationService = configuration.SerializationService; _endpoints = new ReadOnlyEndpointCollection(configuration.Endpoints); _topics = configuration.Topics.ToList(); _sendRules = configuration.SendRules.ToList(); _handlingRules = configuration.HandlingRules.ToList(); _subscriptions = configuration.Subscriptions.ToList(); }
private HttpServer(IHttpServerConfiguration configuration) { _baseUri = configuration.BaseUri; _subscriptionTrackingService = configuration.SubscriptionTrackingService; _messageQueueingService = configuration.MessageQueueingService; _messageJournalingService = configuration.MessageJournalingService; var endpoints = configuration.Endpoints; _transportService = new HttpTransportService(_baseUri, endpoints, _messageQueueingService, _messageJournalingService, _subscriptionTrackingService); _bus = new Bus(configuration, _baseUri, _transportService, _messageQueueingService); _resourceRouter = new ResourceTypeDictionaryRouter { {"message", new MessageController(_bus.HandleMessage)}, {"topic", new TopicController(_subscriptionTrackingService, configuration.Topics)} }; _httpListener = InitHttpListener(_baseUri, configuration.AuthenticationSchemes); }