Skip to content

Conversation

@lukebakken
Copy link
Collaborator

@lukebakken lukebakken commented Jan 13, 2024

Part of the fix for #1472

@lukebakken lukebakken added this to the 7.0.0 milestone Jan 13, 2024
@lukebakken lukebakken self-assigned this Jan 13, 2024
@lukebakken lukebakken force-pushed the rabbitmq-dotnet-client-1472 branch 2 times, most recently from 12791b0 to 0cab550 Compare January 24, 2024 18:32
@lukebakken lukebakken marked this pull request as ready for review January 24, 2024 18:33
Part of the fix for #1472

* Remove synchronous API methods
* Update all usages of `CreateConnection` to use `CreateConnectionAsync`
* Ensure that all connections and channels are closed prior to `Dispose`
* Use lowest feasible `LangVersion` for projects
* Add note about nullable reference types in `RabbitMQ.Client.csproj`
* Convert `ManualResetEventSlim` and associated classes to `TaskCompletionSource<bool>` or `SemaphoreSlim`
* Only use `ValueTask` for operations that need the performance benefit
* Add async passive declaration convenience methods to the async API
* Fix missing `CloseAsync` statements prior to disposing `IConnection`
  and `IChannel` instances
* Fix bug where `QueueBindAsync` did not record the binding in an `AutorecoveringChannel`
* Added `ProcessUtil` to run command line executables via `async`
* Make `TopologyRecoveryExceptionHandler` async
* Ensure test classes call `base.DisposeAsync()` appropriately
* Add `RABBITMQ_LONG_RUNNING_TESTS=true` to `build.ps1`
* Remove `Close` and `Abort` from `IConnection` and `IConnectionExtensions`
* Remove `Close` and `Abort` from `IChannel` and `IChannelExtensions`
* Remove use of `RecoveryChannelFactory`
* Remove `Close` from `AutorecoveringConnection` and `Connection`
* Ensure `TestConnectionRecoveryWithoutSetup` tests close and dispose of channels correctly
* Remove `ConfirmSelect`
* Remove `ExchangeBind` and `ExchangeBindNoWait`
* Add `noWait` to `ExchangeBindAsync` and `ExchangeDeclareAsync`
* Remove `ExchangeDeclarePassive`
* Fix stack overflow in `ExchangeBindAsync`
* Remove `ExchangeDelete` and `ExchangeDeleteNoWait`
* Remove `BasicGet`
* Remove `BasicNack`
* Change `BasicNackAsync` to return `ValueTask`
* Remove `BasicCancel` and `BasicCancelNoWait`
* Remove `BasicPublish`
* Remove `BasicQos`
* Remove `BasicReject`
* Remove `ExchangeUnbind` and `ExchangeUnbindNoWait`
* Remove `QueueBind`, `QueueBindNoWait`, QueueDeclare`, `QueueDeclareNoWait`, and `QueueDeclarePassive`
* Remove `QueueDelete` and `QueueDeleteNoWait`
* Make `noWait` the last param in the arg list. Default is `false`
* Remove `BasicAck`
* Modify `IBasicConsumer` to make `HandleBasicDeliver` an async method
* Move `passive` to the end of the argument list, just before `noWait`
* Remove `QueuePurge`
* Remove `QueueUnbind`
* Remove `TxSelect`, `TxCommit` and `TxRollback`
* Remove `WaitForConfirms` and `WaitForConfirmsOrDie`
* Remove `BasicConsume`
* Delete code for sync API
* Make `UpdateSecret` async
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants