[ 
https://issues.apache.org/jira/browse/HTTPCLIENT-915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835715#action_12835715
 ] 

dave irving commented on HTTPCLIENT-915:
----------------------------------------

I completely agree with you, Oleg. 

This feature certainly would have scope for misunderstanding / misuse - and I'd 
guess javadocs should point out what it's there for, and what it's not. 

My actual use case here is Connection specific cookies (Appears to have been 
needed by other users too).

If there are concerns that providing a connection context interface could 
possibly lead to confusion (e.g. clients not making the distinction between it 
and HttpContext, or not realising that 99% of the time they shouldn't be 
attaching state to connections), I'd be equally happy with any other solution 
that allows this use case to be met without resorting to the currently required 
reflection hacks:

Any of:

- Provide a a configuration parameter explicity for this case 
"CONNECTION_ISOLATED_COOKIES" or somesuch
- If a user implements a custom connection / operator / manager etc, provide 
them with some way to actually get hold of their custom connection 
implementation during request execution without requiring the use of reflection

Overall though, I tend to favour the connection attributes approach:

- Obviates the need to write custom connection / operator / manager classes 
just to provide connection state (which is needed in some scenarios, e.g, this 
use case)
- Is less dangerous than exposing unwrapped connections during request 
execution (which could expose circumvention of pooling etc)

> 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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to