Example #1
0
        /// <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);
        }
Example #2
0
        /// <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));
        }