public async Task SetUp() { receivedMessages = new BlockingCollection <IncomingMessage>(); var connectionString = Environment.GetEnvironmentVariable("RabbitMQTransport_ConnectionString") ?? "host=localhost"; var useTls = connectionString.StartsWith("https", StringComparison.InvariantCultureIgnoreCase) || connectionString.StartsWith("amqps", StringComparison.InvariantCultureIgnoreCase); var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Classic), connectionString); var connectionConfig = transport.ConnectionConfiguration; connectionFactory = new ConnectionFactory(ReceiverQueue, connectionConfig, null, true, false, transport.HeartbeatInterval, transport.NetworkRecoveryInterval, null); infra = await transport.Initialize(new HostSettings(ReceiverQueue, ReceiverQueue, new StartupDiagnosticEntries(), (_, __, ___) => { }, true), new[] { new ReceiveSettings(ReceiverQueue, new QueueAddress(ReceiverQueue), true, true, "error") }, AdditionalReceiverQueues.Concat(new[] { ErrorQueue }).ToArray()); messageDispatcher = infra.Dispatcher; messagePump = infra.Receivers[ReceiverQueue]; subscriptionManager = messagePump.Subscriptions; await messagePump.Initialize(new PushRuntimeSettings(MaximumConcurrency), (messageContext, cancellationToken) => { receivedMessages.Add(new IncomingMessage(messageContext.NativeMessageId, messageContext.Headers, messageContext.Body), cancellationToken); return(Task.CompletedTask); }, (_, __) => Task.FromResult(ErrorHandleResult.Handled) ); await messagePump.StartReceive(); }
public TransportDefinition CreateTransportDefinition() { var connectionString = Environment.GetEnvironmentVariable("RabbitMQTransport_ConnectionString") ?? "host=localhost"; var transport = new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Classic), connectionString); return(transport); }
public Task Configure(string endpointName, EndpointConfiguration configuration, RunSettings settings, PublisherMetadata publisherMetadata) { transport = new TestRabbitMQTransport(RoutingTopology.Conventional(queueType, type => type.FullName), ConnectionHelper.ConnectionString); configuration.UseTransport(transport); return(Task.CompletedTask); }
void PublishMessage(TransportMessage message, PublishOptions publishOptions, dynamic channel) { var eventType = publishOptions.EventType; var properties = channel.CreateBasicProperties(); KafkaTransportMessageExtensions.FillKafkaProperties(message, publishOptions, properties); RoutingTopology.Publish(channel, eventType, message, properties); }
public void CreateQueueIfNecessary(Address address, string account) { using (var connection = ConnectionManager.GetAdministrationConnection()) using (var channel = connection.CreateModel()) { channel.QueueDeclare(address.Queue, Configure.DurableMessagesEnabled(), false, false, null); RoutingTopology.Initialize(channel, address.Queue); } }
void PublishMessage(TransportMessage message, PublishOptions publishOptions, IModel channel) { var eventType = publishOptions.EventType; var properties = channel.CreateBasicProperties(); RabbitMqTransportMessageExtensions.FillRabbitMqProperties(message, publishOptions, properties); RoutingTopology.Publish(channel, eventType, message, properties); }
RabbitMQTransport CreateTransportDefinition(string connectionString) { return(new RabbitMQTransport(RoutingTopology.Conventional(QueueType.Classic), connectionString)); }
public TestRabbitMQTransport(RoutingTopology routingTopology, string connectionString) : base(routingTopology, connectionString) { }