Task <ISendTransport> CreateSendTransport(ISessionContextSupervisor sessionContextSupervisor, IPipe <SessionContext> pipe, string entityName, DestinationType destinationType) { var sendTransportContext = new HostActiveMqSendTransportContext(sessionContextSupervisor, pipe, entityName, destinationType, SendLogContext); var transport = new ActiveMqSendTransport(sendTransportContext); Add(transport); return(Task.FromResult <ISendTransport>(transport)); }
Task <ISendTransport> CreateSendTransport(ISessionContextSupervisor sessionContextSupervisor, IPipe <SessionContext> pipe, string entityName, DestinationType destinationType) { var supervisor = new SessionContextSupervisor(sessionContextSupervisor); var sendTransportContext = new SendTransportContext(_hostConfiguration, supervisor, pipe, entityName, destinationType); var transport = new ActiveMqSendTransport(sendTransportContext); sessionContextSupervisor.AddSendAgent(transport); return(Task.FromResult <ISendTransport>(transport)); }
public Task <ISendTransport> GetPublishTransport <T>(Uri publishAddress) where T : class { IActiveMqMessagePublishTopology <T> publishTopology = _publishTopology.GetMessageTopology <T>(); var sendSettings = publishTopology.GetSendSettings(); IAgent <SessionContext> sessionAgent = GetSessionAgent(); var configureTopologyFilter = new ConfigureTopologyFilter <SendSettings>(sendSettings, publishTopology.GetBrokerTopology()); var sendTransport = new ActiveMqSendTransport(sessionAgent, configureTopologyFilter, sendSettings.EntityName, DestinationType.Topic); sendTransport.Add(sessionAgent); _host.Add(sendTransport); return(Task.FromResult <ISendTransport>(sendTransport)); }
ISendTransport GetSendTransport(Uri address) { if (!_busConfiguration.TryGetHost(address, out var hostConfiguration)) { throw new EndpointNotFoundException($"The host was not found for the specified address: {address}"); } var host = hostConfiguration.Host; var settings = host.Topology.SendTopology.GetSendSettings(address); IAgent <SessionContext> sessionAgent = GetSessionAgent(host); var configureTopologyFilter = new ConfigureTopologyFilter <SendSettings>(settings, settings.GetBrokerTopology()); var transport = new ActiveMqSendTransport(sessionAgent, configureTopologyFilter, settings.EntityName, DestinationType.Queue); transport.Add(sessionAgent); host.Add(transport); return(transport); }