mirror of
https://github.com/apache/httpcomponents-client.git
synced 2025-02-16 15:07:27 +00:00
Added option to set an IOSessionListener on async client builders
This commit is contained in:
parent
19626731c0
commit
157174543f
@ -102,6 +102,7 @@
|
||||
import org.apache.hc.core5.reactor.IOEventHandlerFactory;
|
||||
import org.apache.hc.core5.reactor.IOReactorConfig;
|
||||
import org.apache.hc.core5.reactor.IOSession;
|
||||
import org.apache.hc.core5.reactor.IOSessionListener;
|
||||
import org.apache.hc.core5.util.Args;
|
||||
import org.apache.hc.core5.util.TimeValue;
|
||||
import org.apache.hc.core5.util.VersionInfo;
|
||||
@ -171,6 +172,7 @@ private ExecInterceptorEntry(
|
||||
}
|
||||
|
||||
private IOReactorConfig ioReactorConfig;
|
||||
private IOSessionListener ioSessionListener;
|
||||
private H2Config h2Config;
|
||||
private CharCodingConfig charCodingConfig;
|
||||
private SchemePortResolver schemePortResolver;
|
||||
@ -239,6 +241,16 @@ public final H2AsyncClientBuilder setIOReactorConfig(final IOReactorConfig ioRea
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets {@link IOSessionListener} listener.
|
||||
*
|
||||
* @since 5.2
|
||||
*/
|
||||
public final H2AsyncClientBuilder setIOSessionListener(final IOSessionListener ioSessionListener) {
|
||||
this.ioSessionListener = ioSessionListener;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets {@link CharCodingConfig} configuration.
|
||||
*/
|
||||
@ -764,7 +776,7 @@ public CloseableHttpAsyncClient build() {
|
||||
threadFactory != null ? threadFactory : new DefaultThreadFactory("httpclient-dispatch", true),
|
||||
ioSessionDecorator != null ? ioSessionDecorator : LoggingIOSessionDecorator.INSTANCE,
|
||||
ioReactorExceptionCallback != null ? ioReactorExceptionCallback : LoggingExceptionCallback.INSTANCE,
|
||||
null,
|
||||
ioSessionListener,
|
||||
ioSession -> ioSession.enqueue(new ShutdownCommand(CloseMode.GRACEFUL), Command.Priority.IMMEDIATE));
|
||||
|
||||
if (execInterceptors != null) {
|
||||
|
@ -112,6 +112,7 @@
|
||||
import org.apache.hc.core5.reactor.IOEventHandlerFactory;
|
||||
import org.apache.hc.core5.reactor.IOReactorConfig;
|
||||
import org.apache.hc.core5.reactor.IOSession;
|
||||
import org.apache.hc.core5.reactor.IOSessionListener;
|
||||
import org.apache.hc.core5.util.Args;
|
||||
import org.apache.hc.core5.util.TimeValue;
|
||||
import org.apache.hc.core5.util.VersionInfo;
|
||||
@ -207,6 +208,7 @@ private ExecInterceptorEntry(
|
||||
private AsyncClientConnectionManager connManager;
|
||||
private boolean connManagerShared;
|
||||
private IOReactorConfig ioReactorConfig;
|
||||
private IOSessionListener ioSessionListener;
|
||||
private Callback<Exception> ioReactorExceptionCallback;
|
||||
private Http1Config h1Config;
|
||||
private H2Config h2Config;
|
||||
@ -319,6 +321,16 @@ public final HttpAsyncClientBuilder setIOReactorConfig(final IOReactorConfig ioR
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets {@link IOSessionListener} listener.
|
||||
*
|
||||
* @since 5.2
|
||||
*/
|
||||
public final HttpAsyncClientBuilder setIOSessionListener(final IOSessionListener ioSessionListener) {
|
||||
this.ioSessionListener = ioSessionListener;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the callback that will be invoked when the client's IOReactor encounters an uncaught exception.
|
||||
*
|
||||
@ -934,7 +946,7 @@ public CloseableHttpAsyncClient build() {
|
||||
threadFactory != null ? threadFactory : new DefaultThreadFactory("httpclient-dispatch", true),
|
||||
ioSessionDecorator != null ? ioSessionDecorator : LoggingIOSessionDecorator.INSTANCE,
|
||||
ioReactorExceptionCallback != null ? ioReactorExceptionCallback : LoggingExceptionCallback.INSTANCE,
|
||||
null,
|
||||
ioSessionListener,
|
||||
ioSession -> ioSession.enqueue(new ShutdownCommand(CloseMode.GRACEFUL), Command.Priority.IMMEDIATE));
|
||||
|
||||
if (execInterceptors != null) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user