protected override IMessageListener CreateMessageListener(IMessageListenerContainer container)
        {
            if (MessageHandlerMethodFactory == null)
            {
                throw new InvalidOperationException("Could not create message listener - MessageHandlerMethodFactory not set");
            }

            var messageListener = CreateMessageListenerInstance();

            messageListener.HandlerAdapter = ConfigureListenerAdapter(messageListener);
            var replyToAddress = GetDefaultReplyToAddress();

            if (replyToAddress != null)
            {
                messageListener.SetResponseAddress(replyToAddress);
            }

            var messageConverter = MessageConverter;

            if (messageConverter != null)
            {
                messageListener.MessageConverter = messageConverter;
            }

            if (ServiceResolver != null)
            {
                messageListener.SetServiceResolver(ServiceResolver);
            }

            return(messageListener);
        }
Esempio n. 2
0
        private void SetupMessageListener(IMessageListenerContainer container)
        {
            var messageListener = CreateMessageListener(container);

            if (messageListener == null)
            {
                throw new InvalidOperationException("Endpoint [" + this + "] must provide a non null message listener");
            }

            container.SetupMessageListener(messageListener);
        }
Esempio n. 3
0
        public void SetupListenerContainer(IMessageListenerContainer listenerContainer)
        {
            var container = (AbstractMessageListenerContainer)listenerContainer;

            var queuesEmpty     = Queues.Count == 0;
            var queueNamesEmpty = QueueNames.Count == 0;

            if (!queuesEmpty && !queueNamesEmpty)
            {
                throw new InvalidOperationException("Queues or queue names must be provided but not both for " + this);
            }

            if (queuesEmpty)
            {
                var names = QueueNames;
                container.SetQueueNames(names.ToArray());
            }
            else
            {
                var instances = Queues;
                container.SetQueues(instances.ToArray());
            }

            container.Exclusive = Exclusive;
            if (Priority.HasValue)
            {
                var args = new Dictionary <string, object>();
                args.Add("x-priority", Priority.Value);
                container.ConsumerArguments = args;
            }

            if (Admin != null)
            {
                container.RabbitAdmin = Admin;
            }

            SetupMessageListener(listenerContainer);
        }
Esempio n. 4
0
 protected override IMessageListener CreateMessageListener(IMessageListenerContainer container)
 {
     return(MessageListener);
 }
Esempio n. 5
0
 protected abstract IMessageListener CreateMessageListener(IMessageListenerContainer container);
 internal void RemoveContainer(IMessageListenerContainer messageListenerContainer)
 {
     _containers.Remove(messageListenerContainer);
 }
 internal void AddContainer(IMessageListenerContainer messageListenerContainer)
 {
     _containers.Add(messageListenerContainer);
 }