Home / Class/ AbstractHttp2ConnectionHandlerBuilder Class — netty Architecture

AbstractHttp2ConnectionHandlerBuilder Class — netty Architecture

Architecture documentation for the AbstractHttp2ConnectionHandlerBuilder class in AbstractHttp2ConnectionHandlerBuilder.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  f6b4a99f_582b_edeb_b407_f81f8370c301["AbstractHttp2ConnectionHandlerBuilder"]
  ef2e29bf_4cb8_3cf8_391b_c9a4a708a3b1["AbstractHttp2ConnectionHandlerBuilder.java"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|defined in| ef2e29bf_4cb8_3cf8_391b_c9a4a708a3b1
  05c7ad22_4e30_134d_2aca_03f9b423fe2a["Http2Settings()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| 05c7ad22_4e30_134d_2aca_03f9b423fe2a
  87f64823_b9b5_4bd3_067e_cba27a22acfa["B()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| 87f64823_b9b5_4bd3_067e_cba27a22acfa
  af2cabf9_b81c_0546_8b5d_8f7425b85a66["Http2FrameListener()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| af2cabf9_b81c_0546_8b5d_8f7425b85a66
  f0255446_a095_e4fc_9985_18efffb01081["gracefulShutdownTimeoutMillis()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| f0255446_a095_e4fc_9985_18efffb01081
  42652f20_9676_6f3d_e9ea_eb364eb4e126["isServer()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| 42652f20_9676_6f3d_e9ea_eb364eb4e126
  392cc0ec_c488_0590_541a_58c060f3dcac["maxReservedStreams()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| 392cc0ec_c488_0590_541a_58c060f3dcac
  eeceb048_e6a4_485b_f6d5_7e324caa3e0e["Http2Connection()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| eeceb048_e6a4_485b_f6d5_7e324caa3e0e
  5e29638c_e3fd_16b4_7ced_7aff0f6dc9cb["Http2ConnectionDecoder()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| 5e29638c_e3fd_16b4_7ced_7aff0f6dc9cb
  f0fd6cdf_3c12_c253_32bd_2e76b22f519e["Http2ConnectionEncoder()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| f0fd6cdf_3c12_c253_32bd_2e76b22f519e
  4ba52802_7d9a_913d_d130_abad8186d269["isValidateHeaders()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| 4ba52802_7d9a_913d_d130_abad8186d269
  b128cfbf_37aa_4bb7_9e4b_0d63e7391cd8["Http2FrameLogger()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| b128cfbf_37aa_4bb7_9e4b_0d63e7391cd8
  d24d416d_c623_f94b_4b07_dca7e0bacc6b["encoderEnforceMaxConcurrentStreams()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| d24d416d_c623_f94b_4b07_dca7e0bacc6b
  c14ba41e_9239_2163_3fd9_4d4f05d77a47["encoderEnforceMaxQueuedControlFrames()"]
  f6b4a99f_582b_edeb_b407_f81f8370c301 -->|method| c14ba41e_9239_2163_3fd9_4d4f05d77a47

Relationship Graph

Source Code

codec-http2/src/main/java/io/netty/handler/codec/http2/AbstractHttp2ConnectionHandlerBuilder.java lines 73–689

public abstract class AbstractHttp2ConnectionHandlerBuilder<T extends Http2ConnectionHandler,
                                                            B extends AbstractHttp2ConnectionHandlerBuilder<T, B>> {

    private static final SensitivityDetector DEFAULT_HEADER_SENSITIVITY_DETECTOR = Http2HeadersEncoder.NEVER_SENSITIVE;

    private static final int DEFAULT_MAX_RST_FRAMES_PER_CONNECTION_FOR_SERVER = 200;

    // The properties that can always be set.
    private Http2Settings initialSettings = Http2Settings.defaultSettings();
    private Http2FrameListener frameListener;
    private long gracefulShutdownTimeoutMillis = Http2CodecUtil.DEFAULT_GRACEFUL_SHUTDOWN_TIMEOUT_MILLIS;
    private boolean decoupleCloseAndGoAway;
    private boolean flushPreface = true;

    // The property that will prohibit connection() and codec() if set by server(),
    // because this property is used only when this builder creates an Http2Connection.
    private Boolean isServer;
    private Integer maxReservedStreams;

    // The property that will prohibit server() and codec() if set by connection().
    private Http2Connection connection;

    // The properties that will prohibit server() and connection() if set by codec().
    private Http2ConnectionDecoder decoder;
    private Http2ConnectionEncoder encoder;

    // The properties that are:
    // * mutually exclusive against codec() and
    // * OK to use with server() and connection()
    private Boolean validateHeaders;
    private Http2FrameLogger frameLogger;
    private SensitivityDetector headerSensitivityDetector;
    private Boolean encoderEnforceMaxConcurrentStreams;
    private Boolean encoderIgnoreMaxHeaderListSize;
    private Http2PromisedRequestVerifier promisedRequestVerifier = ALWAYS_VERIFY;
    private boolean autoAckSettingsFrame = true;
    private boolean autoAckPingFrame = true;
    private int maxQueuedControlFrames = Http2CodecUtil.DEFAULT_MAX_QUEUED_CONTROL_FRAMES;
    private int maxConsecutiveEmptyFrames = 2;
    private Integer maxDecodedRstFramesPerWindow;
    private int maxDecodedRstFramesSecondsPerWindow = 30;
    private Integer maxEncodedRstFramesPerWindow;
    private int maxEncodedRstFramesSecondsPerWindow = 30;
    /**
     * Sets the {@link Http2Settings} to use for the initial connection settings exchange.
     */
    protected Http2Settings initialSettings() {
        return initialSettings;
    }

    /**
     * Sets the {@link Http2Settings} to use for the initial connection settings exchange.
     */
    protected B initialSettings(Http2Settings settings) {
        initialSettings = checkNotNull(settings, "settings");
        return self();
    }

    /**
     * Returns the listener of inbound frames.
     *
     * @return {@link Http2FrameListener} if set, or {@code null} if not set.
     */
    protected Http2FrameListener frameListener() {
        return frameListener;
    }

    /**
     * Sets the listener of inbound frames.
     * This listener will only be set if the decoder's listener is {@code null}.
     */
    protected B frameListener(Http2FrameListener frameListener) {
        this.frameListener = checkNotNull(frameListener, "frameListener");
        return self();
    }

    /**
     * Returns the graceful shutdown timeout of the {@link Http2Connection} in milliseconds. Returns -1 if the
     * timeout is indefinite.
     */
    protected long gracefulShutdownTimeoutMillis() {

Frequently Asked Questions

What is the AbstractHttp2ConnectionHandlerBuilder class?
AbstractHttp2ConnectionHandlerBuilder is a class in the netty codebase, defined in codec-http2/src/main/java/io/netty/handler/codec/http2/AbstractHttp2ConnectionHandlerBuilder.java.
Where is AbstractHttp2ConnectionHandlerBuilder defined?
AbstractHttp2ConnectionHandlerBuilder is defined in codec-http2/src/main/java/io/netty/handler/codec/http2/AbstractHttp2ConnectionHandlerBuilder.java at line 73.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free