Home / Function/ testIsSharableBetweenChannels() — netty Function Reference

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

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