/// <summary> /// Initializes the specified <paramref name="platibusConfiguration"/> object according to the /// values in the supplied <paramref name="configuration"/> /// </summary> /// <param name="platibusConfiguration">The configuration object to initialize</param> /// <param name="configuration">The <see cref="IConfigurationSection"/> /// containing the values used to initialize the Platibus configuration</param> public virtual async Task Initialize(TConfiguration platibusConfiguration, IConfiguration configuration) { if (platibusConfiguration == null) { throw new ArgumentNullException(nameof(platibusConfiguration)); } await InitializeDiagnostics(platibusConfiguration, configuration); var diagnosticService = platibusConfiguration.DiagnosticService; platibusConfiguration.ReplyTimeout = configuration?.GetValue <TimeSpan>("replyTimeout") ?? TimeSpan.Zero; platibusConfiguration.SerializationService = new DefaultSerializationService(); platibusConfiguration.MessageNamingService = new DefaultMessageNamingService(); platibusConfiguration.DefaultContentType = configuration?["defaultContentType"]; InitializeDefaultSendOptions(platibusConfiguration, configuration); InitializeEndpoints(platibusConfiguration, configuration); InitializeTopics(platibusConfiguration, configuration); InitializeSendRules(platibusConfiguration, configuration); InitializeSubscriptions(platibusConfiguration, configuration); var messageJournalFactory = new MessageJournalFactory(diagnosticService); var journalingSection = configuration?.GetSection("journaling"); platibusConfiguration.MessageJournal = await messageJournalFactory.InitMessageJournal(journalingSection); }
/// <summary> /// Initializes the specified <paramref name="configuration"/> object according to the /// values in the supplied <paramref name="configSection"/> /// </summary> /// <param name="configuration">The configuration object to initialize</param> /// <param name="configSection">The <see cref="PlatibusConfigurationSection"/> /// containing the values used to initialize the Platibus configuration</param> public virtual async Task Initialize(TConfiguration configuration, PlatibusConfigurationSection configSection) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } if (configSection == null) { throw new ArgumentNullException(nameof(configSection)); } await InitializeDiagnostics(configuration, configSection); var diagnosticService = configuration.DiagnosticService; configuration.ReplyTimeout = configSection.ReplyTimeout; configuration.SerializationService = new DefaultSerializationService(); configuration.MessageNamingService = new DefaultMessageNamingService(); configuration.DefaultContentType = configSection.DefaultContentType; InitializeDefaultSendOptions(configuration, configSection); InitializeEndpoints(configuration, configSection); InitializeTopics(configuration, configSection); InitializeSendRules(configuration, configSection); InitializeSubscriptions(configuration, configSection); var messageJournalFactory = new MessageJournalFactory(diagnosticService); configuration.MessageJournal = await messageJournalFactory.InitMessageJournal(configSection.Journaling); }
/// <summary> /// Initializes the specified <paramref name="platibusConfiguration"/> object according to the /// values in the supplied loopback <paramref name="configSection"/> /// </summary> /// <param name="platibusConfiguration">The configuration object to initialize</param> /// <param name="configSection">The <see cref="LoopbackConfigurationSection"/> /// containing the values used to initialize the Platibus configuration</param> public async Task Initialize(LoopbackConfiguration platibusConfiguration, LoopbackConfigurationSection configSection) { if (platibusConfiguration == null) { throw new ArgumentNullException(nameof(platibusConfiguration)); } if (configSection == null) { throw new ArgumentNullException(nameof(configSection)); } await InitializeDiagnostics(platibusConfiguration, configSection); platibusConfiguration.ReplyTimeout = configSection.ReplyTimeout; platibusConfiguration.SerializationService = new DefaultSerializationService(); platibusConfiguration.MessageNamingService = new DefaultMessageNamingService(); platibusConfiguration.DefaultContentType = configSection.DefaultContentType; if (configSection.DefaultSendOptions != null) { platibusConfiguration.DefaultSendOptions = new SendOptions { ContentType = configSection.DefaultSendOptions.ContentType, TTL = configSection.DefaultSendOptions.TTL, Synchronous = configSection.DefaultSendOptions.Synchronous }; } InitializeTopics(platibusConfiguration, configSection); var messageJournalFactory = new MessageJournalFactory(platibusConfiguration.DiagnosticService); platibusConfiguration.MessageJournal = await messageJournalFactory.InitMessageJournal(configSection.Journaling); var mqsFactory = new MessageQueueingServiceFactory(platibusConfiguration.DiagnosticService); platibusConfiguration.MessageQueueingService = await mqsFactory.InitMessageQueueingService(configSection.Queueing); }
public static Task <IMessageJournal> InitMessageJournal(JournalingElement config) { var factory = new MessageJournalFactory(); return(factory.InitMessageJournal(config)); }