Home / Function/ clientRequestStreamDependencyInHttpMessageFlow() — netty Function Reference

clientRequestStreamDependencyInHttpMessageFlow() — netty Function Reference

Architecture documentation for the clientRequestStreamDependencyInHttpMessageFlow() function in InboundHttp2ToHttpAdapterTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  dff9dac0_4819_651e_e2d6_ff5e53c6192f["clientRequestStreamDependencyInHttpMessageFlow()"]
  b5bf07b2_a16a_fa49_d2b2_c4bdea19488b["InboundHttp2ToHttpAdapterTest"]
  dff9dac0_4819_651e_e2d6_ff5e53c6192f -->|defined in| b5bf07b2_a16a_fa49_d2b2_c4bdea19488b
  ab34dca1_da01_a824_4707_d9e1e8e727ee["boostrapEnv()"]
  dff9dac0_4819_651e_e2d6_ff5e53c6192f -->|calls| ab34dca1_da01_a824_4707_d9e1e8e727ee
  87ba315e_fc35_dcbd_e7ab_2b528883bdaa["awaitRequests()"]
  dff9dac0_4819_651e_e2d6_ff5e53c6192f -->|calls| 87ba315e_fc35_dcbd_e7ab_2b528883bdaa
  style dff9dac0_4819_651e_e2d6_ff5e53c6192f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http2/src/test/java/io/netty/handler/codec/http2/InboundHttp2ToHttpAdapterTest.java lines 407–456

    @Test
    public void clientRequestStreamDependencyInHttpMessageFlow() throws Exception {
        boostrapEnv(1, 2, 1);
        final String text = "hello world big time data!";
        final ByteBuf content = Unpooled.copiedBuffer(text.getBytes());
        final String text2 = "hello world big time data...number 2!!";
        final ByteBuf content2 = Unpooled.copiedBuffer(text2.getBytes());
        final FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.PUT,
                "/some/path/resource", content, true);
        final FullHttpMessage request2 = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.PUT,
                "/some/path/resource2", content2, true);
        try {
            HttpHeaders httpHeaders = request.headers();
            httpHeaders.setInt(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), 3);
            httpHeaders.setInt(HttpHeaderNames.CONTENT_LENGTH, text.length());
            httpHeaders.setShort(HttpConversionUtil.ExtensionHeaderNames.STREAM_WEIGHT.text(), (short) 16);
            HttpHeaders httpHeaders2 = request2.headers();
            httpHeaders2.setInt(HttpConversionUtil.ExtensionHeaderNames.STREAM_ID.text(), 5);
            httpHeaders2.setInt(HttpConversionUtil.ExtensionHeaderNames.STREAM_DEPENDENCY_ID.text(), 3);
            httpHeaders2.setShort(HttpConversionUtil.ExtensionHeaderNames.STREAM_WEIGHT.text(), (short) 123);
            httpHeaders2.setInt(HttpHeaderNames.CONTENT_LENGTH, text2.length());
            final Http2Headers http2Headers = new DefaultHttp2Headers().method(new AsciiString("PUT")).path(
                    new AsciiString("/some/path/resource"));
            final Http2Headers http2Headers2 = new DefaultHttp2Headers().method(new AsciiString("PUT")).path(
                    new AsciiString("/some/path/resource2"));
            runInChannel(clientChannel, new Http2Runnable() {
                @Override
                public void run() throws Http2Exception {
                    clientHandler.encoder().writeHeaders(ctxClient(), 3, http2Headers, 0, false, newPromiseClient());
                    clientHandler.encoder().writeHeaders(ctxClient(), 5, http2Headers2, 3, (short) 123, true, 0,
                            false, newPromiseClient());
                    clientChannel.flush(); // Headers are queued in the flow controller and so flush them.
                    clientHandler.encoder().writeData(ctxClient(), 3, content.retainedDuplicate(), 0, true,
                                                      newPromiseClient());
                    clientHandler.encoder().writeData(ctxClient(), 5, content2.retainedDuplicate(), 0, true,
                                                      newPromiseClient());
                    clientChannel.flush();
                }
            });
            awaitRequests();
            ArgumentCaptor<FullHttpMessage> httpObjectCaptor = ArgumentCaptor.forClass(FullHttpMessage.class);
            verify(serverListener, times(2)).messageReceived(httpObjectCaptor.capture());
            capturedRequests = httpObjectCaptor.getAllValues();
            assertEquals(request, capturedRequests.get(0));
            assertEquals(request2, capturedRequests.get(1));
        } finally {
            request.release();
            request2.release();
        }
    }

Domain

Subdomains

Frequently Asked Questions

What does clientRequestStreamDependencyInHttpMessageFlow() do?
clientRequestStreamDependencyInHttpMessageFlow() is a function in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/InboundHttp2ToHttpAdapterTest.java.
Where is clientRequestStreamDependencyInHttpMessageFlow() defined?
clientRequestStreamDependencyInHttpMessageFlow() is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/InboundHttp2ToHttpAdapterTest.java at line 407.
What does clientRequestStreamDependencyInHttpMessageFlow() call?
clientRequestStreamDependencyInHttpMessageFlow() calls 2 function(s): awaitRequests, boostrapEnv.

Analyze Your Own Codebase

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

Try Supermodel Free