All notable changes to this library will be documented in this file.
BasicDeliverEventArgs
extensions for parsing messages.
- Breaking!
IMessageHandler
,IAsyncMessageHandler
,INonCyclicMessageHandler
andIAsyncNonCyclicMessageHandler
get messages inHandle
methods asBasicDeliverEventArgs
instead of string values. - Breaking!
BatchMessageHandler
has been removed,BaseBatchMessageHandler
is now one and only base class for handling messages in batches.HandleMessages
method ofBaseBatchMessageHandler
gets a collection of messages asBasicDeliverEventArgs
instead of bytes.
- Options that can allow configuring behaviour of re-queueing messages. New properties
RequeueTimeoutMilliseconds
andRequeueAttempts
added toRabbitMqExchangeOptions
. MessageHandlingPeriod
property for batch message handlers. That feature allows you to execute even unfilled batches each time period expires.
- Breaking! Now all
Send
orSendAsync
methods ofIProducingService
(andIQueueService
) with delay parameter use milliseconds instead of seconds.
- Fixed batch message handlers DI registering - the case when handlers are in use without RabbitMqClient.
- Ssl option while opening a RabbitMq connection with
TcpEndpoints
. - Example project of a basic ssl usage.
StopConsuming
method forIConsumingService
.- Retrying mechanism while creating an initial RabbitMq connection.
- Integration and unit testing.
BaseBatchMessageHandler
andBatchMessageHandler
protected methods and properties are not public (for testing purposes).RabbitMqConnectionFactory
has been changed from an extension class to the service.- Updated Microsoft libraries to the newer version (3.1.4).
BaseBatchMessageHandler
andBatchMessageHandler
for handling messages in batches via prefetch count feature.- Example of basic usages of batch message handlers.
- Updated RabbitMQ.Client to the newest version 6.0.0. Made some changes according to the breaking changes that come with the newest version of RabbitMQ.Client.
- Moved message handlers to the different namespace
RabbitMQ.Client.Core.DependencyInjection.MessageHandlers
. - Moved internal DI extensions to the different namespace
RabbitMQ.Client.Core.DependencyInjection.InternalExtensions
.
- Fixed message acknowledgement when both
IConsumingService
andIProducingService
in use.
- Updated Microsoft libraries to the newer version (3.1.3).
- Made a separation of
IQueueService
, which now implements two additional interfacesIConsumingService
andIProducingService
. - Added new DI extension methods for registering independent
IConsumingService
andIProducingService
services.
- Changed to logic of connecting to the RabbitMQ server. For now
IConsumingService
andIProducingService
have their own connections, so if you use both of them there will be two connections - one for receiving messages and another one for sending.
- Ordering for message handlers.
- Separated the DI extensions file for message handlers so there are four of them now (each file covers each message handler type).
- Changed target platform to the .netstandard2.1
The latest version that supports backward compatibility for .Net Core 2.2
- Backwards compability for .Net Core 2.2.
- Pattern matching (
WildcardExtensions
) so message handlers can now - Extension methods which allow user to set the exact exchange from which messages will be processed by message handlers.
MessageHandlingService
which is responsible for message processing.WildcardExtensions
andMessageHandlingService
unit tests.AddRabbitMqClientTransient
extension methods.
- Backwards compability for .Net Core 2.2.
- Possibility to connect multiple RabbitMQ hosts and set connection names.
- Version of the Net Core platform has been updated to the v3.1.
- Backwards compability for .Net Core 2.2.
- !Breaking change Boolean parameter
isConsuming
forAddExchange
method. - Extension methods for adding different exchanges (
AddProductionExchange
andAddConsumptionExchange
) that wrapsisConsuming
parameter.
- Way of binding exchanges and queues (not
isConsuming
value is being used).
- Readme file.
- Updated libraries to the newer versions (Microsoft libraries, RabbitMQ.Client and Newtonsoft.Json).
- Version of the Net Core platform has been updated to the v3.0.
- Possibility to configure RabbitMQ connection manually.
- Some code redundancy in example projects.
- First "stable" library release.
- Example projects that show how to configure RabbitMQ using library for message production and message consumption.