[ https://issues.apache.org/jira/browse/HTTPCLIENT-1099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13047191#comment-13047191 ]
Jon Moore commented on HTTPCLIENT-1099: --------------------------------------- My general take on this is that we shouldn't work on opening up the API until someone has a use case that requires it (in Bart's case, he exposed a bug, so that doesn't count). I believe that people will have those use cases and that we should use those to drive increasing the API surface, but that we should also defer as long as possible--this increases the freedom we have to restructure the codebase in the meantime. Given that HC is a pretty active project and we can get releases out relatively quickly, I'm not terribly worried about having to anticipate future use. So, if you have a use case where the current implementation doesn't do what you want and there isn't an easy way around it, please post it here! > Overriding Caching Policies > --------------------------- > > Key: HTTPCLIENT-1099 > URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1099 > Project: HttpComponents HttpClient > Issue Type: Improvement > Components: Cache > Affects Versions: 4.1.1 > Reporter: Bart Robeyns > Assignee: Jon Moore > Priority: Minor > Labels: cache, policy > Attachments: OpenPolicies.patch > > > It is not possible to alter the behaviour of the CachingHttpClient because > the policies defining the behaviour are private and tied directly to specific > implementations in the CachingHttpClients constructor. Furthermore, these > policies are package private, discouraging reuse and/or extensions. > Making this possible is easy enough (provide some policy-setters or > -constructor-args in CachingHttpClient and make the policy-classes public); > the attached patch allows custom Policies, extending the default ones to be > set on the CacheConfig class. > The specific case that led to this question: > A back-end application only sets its Content-Length header for responses > below 8K. This response does get stored in the cache, but when retrieving it > from the cache, CacheValidityPolicy.contentLengthHeaderMatchesActualLength > checks the Content-Length header with the stored size (to verify whether the > cached content is complete). This check fails, causing the cache entry to be > deemed unusable. If we were able to provide our own subclassed > CacheValidityPolicy, it would be easy to skip the check if the header is > missing and thus accomodate this specific back-end quirk. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org