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());
Defined In
Source
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