Ejemplo n.º 1
0
        private static IMessageBus BuildMessageBus(AbstractConfiguration cfg)
        {
            ISubscriptionService subscriptionService = MessageBusConfigurationExtensions.GetSubscriptionService(cfg);
            IMessageSink         messageSink         = MessageBusConfigurationExtensions.GetMessageSink(cfg);
            IObjectContainer     container           = ObjectContainerConfigurationExtensions.GetObjectContainer(cfg);
            IRouteManager        routeManager        = container.Resolve <IRouteManager>();

            Xyperico.Agres.MessageBus.Implementation.MessageBus bus = new Agres.MessageBus.Implementation.MessageBus(subscriptionService, routeManager, messageSink);
            container.RegisterInstance <IMessageBus>(bus);

            return(bus);
        }
Ejemplo n.º 2
0
        private static void AutoSubscribeToHandledMessages(BaseConfiguration cfg)
        {
            ISubscriptionService subscriptionService = MessageBusConfigurationExtensions.GetSubscriptionService(cfg);
            IMessageSink         messageSink         = MessageBusConfigurationExtensions.GetMessageSink(cfg);

            MessageDispatcher dispatcher = MessageBusConfigurationExtensions.GetDispatcher(cfg);

            foreach (Type msg in dispatcher.GetHandledMessages())
            {
                if (typeof(IEvent).IsAssignableFrom(msg))
                {
                    subscriptionService.Subscribe(msg, messageSink);
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Start configuration of messages bus and scan for message handlers in the supplied assemblies.
        /// </summary>
        /// <param name="cfg"></param>
        /// <param name="assemblies"></param>
        /// <param name="messageHandlerConvention"></param>
        /// <returns></returns>
        public static MessageBusConfiguration MessageBus(this BaseConfiguration cfg, IEnumerable <Assembly> assemblies, IMessageHandlerConvention messageHandlerConvention = null)
        {
            if (cfg.ContainsKey(MessageBus_SettingsKey))
            {
                throw new InvalidOperationException("You should not configure MessageBus twice.");
            }
            cfg.Set(MessageBus_SettingsKey, true);

            Condition.Requires(assemblies, "assemblies").IsNotNull();

            // Also scan core message handlers
            assemblies = assemblies.Union(new Assembly[] { Assembly.GetExecutingAssembly() });

            MessageDispatcher dispatcher = MessageBusConfigurationExtensions.GetDispatcher(cfg);

            dispatcher.RegisterMessageHandlers(assemblies, messageHandlerConvention ?? new DefaultMessageHandlerConvention());

            return(new MessageBusConfiguration(cfg));
        }
Ejemplo n.º 4
0
        private static MessageBusHost BuildMessageBusHost(AbstractConfiguration cfg)
        {
            MessageBusHost busHost = new MessageBusHost(MessageBusConfigurationExtensions.GetMessageSource(cfg), MessageBusConfigurationExtensions.GetDispatcher(cfg));

            return(busHost);
        }