Introduce TimeProvider in place of DateTimeHandler#344
Open
JanHyka wants to merge 2 commits into
Open
Conversation
~ Replace DateTimeHandler with .NET8 TimeProvider
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue #, if available:
#286
Description of changes:
Initial step allowing implementation of #286.
This pull request updates the AWS.Messaging library to replace the custom
DateTimeHandlerabstraction with the .NET 8TimeProviderfor handling time-related functionality. This change modernizes the codebase, improves testability, and removes now-unnecessary code. Several classes and their constructors have been updated to useTimeProvider, and related tests and dependency registrations have also been adjusted.Key changes include:
Migration to .NET 8 TimeProvider:
IDateTimeHandlerandDateTimeHandlerwith the built-inTimeProviderthroughout the codebase, including inEnvelopeSerializer,SingleTypeSqsPollerEnvelopeSerializer,BackoffHandler,DefaultMessageManager, andInFlightMetadata.Removal of Obsolete Code:
DateTimeHandlerandIDateTimeHandlerfiles and interfaces.TimeProvider.Systemand are marked as[Obsolete]- this is to reduce risk of unexpected behavior in case custom TimeProvider is used and propagation chain gets silently broken.Dependency Injection and Constructor Updates:
TimeProvider.Systemwhere required. Added new constructor overloads and marked old ones as obsolete to ease migration.Test Adjustments and Improvements:
TimeProviderabstraction, including usingFakeTimeProviderfor improved testability. Added theMicrosoft.Extensions.TimeProvider.TestingNuGet package to test projects.Changelog and Documentation:
DateTimeHandlerto .NET 8TimeProvider.By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.