in httpcore5-h2/src/main/java/org/apache/hc/core5/http2/impl/nio/bootstrap/H2RequesterBootstrap.java [290:354]
public H2AsyncRequester create() {
final ManagedConnPool<HttpHost, IOSession> connPool;
switch (poolConcurrencyPolicy != null ? poolConcurrencyPolicy : PoolConcurrencyPolicy.STRICT) {
case LAX:
connPool = new LaxConnPool<>(
defaultMaxPerRoute > 0 ? defaultMaxPerRoute : 20,
timeToLive,
poolReusePolicy,
new DefaultDisposalCallback<>(),
connPoolListener);
break;
case STRICT:
default:
connPool = new StrictConnPool<>(
defaultMaxPerRoute > 0 ? defaultMaxPerRoute : 20,
maxTotal > 0 ? maxTotal : 50,
timeToLive,
poolReusePolicy,
new DefaultDisposalCallback<>(),
connPoolListener);
break;
}
final RequestHandlerRegistry<Supplier<AsyncPushConsumer>> registry = new RequestHandlerRegistry<>(uriPatternType);
for (final HandlerEntry<Supplier<AsyncPushConsumer>> entry: pushConsumerList) {
registry.register(entry.hostname, entry.uriPattern, entry.handler);
}
final ClientH2StreamMultiplexerFactory http2StreamHandlerFactory = new ClientH2StreamMultiplexerFactory(
httpProcessor != null ? httpProcessor : H2Processors.client(),
new DefaultAsyncPushConsumerFactory(registry),
h2Config != null ? h2Config : H2Config.DEFAULT,
charCodingConfig != null ? charCodingConfig : CharCodingConfig.DEFAULT,
streamListener);
final TlsStrategy actualTlsStrategy = tlsStrategy != null ? tlsStrategy : new H2ClientTlsStrategy();
final ClientHttp1StreamDuplexerFactory http1StreamHandlerFactory = new ClientHttp1StreamDuplexerFactory(
httpProcessor != null ? httpProcessor : HttpProcessors.client(),
http1Config != null ? http1Config : Http1Config.DEFAULT,
charCodingConfig != null ? charCodingConfig : CharCodingConfig.DEFAULT,
DefaultConnectionReuseStrategy.INSTANCE,
new DefaultHttpResponseParserFactory(http1Config),
DefaultHttpRequestWriterFactory.INSTANCE,
DefaultContentLengthStrategy.INSTANCE,
DefaultContentLengthStrategy.INSTANCE,
http1StreamListener);
final IOEventHandlerFactory ioEventHandlerFactory = new ClientHttpProtocolNegotiationStarter(
http1StreamHandlerFactory,
http2StreamHandlerFactory,
versionPolicy != null ? versionPolicy : HttpVersionPolicy.NEGOTIATE,
actualTlsStrategy,
handshakeTimeout);
return new H2AsyncRequester(
versionPolicy != null ? versionPolicy : HttpVersionPolicy.NEGOTIATE,
ioReactorConfig,
ioEventHandlerFactory,
ioSessionDecorator,
exceptionCallback,
sessionListener,
connPool,
actualTlsStrategy,
handshakeTimeout);
}