@Override public Http2ConnectionHandler build() { return super.build(); }
@Override public Http2FrameCodecBuilder initialSettings(Http2Settings settings) { return super.initialSettings(settings); }
protected VertxHttp2ConnectionHandlerBuilder<C> server(boolean isServer) { return super.server(isServer); }
private T buildFromConnection(Http2Connection connection) { Long maxHeaderListSize = initialSettings.maxHeaderListSize(); Http2FrameReader reader = new DefaultHttp2FrameReader(new DefaultHttp2HeadersDecoder(isValidateHeaders(), maxHeaderListSize == null ? DEFAULT_HEADER_LIST_SIZE : maxHeaderListSize, initialHuffmanDecodeCapacity)); Http2FrameWriter writer = encoderIgnoreMaxHeaderListSize == null ? new DefaultHttp2FrameWriter(headerSensitivityDetector()) : new DefaultHttp2FrameWriter(headerSensitivityDetector(), encoderIgnoreMaxHeaderListSize); if (frameLogger != null) { reader = new Http2InboundFrameLogger(reader, frameLogger); writer = new Http2OutboundFrameLogger(writer, frameLogger); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, writer); boolean encoderEnforceMaxConcurrentStreams = encoderEnforceMaxConcurrentStreams(); if (encoderEnforceMaxConcurrentStreams) { if (connection.isServer()) { encoder.close(); reader.close(); throw new IllegalArgumentException( "encoderEnforceMaxConcurrentStreams: " + encoderEnforceMaxConcurrentStreams + " not supported for server"); } encoder = new StreamBufferingEncoder(encoder); } Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, reader); return buildFromCodec(decoder, encoder); }
@Override public Http2StreamCodec build() { ObjectUtil.checkNotNull(_connection, "connection"); Http2HeadersDecoder headerDecoder = new DefaultHttp2HeadersDecoder(isValidateHeaders()); Http2FrameReader reader = new DefaultHttp2FrameReader(headerDecoder); Http2FrameWriter writer = new DefaultHttp2FrameWriter(headerSensitivityDetector()); if (frameLogger() != null) { reader = new Http2InboundFrameLogger(reader, frameLogger()); writer = new Http2OutboundFrameLogger(writer, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(_connection, writer); boolean encoderEnforceMaxConcurrentStreams = encoderEnforceMaxConcurrentStreams(); if (encoderEnforceMaxConcurrentStreams) { if (_connection.isServer()) { encoder.close(); reader.close(); throw new IllegalArgumentException( "encoderEnforceMaxConcurrentStreams: " + encoderEnforceMaxConcurrentStreams + " not supported for server"); } encoder = new StreamBufferingEncoder(encoder); } _connection.local().flowController( new DefaultHttp2LocalFlowController(_connection, DEFAULT_WINDOW_UPDATE_RATIO, AUTO_REFILL_CONNECTION_WINDOW)); Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(_connection, encoder, reader); super.codec(decoder, encoder); return super.build(); }
@Override public Http2MultiplexCodecBuilder frameLogger(Http2FrameLogger frameLogger) { return super.frameLogger(frameLogger); }
@Override public Http2FrameCodecBuilder gracefulShutdownTimeoutMillis(long gracefulShutdownTimeoutMillis) { return super.gracefulShutdownTimeoutMillis(gracefulShutdownTimeoutMillis); }
@Override public HttpToHttp2ConnectionHandlerBuilder encoderEnforceMaxConcurrentStreams( boolean encoderEnforceMaxConcurrentStreams) { return super.encoderEnforceMaxConcurrentStreams(encoderEnforceMaxConcurrentStreams); }
@Override public HttpToHttp2ConnectionHandlerBuilder headerSensitivityDetector( SensitivityDetector headerSensitivityDetector) { return super.headerSensitivityDetector(headerSensitivityDetector); }
@Override public HttpToHttp2ConnectionHandlerBuilder codec(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder) { return super.codec(decoder, encoder); }
@Override public HttpToHttp2ConnectionHandlerBuilder frameListener(Http2FrameListener frameListener) { return super.frameListener(frameListener); }
@Override protected Http2StreamCodec build( Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder, Http2Settings initialSettings) throws Exception { ObjectUtil.checkPositive(_maxContentLength, "maxContentLength"); ObjectUtil.checkPositive(_gracefulShutdownTimeoutMillis, "gracefulShutdownTimeoutMillis"); ObjectUtil.checkNotNull(_connection, "connection"); // HTTP/2 initial settings - ensures 0 <= initialWindowSize <= MAX_INITIAL_STREAM_WINDOW_SIZE final int initialWindowSize = (int) Math.min(MAX_INITIAL_STREAM_WINDOW_SIZE, _maxContentLength); initialSettings.initialWindowSize(initialWindowSize); Http2StreamCodec codec = new Http2StreamCodec(decoder, encoder, initialSettings); super.frameListener(new Http2FrameListener(_connection, codec, _maxContentLength, initialWindowSize)); super.gracefulShutdownTimeoutMillis(_gracefulShutdownTimeoutMillis); return codec; } }
@Override public Http2FrameLogger frameLogger() { return super.frameLogger(); }
@Override public long gracefulShutdownTimeoutMillis() { return super.gracefulShutdownTimeoutMillis(); }
@Override public Http2ConnectionHandlerBuilder encoderEnforceMaxConcurrentStreams( boolean encoderEnforceMaxConcurrentStreams) { return super.encoderEnforceMaxConcurrentStreams(encoderEnforceMaxConcurrentStreams); }
@Override public Http2MultiplexCodecBuilder headerSensitivityDetector( Http2HeadersEncoder.SensitivityDetector headerSensitivityDetector) { return super.headerSensitivityDetector(headerSensitivityDetector); }
@Override public Http2ConnectionHandlerBuilder codec(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder) { return super.codec(decoder, encoder); }
@Override public Http2ConnectionHandlerBuilder frameListener(Http2FrameListener frameListener) { return super.frameListener(frameListener); }
@Override public Http2ServerChannelHandler build() { return super.build(); }
@Override public Http2MultiplexCodecBuilder initialSettings(Http2Settings settings) { return super.initialSettings(settings); }