Example #1
0
        IDeadLetterTransport CreateDeadLetterTransport(TransportSetHeaderAdapter <MessageAttributeValue> headerAdapter)
        {
            var deadLetterSettings = _configuration.Topology.Send.GetDeadLetterSettings(_configuration.Settings);
            var filter             = new ConfigureTopologyFilter <DeadLetterSettings>(deadLetterSettings, deadLetterSettings.GetBrokerTopology());

            return(new SqsDeadLetterTransport(deadLetterSettings.EntityName, headerAdapter, filter));
        }
Example #2
0
        IErrorTransport CreateErrorTransport(TransportSetHeaderAdapter <MessageAttributeValue> headerAdapter)
        {
            var errorSettings = _configuration.Topology.Send.GetErrorSettings(_configuration.Settings);
            var filter        = new ConfigureTopologyFilter <ErrorSettings>(errorSettings, errorSettings.GetBrokerTopology());

            return(new SqsErrorTransport(errorSettings.EntityName, headerAdapter, filter));
        }
        public HostSqsSendTransportContext(IClientContextSupervisor clientContextSupervisor, IPipe <ClientContext> configureTopologyPipe, string entityName,
                                           ILogContext logContext, AllowTransportHeader allowTransportHeader)
            : base(logContext)
        {
            ClientContextSupervisor = clientContextSupervisor;
            ConfigureTopologyPipe   = configureTopologyPipe;
            EntityName = entityName;

            SqsSetHeaderAdapter = new TransportSetHeaderAdapter <MessageAttributeValue>(new SqsHeaderValueConverter(allowTransportHeader),
                                                                                        TransportHeaderOptions.IncludeFaultMessage);
            SnsSetHeaderAdapter = new TransportSetHeaderAdapter <Amazon.SimpleNotificationService.Model.MessageAttributeValue>(
                new SnsHeaderValueConverter(allowTransportHeader), TransportHeaderOptions.IncludeFaultMessage);
        }
Example #4
0
            public SendTransportContext(IAmazonSqsHostConfiguration hostConfiguration, IClientContextSupervisor clientContextSupervisor,
                                        IPipe <ClientContext> configureTopologyPipe, string entityName)
                : base(hostConfiguration)
            {
                _hostConfiguration      = hostConfiguration;
                ClientContextSupervisor = clientContextSupervisor;

                ConfigureTopologyPipe = configureTopologyPipe;
                EntityName            = entityName;

                SqsSetHeaderAdapter = new TransportSetHeaderAdapter <MessageAttributeValue>(
                    new SqsHeaderValueConverter(hostConfiguration.Settings.AllowTransportHeader), TransportHeaderOptions.IncludeFaultMessage);
                SnsSetHeaderAdapter = new TransportSetHeaderAdapter <Amazon.SimpleNotificationService.Model.MessageAttributeValue>(
                    new SnsHeaderValueConverter(hostConfiguration.Settings.AllowTransportHeader), TransportHeaderOptions.IncludeFaultMessage);
            }
Example #5
0
        public SqsReceiveEndpointContext CreateReceiveEndpointContext()
        {
            var brokerTopology = BuildTopology(_configuration.Settings);

            var headerAdapter = new TransportSetHeaderAdapter <MessageAttributeValue>(new SqsHeaderValueConverter(_hostSettings.AllowTransportHeader),
                                                                                      TransportHeaderOptions.IncludeFaultMessage);

            var deadLetterTransport = CreateDeadLetterTransport(headerAdapter);

            var errorTransport = CreateErrorTransport(headerAdapter);

            var receiveEndpointContext = new SqsQueueReceiveEndpointContext(_host, _configuration, brokerTopology);

            receiveEndpointContext.GetOrAddPayload(() => deadLetterTransport);
            receiveEndpointContext.GetOrAddPayload(() => errorTransport);

            return(receiveEndpointContext);
        }
Example #6
0
 public SqsDeadLetterTransport(string destination, TransportSetHeaderAdapter <MessageAttributeValue> headerAdapter, IFilter <ClientContext> topologyFilter)
     : base(destination, topologyFilter)
 {
     _headerAdapter = headerAdapter;
 }