testIsSharableBetweenChannels() — netty Function Reference
Architecture documentation for the testIsSharableBetweenChannels() function in Http2StreamFrameToHttpObjectCodecTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a2e607db_22e5_0dd0_69ba_d7b779dba4ce["testIsSharableBetweenChannels()"] f77629dd_309f_f368_8220_46ddc65ad871["Http2StreamFrameToHttpObjectCodecTest"] a2e607db_22e5_0dd0_69ba_d7b779dba4ce -->|defined in| f77629dd_309f_f368_8220_46ddc65ad871 style a2e607db_22e5_0dd0_69ba_d7b779dba4ce fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http2/src/test/java/io/netty/handler/codec/http2/Http2StreamFrameToHttpObjectCodecTest.java lines 931–990
@Test
public void testIsSharableBetweenChannels() throws Exception {
final Queue<Http2StreamFrame> frames = new ConcurrentLinkedQueue<Http2StreamFrame>();
final ChannelHandler sharedHandler = new Http2StreamFrameToHttpObjectCodec(false);
final SslContext ctx = SslContextBuilder.forClient().sslProvider(SslProvider.JDK).build();
EmbeddedChannel tlsCh = new EmbeddedChannel(ctx.newHandler(ByteBufAllocator.DEFAULT),
new ChannelOutboundHandlerAdapter() {
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
if (msg instanceof Http2StreamFrame) {
frames.add((Http2StreamFrame) msg);
promise.setSuccess();
} else {
ctx.write(msg, promise);
}
}
}, sharedHandler);
EmbeddedChannel plaintextCh = new EmbeddedChannel(
new ChannelOutboundHandlerAdapter() {
@Override
public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) {
if (msg instanceof Http2StreamFrame) {
frames.add((Http2StreamFrame) msg);
promise.setSuccess();
} else {
ctx.write(msg, promise);
}
}
}, sharedHandler);
FullHttpRequest req = new DefaultFullHttpRequest(
HttpVersion.HTTP_1_1, HttpMethod.GET, "/hello/world");
assertTrue(tlsCh.writeOutbound(req));
assertTrue(tlsCh.finishAndReleaseAll());
Http2HeadersFrame headersFrame = (Http2HeadersFrame) frames.poll();
Http2Headers headers = headersFrame.headers();
assertEquals("https", headers.scheme().toString());
assertEquals("GET", headers.method().toString());
assertEquals("/hello/world", headers.path().toString());
assertTrue(headersFrame.isEndStream());
assertNull(frames.poll());
// Run the plaintext channel
req = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/hello/world");
assertFalse(plaintextCh.writeOutbound(req));
assertFalse(plaintextCh.finishAndReleaseAll());
headersFrame = (Http2HeadersFrame) frames.poll();
headers = headersFrame.headers();
assertEquals("http", headers.scheme().toString());
assertEquals("GET", headers.method().toString());
assertEquals("/hello/world", headers.path().toString());
assertTrue(headersFrame.isEndStream());
assertNull(frames.poll());
}
Domain
Subdomains
Defined In
Source
Frequently Asked Questions
What does testIsSharableBetweenChannels() do?
testIsSharableBetweenChannels() is a function in the netty codebase, defined in codec-http2/src/test/java/io/netty/handler/codec/http2/Http2StreamFrameToHttpObjectCodecTest.java.
Where is testIsSharableBetweenChannels() defined?
testIsSharableBetweenChannels() is defined in codec-http2/src/test/java/io/netty/handler/codec/http2/Http2StreamFrameToHttpObjectCodecTest.java at line 931.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free