Feature/wal 280 - Fix double retrieval of the offer request #1322
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.



This pull request introduces a credential offer caching mechanism to optimize the credential issuance flow and reduce redundant network requests. The main changes include the addition of a thread-safe cache for credential offers, integration of this cache into the credential offer resolution logic, and updates to the exchange controller to utilize the cache.
Credential Offer Caching:
CredentialOfferCachesingleton object that uses aConcurrentHashMapto store and retrieveCredentialOfferinstances by key, providing thread-safe caching functionality.Credential Offer Resolution Optimization:
IssuanceServiceto first check the cache for a resolved offer, then attempt to parse a JSON offer, and finally fall back to the legacy URI resolution if needed. This avoids unnecessary network requests and improves performance.Controller Integration:
ExchangeControllerto cache the resolved credential offer against the original request string immediately after parsing, ensuring subsequent accept operations can retrieve the offer from the cache.CredentialOfferCachein theExchangeControllerfile to support caching functionality.Minor Cleanup:
withLoggingContext) from theExchangeControllerfor code cleanliness.