DefaultHttpClientConnectionOperator is marked @Internal, as is the associated connection manager constructor that takes an instance of it. I'll take a look at your other suggestions.
On Fri, Apr 11, 2025 at 4:34 AM Oleg Kalnichevski <ol...@apache.org> wrote: > > On Thu, 2025-04-10 at 19:02 -0700, Ryan Schmitt wrote: > > 2. Connection count metrics. This is a trivial CSF implementation > > that > > wraps a delegate and emits a metric whenever connectSocket() is > > called. > > 3. Unix domain socket support. This is a CSF implementation that > > calls > > JUnixSocket to create UDS. > > > > I see how (1) can be migrated to the new TlsSocketStrategy API > > (although it lacks a connectTimeout parameter, which is a problem), > > so > > I'm not worried about that, but I'm more concerned about (2) and (3). > > In httpclient 5.4, if I want to take control of Socket creation, it > > looks like I have to use internal APIs like DetachedSocketFactory and > > HttpClientConnectionOperator. My questions are: > > > > - Does the synchronous client support TLS handshake timeouts in 5.4? > > (My integration tests indicate that the default behavior is the same > > as in 5.2.) > > Hi Ryan > > It does. See Tlsconfig#handshakeTimeout > > https://github.com/apache/httpcomponents-client/blob/5.4.x/httpclient5/src/main/java/org/apache/hc/client5/http/ssl/AbstractClientTlsStrategy.java#L240 > > > > - Have I overlooked any public APIs that could accommodate use cases > > (2) > > Default connection operators now have a number of callback methods that > could be used as an injection point for custom metrics collectors. > > > > https://github.com/apache/httpcomponents-client/blob/5.4.x/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpClientConnectionOperator.java#L295 > > In your case however a simple HttpClientConnectionManager decorator > should be suffice, I believe. > > > > and (3) above? > > - Could we expose DetachedSocketFactory (or something similar) as a > > stable interface for client customization? If so, could such a change > > be released as part of 5.4.4, or would it have to go into 5.5? > > > > Of course we can. These days we tend to introduce low level interfaces > as internal first, and then make them public upon request. > > We can expedite the 5.5 GA release if needed, but we can also release > whatever changes you may need in 5.4.x as internal and make them public > in 5.5 at a later point. > > Oleg > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org > For additional commands, e-mail: dev-h...@hc.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org For additional commands, e-mail: dev-h...@hc.apache.org