Goal: using differently set up SSLContexts for same (shared) HttpClient instance, that should be used by some set of (application specific) conditions. Currently (and even before 4.3, this stands for 4.2 and older clients too), only one ConnectionSocketFactory (or it's older equivalent) might be used for connection manager. In some applications this might be not enough, as while sharing httpClient is desired, it's not possible to have an instance being set up using multiple SSLContexts (contexts being set up in vastly different ways, like one allowing self signed certs. one using it's own controlled trust material, and one using default JVM trust material for example).
The new PoolingHttpClientConnectionManager (introduced in 4.3) should be improved to allow this kind of "selection" without mangling the schema of the accessed URIs (like using "https-weak://host/foo" and registering proper ConnectionSocketFactory for given schema).
Before, this was possible as HttpClientConnectionOperator was exposed, but not anymore in 4.3.x.
Frankly, the HttpClientConnectionOperator solution seemed "cleaner" to me, but a possible solution might be drafted in PR below: