Home / Class/ InboundHttp2ToHttpAdapterTest Class — netty Architecture

InboundHttp2ToHttpAdapterTest Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b["InboundHttp2ToHttpAdapterTest"]
  4170cc1c_831c_816c_3ced_77d9f5dea904["InboundHttp2ToHttpAdapterTest.java"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|defined in| 4170cc1c_831c_816c_3ced_77d9f5dea904
  4414b36b_d292_88ad_83da_0b48ff1f69f1["setup()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 4414b36b_d292_88ad_83da_0b48ff1f69f1
  55daa93c_d576_1d18_a585_554aaa88d063["teardown()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 55daa93c_d576_1d18_a585_554aaa88d063
  4d8fd7c7_1117_ada6_809c_6abfb9ea1ea5["clientRequestSingleHeaderNoDataFrames()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 4d8fd7c7_1117_ada6_809c_6abfb9ea1ea5
  897e6840_fb15_879b_322b_3e2342edc6a8["clientRequestSingleHeaderCookieSplitIntoMultipleEntries()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 897e6840_fb15_879b_322b_3e2342edc6a8
  9af3da1a_687c_1f8e_37f2_5c2166600f20["clientRequestSingleHeaderCookieSplitIntoMultipleEntries2()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 9af3da1a_687c_1f8e_37f2_5c2166600f20
  aeaacd77_cdf8_f9d0_7b20_15d8390dc670["clientRequestSingleHeaderNonAsciiShouldThrow()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| aeaacd77_cdf8_f9d0_7b20_15d8390dc670
  eb2294ce_f41c_9d1f_eb2d_d4a966f17e07["clientRequestOneDataFrame()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| eb2294ce_f41c_9d1f_eb2d_d4a966f17e07
  8a5db917_3962_f9c6_1e48_3cc0aed799f9["clientRequestMultipleDataFrames()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 8a5db917_3962_f9c6_1e48_3cc0aed799f9
  b870540c_2068_acb7_384a_9a7491f704a2["clientRequestMultipleEmptyDataFrames()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| b870540c_2068_acb7_384a_9a7491f704a2
  8a7f1ed9_2a95_6661_b858_d8475706c886["clientRequestTrailingHeaders()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 8a7f1ed9_2a95_6661_b858_d8475706c886
  dff9dac0_4819_651e_e2d6_ff5e53c6192f["clientRequestStreamDependencyInHttpMessageFlow()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| dff9dac0_4819_651e_e2d6_ff5e53c6192f
  d1b00b76_97a9_ee86_72a8_449cca017fb2["serverRequestPushPromise()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| d1b00b76_97a9_ee86_72a8_449cca017fb2
  0cf34fad_8be8_c52c_87e0_9fecca7d12f7["serverResponseHeaderInformational()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b -->|method| 0cf34fad_8be8_c52c_87e0_9fecca7d12f7

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/InboundHttp2ToHttpAdapterTest.java lines 75–854

public class InboundHttp2ToHttpAdapterTest {
    private List<FullHttpMessage> capturedRequests;
    private List<FullHttpMessage> capturedResponses;

    @Mock
    private HttpResponseListener serverListener;

    @Mock
    private HttpResponseListener clientListener;

    @Mock
    private HttpSettingsListener settingsListener;

    private Http2ConnectionHandler serverHandler;
    private Http2ConnectionHandler clientHandler;
    private ServerBootstrap sb;
    private Bootstrap cb;
    private Channel serverChannel;
    private volatile Channel serverConnectedChannel;
    private Channel clientChannel;
    private CountDownLatch serverLatch;
    private CountDownLatch clientLatch;
    private CountDownLatch serverLatch2;
    private CountDownLatch clientLatch2;
    private CountDownLatch settingsLatch;
    private CountDownLatch clientHandlersAddedLatch;
    private int maxContentLength;
    private HttpResponseDelegator serverDelegator;
    private HttpResponseDelegator clientDelegator;
    private HttpSettingsDelegator settingsDelegator;
    private Http2Exception clientException;

    @BeforeEach
    public void setup() throws Exception {
        MockitoAnnotations.initMocks(this);
    }

    @AfterEach
    public void teardown() throws Exception {
        cleanupCapturedRequests();
        cleanupCapturedResponses();
        if (clientChannel != null) {
            clientChannel.close().syncUninterruptibly();
            clientChannel = null;
        }
        if (serverChannel != null) {
            serverChannel.close().syncUninterruptibly();
            serverChannel = null;
        }
        final Channel serverConnectedChannel = this.serverConnectedChannel;
        if (serverConnectedChannel != null) {
            serverConnectedChannel.close().syncUninterruptibly();
            this.serverConnectedChannel = null;
        }
        Future<?> serverGroup = sb.config().group().shutdownGracefully(0, 5, SECONDS);
        Future<?> serverChildGroup = sb.config().childGroup().shutdownGracefully(0, 5, SECONDS);
        Future<?> clientGroup = cb.config().group().shutdownGracefully(0, 5, SECONDS);
        serverGroup.syncUninterruptibly();
        serverChildGroup.syncUninterruptibly();
        clientGroup.syncUninterruptibly();
    }

    @Test
    public void clientRequestSingleHeaderNoDataFrames() throws Exception {
        boostrapEnv(1, 1, 1);
        final FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET,
                "/some/path/resource2", true);
        try {
            HttpHeaders httpHeaders = request.headers();
            httpHeaders.set(HttpConversionUtil.ExtensionHeaderNames.SCHEME.text(), "https");
            httpHeaders.set(HttpHeaderNames.HOST, "example.org");
            httpHeaders.setInt(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), 3);
            httpHeaders.setInt(HttpHeaderNames.CONTENT_LENGTH, 0);
            httpHeaders.setShort(HttpConversionUtil.ExtensionHeaderNames.STREAM_WEIGHT.text(), (short) 16);
            final Http2Headers http2Headers = new DefaultHttp2Headers().method(new AsciiString("GET")).
                    scheme(new AsciiString("https")).authority(new AsciiString("example.org"))
                    .path(new AsciiString("/some/path/resource2"));
            runInChannel(clientChannel, new Http2Runnable() {
                @Override
                public void run() throws Http2Exception {
                    clientHandler.encoder().writeHeaders(ctxClient(), 3, http2Headers, 0, true, newPromiseClient());

Frequently Asked Questions

What is the InboundHttp2ToHttpAdapterTest class?
InboundHttp2ToHttpAdapterTest is a class in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/InboundHttp2ToHttpAdapterTest.java.
Where is InboundHttp2ToHttpAdapterTest defined?
InboundHttp2ToHttpAdapterTest is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/InboundHttp2ToHttpAdapterTest.java at line 75.

Analyze Your Own Codebase

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

Try Supermodel Free