You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2022/02/21 11:11:28 UTC
[httpcomponents-client] 01/06: Update HttpAsyncClientBuilder.java
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
commit 1b5456ca26ea0add4bc20c35de95825f2c73a663
Author: cda007 <35...@users.noreply.github.com>
AuthorDate: Fri Feb 18 11:32:30 2022 +0100
Update HttpAsyncClientBuilder.java
Add the option to set an IOSessionListener on HttpAsyncClientBuilder
---
.../hc/client5/http/impl/async/HttpAsyncClientBuilder.java | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
index 20a1a37..5d76499 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/async/HttpAsyncClientBuilder.java
@@ -112,6 +112,7 @@ import org.apache.hc.core5.reactor.DefaultConnectingIOReactor;
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 @@ public class HttpAsyncClientBuilder {
private AsyncClientConnectionManager connManager;
private boolean connManagerShared;
private IOReactorConfig ioReactorConfig;
+ private IOSessionListener ioSessionListener;
private Callback<Exception> ioReactorExceptionCallback;
private Http1Config h1Config;
private H2Config h2Config;
@@ -318,7 +320,15 @@ public class HttpAsyncClientBuilder {
this.ioReactorConfig = ioReactorConfig;
return this;
}
-
+
+ /**
+ * Sets {@link IOSessionListenerfig} listener.
+ */
+ 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 +944,7 @@ public class HttpAsyncClientBuilder {
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) {