Open
Conversation
…ce (if one exists) #13
|
Adding the builder as a field in the object built doesn't smell good. I think a better solution is to add getXxx() methods in RetryerBuilder (suggested) and/or Retryer (not suggested. "if you expect me to do a final touch on the retry logic, you should pass in a RetryerBuilder instance rather than a Retryer instance") so that whenever needed those XxxStrategy objects can be get and used to build another Retryer. This solution is more flexible in terms of supporting creative use cases and it has no impact on the core logic at all. |
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.
This returns the
RetryerBuilderused to build theRetryerinstance, if it exists, as described in #13. In adding this functionality, I noticed a few things that I believe make this feature less desirable.The builder itself doesn't currently expose methods for inspecting the existing configured strategies so we'd need to add those which increases the public API footprint. Resetting the strategies upon inspection and then mutation (for the returned original builder) is currently not possible because of the
checkStateguards on most of the setters. We'd need to relax those checks to complete the use case described in #13 (or maybe expose another mechanism for safely returning/cloning and mutating in a single step?).I am open to exploring other means of completing #13 than what I've created here or further expanding on this if there is still interest. In the mean time, I'm adding this as a PR such that I can continue moving a 2.x release forward without worrying about trying to get this feature completed before that ships.