public ServiceBusMessageBus(MessageBusSettings settings, ServiceBusMessageBusSettings providerSettings) : base(settings) { _logger = LoggerFactory.CreateLogger <ServiceBusMessageBus>(); ProviderSettings = providerSettings ?? throw new ArgumentNullException(nameof(providerSettings)); OnBuildProvider(); }
public static MessageBusBuilder WithProviderServiceBus(this MessageBusBuilder mbb, ServiceBusMessageBusSettings providerSettings) { if (mbb is null) { throw new ArgumentNullException(nameof(mbb)); } return(mbb.WithProvider(settings => new ServiceBusMessageBus(settings, providerSettings))); }
public ServiceBusMessageBus(MessageBusSettings settings, ServiceBusMessageBusSettings providerSettings) : base(settings) { ProviderSettings = providerSettings ?? throw new ArgumentNullException(nameof(providerSettings)); OnBuildProvider(); }
public ServiceBusMessageBus(MessageBusSettings settings, ServiceBusMessageBusSettings serviceBusSettings) : base(settings) { ServiceBusSettings = serviceBusSettings; _producerByTopic = new SafeDictionaryWrapper <string, ITopicClient>(topic => { Log.DebugFormat(CultureInfo.InvariantCulture, $"Creating {nameof(ITopicClient)} for name {0}", topic); return(ServiceBusSettings.TopicClientFactory(topic)); }); _producerByQueue = new SafeDictionaryWrapper <string, IQueueClient>(queue => { Log.DebugFormat(CultureInfo.InvariantCulture, $"Creating {nameof(IQueueClient)} for name {0}", queue); return(ServiceBusSettings.QueueClientFactory(queue)); }); foreach (var producerSettings in settings.Producers) { var producerKind = producerSettings.GetKind(); PathKind existingKind; var topic = producerSettings.DefaultTopic; if (topic != null) { if (_kindByTopic.TryGetValue(topic, out existingKind)) { if (existingKind != producerKind) { throw new InvalidConfigurationMessageBusException($"The same name '{topic}' was used for queue and topic. You cannot share one name for a topic and queue. Please fix your configuration."); } } else { _kindByTopic.Add(topic, producerKind); } } if (_kindByMessageType.TryGetValue(producerSettings.MessageType, out existingKind)) { if (existingKind != producerKind) { throw new InvalidConfigurationMessageBusException($"The same message type '{producerSettings.MessageType}' was used for queue and topic. You cannot share one message type for a topic and queue. Please fix your configuration."); } } else { _kindByMessageType.Add(producerSettings.MessageType, producerKind); } } Log.Info("Creating consumers"); foreach (var consumerSettings in settings.Consumers) { Log.InfoFormat(CultureInfo.InvariantCulture, "Creating consumer for {0}", consumerSettings.FormatIf(Log.IsInfoEnabled)); var messageProcessor = new ConsumerInstancePool <Message>(consumerSettings, this, m => m.Body); AddConsumer(consumerSettings, messageProcessor); } if (settings.RequestResponse != null) { Log.InfoFormat(CultureInfo.InvariantCulture, "Creating response consumer for {0}", settings.RequestResponse.FormatIf(Log.IsInfoEnabled)); var messageProcessor = new ResponseMessageProcessor <Message>(settings.RequestResponse, this, m => m.Body); AddConsumer(settings.RequestResponse, messageProcessor); } }
public static MessageBusBuilder WithProviderServiceBus(this MessageBusBuilder mbb, ServiceBusMessageBusSettings serviceBusSettings) { return(mbb.WithProvider(settings => new ServiceBusMessageBus(settings, serviceBusSettings))); }
public ServiceBusMessageBus(MessageBusSettings settings, ServiceBusMessageBusSettings serviceBusSettings) : base(settings) { ProviderSettings = serviceBusSettings; OnBuildProvider(); }