private Http2ClientConnectionHandler newHttp2ConnectionHandler(Channel ch) { final boolean validateHeaders = false; final Http2Connection conn = new DefaultHttp2Connection(false); final Http2FrameReader reader = new DefaultHttp2FrameReader(validateHeaders); final Http2FrameWriter writer = new DefaultHttp2FrameWriter(); final Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(conn, writer); final Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(conn, encoder, reader); return new Http2ClientConnectionHandler(decoder, encoder, http2Settings(), ch, clientFactory); }
private Http2ConnectionHandler newHttp2ConnectionHandler(ChannelPipeline pipeline) { final Http2Connection conn = new DefaultHttp2Connection(true); final Http2FrameReader reader = new DefaultHttp2FrameReader(true); final Http2FrameWriter writer = new DefaultHttp2FrameWriter(); final Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(conn, writer); final Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(conn, encoder, reader); return new Http2ServerConnectionHandler( decoder, encoder, http2Settings(), pipeline.channel(), config, gracefulShutdownSupport); }
Http2ConnectionHandler(boolean server, Http2FrameWriter frameWriter, Http2FrameLogger frameLogger, Http2Settings initialSettings) { this.initialSettings = checkNotNull(initialSettings, "initialSettings"); Http2Connection connection = new DefaultHttp2Connection(server); Long maxHeaderListSize = initialSettings.maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger); } encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); }
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); }
/** * Build a {@link Http2FrameCodec} object. */ @Override public Http2FrameCodec build() { Http2FrameWriter frameWriter = this.frameWriter; if (frameWriter != null) { // This is to support our tests and will never be executed by the user as frameWriter(...) // is package-private. DefaultHttp2Connection connection = new DefaultHttp2Connection(isServer(), maxReservedStreams()); Long maxHeaderListSize = initialSettings().maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger() != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger()); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); if (encoderEnforceMaxConcurrentStreams()) { encoder = new StreamBufferingEncoder(encoder); } Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); return build(decoder, encoder, initialSettings()); } return super.build(); }
public static Http2Handler newHandler(final boolean isServer) { Http2HeadersDecoder headersDecoder = new DefaultHttp2HeadersDecoder(true); Http2FrameReader frameReader = new DefaultHttp2FrameReader(headersDecoder); Http2FrameWriter frameWriter = new DefaultHttp2FrameWriter(); Http2Connection connection = new DefaultHttp2Connection(isServer); Http2ConnectionEncoder encoder = new StreamBufferingEncoder( new DefaultHttp2ConnectionEncoder(connection, frameWriter)); connection.local().flowController(new DefaultHttp2LocalFlowController(connection, DEFAULT_WINDOW_UPDATE_RATIO, true)); Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); Http2Settings settings = new Http2Settings(); if (!isServer) settings.pushEnabled(true); settings.initialWindowSize(1048576 * 10); //10MiB settings.maxConcurrentStreams(Integer.MAX_VALUE); return newHandler(decoder, encoder, settings, isServer); }
Http2ConnectionHandler(boolean server, Http2FrameWriter frameWriter, Http2FrameLogger frameLogger, Http2Settings initialSettings) { this.initialSettings = checkNotNull(initialSettings, "initialSettings"); Http2Connection connection = new DefaultHttp2Connection(server); Long maxHeaderListSize = initialSettings.maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger); } encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); }
Http2ConnectionHandler(boolean server, Http2FrameWriter frameWriter, Http2FrameLogger frameLogger, Http2Settings initialSettings) { this.initialSettings = checkNotNull(initialSettings, "initialSettings"); Http2Connection connection = new DefaultHttp2Connection(server); Long maxHeaderListSize = initialSettings.maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger); } encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); }
private ForkedHttp2MultiplexCodec buildFromConnection(Http2Connection connection) { Long maxHeaderListSize = initialSettings().maxHeaderListSize(); Http2FrameReader reader = new DefaultHttp2FrameReader( new DefaultHttp2HeadersDecoder(this.isValidateHeaders(), 8192L, 32)); Http2FrameWriter writer = new DefaultHttp2FrameWriter(this.headerSensitivityDetector()); if (frameLogger() != null) { reader = new Http2InboundFrameLogger((Http2FrameReader) reader, frameLogger()); writer = new Http2OutboundFrameLogger((Http2FrameWriter) writer, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, (Http2FrameWriter) writer); boolean encoderEnforceMaxConcurrentStreams = this.encoderEnforceMaxConcurrentStreams(); if (encoderEnforceMaxConcurrentStreams) { if (connection.isServer()) { ((Http2ConnectionEncoder) encoder).close(); ((Http2FrameReader) reader).close(); throw new IllegalArgumentException("encoderEnforceMaxConcurrentStreams: " + encoderEnforceMaxConcurrentStreams + " not supported for server"); } encoder = new StreamBufferingEncoder((Http2ConnectionEncoder) encoder); } Http2ConnectionDecoder decoder = new ForkedDefaultHttp2ConnectionDecoder(connection, (Http2ConnectionEncoder) encoder, (Http2FrameReader) reader); return this.buildFromCodec(decoder, (Http2ConnectionEncoder) encoder); }
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); }
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); }
private ForkedHttp2MultiplexCodec buildFromConnection(Http2Connection connection) { Long maxHeaderListSize = initialSettings().maxHeaderListSize(); Http2FrameReader reader = new DefaultHttp2FrameReader( new DefaultHttp2HeadersDecoder(this.isValidateHeaders(), 8192L, 32)); Http2FrameWriter writer = new DefaultHttp2FrameWriter(this.headerSensitivityDetector()); if (frameLogger() != null) { reader = new Http2InboundFrameLogger((Http2FrameReader) reader, frameLogger()); writer = new Http2OutboundFrameLogger((Http2FrameWriter) writer, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, (Http2FrameWriter) writer); boolean encoderEnforceMaxConcurrentStreams = this.encoderEnforceMaxConcurrentStreams(); if (encoderEnforceMaxConcurrentStreams) { if (connection.isServer()) { ((Http2ConnectionEncoder) encoder).close(); ((Http2FrameReader) reader).close(); throw new IllegalArgumentException("encoderEnforceMaxConcurrentStreams: " + encoderEnforceMaxConcurrentStreams + " not supported for server"); } encoder = new StreamBufferingEncoder((Http2ConnectionEncoder) encoder); } Http2ConnectionDecoder decoder = new ForkedDefaultHttp2ConnectionDecoder(connection, (Http2ConnectionEncoder) encoder, (Http2FrameReader) reader); return this.buildFromCodec(decoder, (Http2ConnectionEncoder) 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(); }
private Http2ConnectionHandler newHttp2ConnectionHandler(ChannelPipeline pipeline) { final Http2Connection conn = new DefaultHttp2Connection(true); conn.addListener(new Http2GoAwayListener(pipeline.channel())); try (Http2FrameReader reader = new DefaultHttp2FrameReader(true)) { Http2FrameWriter writer = new DefaultHttp2FrameWriter(); Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(conn, writer); Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(conn, encoder, reader); final Http2ConnectionHandler handler = new Http2ServerConnectionHandler(decoder, encoder, new Http2Settings()); // Setup post build options final Http2RequestDecoder listener = new Http2RequestDecoder(config, pipeline.channel(), handler.encoder()); handler.connection().addListener(listener); handler.decoder().frameListener(listener); handler.gracefulShutdownTimeoutMillis(config.idleTimeoutMillis()); return handler; } }
@Override public Http2MultiplexCodec build() { Http2FrameWriter frameWriter = this.frameWriter; if (frameWriter != null) { // This is to support our tests and will never be executed by the user as frameWriter(...) // is package-private. DefaultHttp2Connection connection = new DefaultHttp2Connection(isServer(), maxReservedStreams()); Long maxHeaderListSize = initialSettings().maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger() != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger()); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); if (encoderEnforceMaxConcurrentStreams()) { encoder = new StreamBufferingEncoder(encoder); } Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); return build(decoder, encoder, initialSettings()); } return super.build(); }
/** * Build a {@link Http2FrameCodec} object. */ @Override public Http2FrameCodec build() { Http2FrameWriter frameWriter = this.frameWriter; if (frameWriter != null) { // This is to support our tests and will never be executed by the user as frameWriter(...) // is package-private. DefaultHttp2Connection connection = new DefaultHttp2Connection(isServer(), maxReservedStreams()); Long maxHeaderListSize = initialSettings().maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger() != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger()); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); if (encoderEnforceMaxConcurrentStreams()) { encoder = new StreamBufferingEncoder(encoder); } Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); return build(decoder, encoder, initialSettings()); } return super.build(); }
/** * Build a {@link Http2FrameCodec} object. */ @Override public Http2FrameCodec build() { Http2FrameWriter frameWriter = this.frameWriter; if (frameWriter != null) { // This is to support our tests and will never be executed by the user as frameWriter(...) // is package-private. DefaultHttp2Connection connection = new DefaultHttp2Connection(isServer(), maxReservedStreams()); Long maxHeaderListSize = initialSettings().maxHeaderListSize(); Http2FrameReader frameReader = new DefaultHttp2FrameReader(maxHeaderListSize == null ? new DefaultHttp2HeadersDecoder(true) : new DefaultHttp2HeadersDecoder(true, maxHeaderListSize)); if (frameLogger() != null) { frameWriter = new Http2OutboundFrameLogger(frameWriter, frameLogger()); frameReader = new Http2InboundFrameLogger(frameReader, frameLogger()); } Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter); if (encoderEnforceMaxConcurrentStreams()) { encoder = new StreamBufferingEncoder(encoder); } Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder, frameReader); return build(decoder, encoder, initialSettings()); } return super.build(); }