Revert new abstract method (breaking change) #215
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
The focus of these changes is to revert the breaking change in Singleton where a new abstract
OnCreateAsync
overload was added. Doing so required trade-offs which were not ideal.To ensure that callers build against older versions of the AMQP library could
continue to function, the new overload
OnCreateAsync(TimeSpan, CancellationToken)
is now forwarding to the legacy overloadOnCreateAsync(TimeSpan)
and will silently ignore the cancellation token.Because we cannot be sure which
OnCreateAsync
overload derived classes are calling, both have been markedvirtual
rather than anyabstract
; this required having the legacy overload throw when not implemented, since that is the target of delegation.The defined derived classes
FaultTolerantAmqpObject
andAmqpCbsLink
have been adjusted to implement both overrides, with the legacy overload calling into the new overload withCancellationToken.None
specified. This is intended to ensure that callers bound to older versions continue to work.