Exemplo n.º 1
0
        public void Build(IHost host)
        {
            var context = CreateActiveMqReceiveEndpointContext();

            _sessionConfigurator.UseFilter(new ConfigureTopologyFilter <ReceiveSettings>(_settings, context.BrokerTopology));

            if (_hostConfiguration.DeployTopologyOnly)
            {
                _sessionConfigurator.UseFilter(new TransportReadyFilter <SessionContext>(context));
            }
            else
            {
                _sessionConfigurator.UseFilter(new ActiveMqConsumerFilter(context));
            }

            IPipe <SessionContext> sessionPipe = _sessionConfigurator.Build();

            var transport = new ReceiveTransport <SessionContext>(_hostConfiguration, context,
                                                                  () => context.SessionContextSupervisor, sessionPipe);

            var receiveEndpoint = new ReceiveEndpoint(transport, context);

            var queueName = _settings.EntityName ?? NewId.Next().ToString(FormatUtil.Formatter);

            host.AddReceiveEndpoint(queueName, receiveEndpoint);

            ReceiveEndpoint = receiveEndpoint;
        }
Exemplo n.º 2
0
        public void Build(IHost host)
        {
            var context = CreateSqsReceiveEndpointContext();

            _clientConfigurator.UseFilter(new ConfigureTopologyFilter <ReceiveSettings>(_settings, context.BrokerTopology));

            if (_hostConfiguration.DeployTopologyOnly)
            {
                _clientConfigurator.UseFilter(new TransportReadyFilter <ClientContext>(context));
            }
            else
            {
                if (_settings.PurgeOnStartup)
                {
                    _clientConfigurator.UseFilter(new PurgeOnStartupFilter(_settings.EntityName));
                }

                _clientConfigurator.UseFilter(new AmazonSqsConsumerFilter(context));
            }

            IPipe <ClientContext> clientPipe = _clientConfigurator.Build();

            var transport = new ReceiveTransport <ClientContext>(_hostConfiguration, context,
                                                                 () => context.ClientContextSupervisor, clientPipe);

            var receiveEndpoint = new ReceiveEndpoint(transport, context);

            var queueName = _settings.EntityName ?? NewId.Next().ToString(FormatUtil.Formatter);

            host.AddReceiveEndpoint(queueName, receiveEndpoint);

            ReceiveEndpoint = receiveEndpoint;
        }
        public void Build(IHost host)
        {
            var context = CreateRabbitMqReceiveEndpointContext();

            _modelConfigurator.UseFilter(new ConfigureTopologyFilter <ReceiveSettings>(_settings, context.BrokerTopology));

            if (_hostConfiguration.DeployTopologyOnly)
            {
                _modelConfigurator.UseFilter(new TransportReadyFilter <ModelContext>(context));
            }
            else
            {
                if (_settings.PurgeOnStartup)
                {
                    _modelConfigurator.UseFilter(new PurgeOnStartupFilter(_settings.QueueName));
                }

                _modelConfigurator.UseFilter(new PrefetchCountFilter(_managementPipe, _settings.PrefetchCount));

                _modelConfigurator.UseFilter(new RabbitMqConsumerFilter(context));
            }

            IPipe <ModelContext> modelPipe = _modelConfigurator.Build();

            var transport = new ReceiveTransport <ModelContext>(_hostConfiguration, context, () => context.ModelContextSupervisor, modelPipe);

            var receiveEndpoint = new ReceiveEndpoint(transport, context);

            var queueName = _settings.QueueName ?? NewId.Next().ToString(FormatUtil.Formatter);

            host.AddReceiveEndpoint(queueName, receiveEndpoint);

            ReceiveEndpoint = receiveEndpoint;
        }
Exemplo n.º 4
0
        protected void ApplyReceiveEndpoint(IReceiveEndpointBuilder builder, IReceivePipe receivePipe, params IFilter <NamespaceContext>[] filters)
        {
            _sendEndpointProvider    = CreateSendEndpointProvider(builder);
            _publishEndpointProvider = CreatePublishEndpointProvider(builder);

            IPipeSpecification <NamespaceContext>[] specifications = filters
                                                                     .Concat(Enumerable.Repeat(_settings.RequiresSession
                    ? (IFilter <NamespaceContext>) new MessageSessionReceiverFilter(receivePipe, _sendEndpointProvider, _publishEndpointProvider)
                    : new MessageReceiverFilter(receivePipe, _sendEndpointProvider, _publishEndpointProvider), 1))
                                                                     .Select(x => (IPipeSpecification <NamespaceContext>) new FilterPipeSpecification <NamespaceContext>(x))
                                                                     .ToArray();

            var transport = new ReceiveTransport(Host, _settings, specifications);

            var serviceBusHost = Host as ServiceBusHost;

            if (serviceBusHost == null)
            {
                throw new ConfigurationException("Must be a ServiceBusHost");
            }

            serviceBusHost.ReceiveEndpoints.Add(_settings.Path, new ReceiveEndpoint(transport, receivePipe));
        }