[
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]