public NmsMessageDrivenEndpoint(AbstractMessageListenerContainer listenerContainer, ChannelPublishingJmsMessageListener listener)
 {
     AssertUtils.ArgumentNotNull(listenerContainer, "listener container must not be null");
     AssertUtils.ArgumentNotNull(listener, "listener must not be null");
     listenerContainer.MessageListener = listener;
     this.listenerContainer            = listenerContainer;
     this.listener = listener;
 }
        public RabbitInboundChannelAdapter(IApplicationContext context, AbstractMessageListenerContainer listenerContainer, ILogger logger = null)
            : base(context, logger)
        {
            if (listenerContainer == null)
            {
                throw new ArgumentNullException(nameof(listenerContainer));
            }

            if (listenerContainer.MessageListener != null)
            {
                throw new ArgumentException("The listenerContainer provided to a RabbitMQ inbound Channel Adapter " +
                                            "must not have a MessageListener configured since the adapter " +
                                            "configures its own listener implementation.");
            }

            _logger = logger;
            listenerContainer.IsAutoStartup = true;
            MessageListenerContainer        = listenerContainer;
            ErrorMessageStrategy            = new RabbitMessageHeaderErrorMessageStrategy();
            var messageListener = new Listener(this, logger);

            MessageListenerContainer.MessageListener = messageListener;
            MessageListenerContainer.Initialize();
        }