Lets consider one of the latest (4.2.x) releases of HttpComponents.
Please explain how generally an instance of HttpClient
is related to instance of HttpConnection
(such as ManagedClientConnectionImpl
) and also ClientConnectionManager
.
Who knows about who ?
I will refer to them below ommiting [Http] prefix. So, HttpClient
-> Client
I understand that Client
keeps reference to ClientConnectionManager
.
Does that mean that Client
also has reference to underlying Connection
object ?
Does ConnectionManager
knows about all Clients
linked to it ?
How HttpGet
, which is used by HttpClient to perform execute
, knows about stream, exposed thru response's Entity
? (which it does, because we can close the stream by calling .abort()
on HttpGet
object.) Is HttpGet
instance also linked to Connection
object ?
I am confused and would appreciate detailed overview answering the questions above. To give examples, you could use any specific implementations, such as DefaultHttpClient
, ManagedClientConnectionImpl
, BasicClientConnectionManager
, if it would make understanding easier.