Beispiel #1
0
        public IntegrationBus(IMessageQueueFactory queueFactory, IIntegrationBusStorageFactory subscriptionStorageFactory, IIntegrationBusSecurityTokenValidator securityTokenValidator, IIntegrationBusSubscriptionValidator subscriptionValidator)
        {
            if (queueFactory == null)
            {
                throw new ArgumentNullException("queueFactory");
            }

            if (subscriptionStorageFactory == null)
            {
                throw new ArgumentNullException("subscriptionStorageFactory");
            }

            if (securityTokenValidator == null)
            {
                throw new ArgumentNullException("securityTokenValidator");
            }

            if (subscriptionValidator == null)
            {
                throw new ArgumentNullException("subscriptionValidator");
            }

            _queueManager   = queueFactory.CreateMessageQueueManager();
            _queueListener  = queueFactory.CreateMessageQueueListener();
            _queuePublisher = queueFactory.CreateMessageQueuePublisher();

            _subscriptionStorage = subscriptionStorageFactory.CreateSubscriptionStorage();
            _queueConsumer       = new IntegrationBusConsumer(_subscriptionStorage);

            _securityTokenValidator = securityTokenValidator;
            _subscriptionValidator  = subscriptionValidator;

            _subscribers.Add("fanout", SubscribeFanout);
            _subscribers.Add("direct", SubscribeDirect);
            _subscribers.Add("topic", SubscribeTopic);
            _subscribers.Add("headers", SubscribeHeaders);

            _unsubscribers.Add("fanout", UnsubscribeFanout);
            _unsubscribers.Add("direct", UnsubscribeDirect);
            _unsubscribers.Add("topic", UnsubscribeTopic);
            _unsubscribers.Add("headers", UnsubscribeHeaders);
        }