You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "dave irving (JIRA)" <ji...@apache.org> on 2010/02/19 12:05:28 UTC
[jira] Issue Comment Edited: (HTTPCLIENT-915) Provide a clean
mechanism to attatch user define attributes to connections
[ https://issues.apache.org/jira/browse/HTTPCLIENT-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835696#action_12835696 ]
dave irving edited comment on HTTPCLIENT-915 at 2/19/10 11:05 AM:
------------------------------------------------------------------
> I think a simple Object is enough. If you need name/value pairs you can
> store a Map there.
I disagree... Unfortunately this introduces coupling between disparate clients.
What happens if I write a "CookiePerConnectionInterceptor" which wants to put a CookieStore in the connection.
Some other interceptor (written by someone else / another project etc) decides that It would like to put a Map of name values pairs in instead.
Oops - now the two can't work together.
The motivation for using an attribute based approach is that it's easy to scope your usage of it.
was (Author: irvingd):
> I think a simple Object is enough. If you need name/value pairs you can
> store a Map there. Access to the object should be synchronized to or use a volatile field.
I disagree... Unfortunately this introduces coupling between disparate clients.
What happens if I write a "CookiePerConnectionInterceptor" which wants to put a CookieStore in the connection.
Some other interceptor (written by someone else / another project etc) decides that It would like to put a Map of name values pairs in instead.
Oops - now the two can't work together.
The motivation for using an attribute based approach is that it's easy to scope your usage of it.
> Provide a clean mechanism to attatch user define attributes to connections
> --------------------------------------------------------------------------
>
> Key: HTTPCLIENT-915
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-915
> Project: HttpComponents HttpClient
> Issue Type: New Feature
> Components: HttpConn
> Affects Versions: 4.0.1
> Reporter: dave irving
> Priority: Minor
> Fix For: 4.1 Alpha2
>
>
> It would be nice to have a way to attach user defined attributes to a connection.
> Ideally it'd be nice if such support could be added to HttpClientConnection, but understandably this may not be possible due to back-compatibility issues.
> So, we could have something like HttpConnectionContext perhaps (or similar) with:
> HttpConnectionContext#setAttribute(String name, Object value)
> Object HttpConnectionContext#getAttribute(String name)
> This would be made available in the HttpContext of a request (like the connection is today):
> HttpConnectionContext connectionContext = (HttpConnectionContext) httpContext.getAttribute(ExecutionContext.HTTP_CONNECTION_CONTEXT);
> This would make a few things much cleaner to implement than they are today: The most obvious being my current use case of wanting connection isolated cookies.
> Currently to achieve this goal we need to provide custom client connection + connection operator + connection manager implementations. Then there is no clean way to currently obtain the actual connection instance created by a custom operator in the HttpContext: As it's wrapped by the connection pool and #getWrappedConnection is protected - so we need to resort to reflection in interceptors.
> Providing a clean mechanism for attaching user defined attributes to a connection instance as described above would make such implementations far far simpler.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org