Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove synchronous API #1473

Merged
merged 1 commit into from
Jan 24, 2024
Merged

Remove synchronous API #1473

merged 1 commit into from
Jan 24, 2024

Conversation

lukebakken
Copy link
Contributor

@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
@lukebakken lukebakken merged commit 52add14 into main Jan 24, 2024
11 checks passed
@lukebakken lukebakken deleted the rabbitmq-dotnet-client-1472 branch January 24, 2024 22:20
@lukebakken lukebakken mentioned this pull request Apr 17, 2024
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.

1 participant