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);
        }