ChannelInitializerTest Class — netty Architecture
Architecture documentation for the ChannelInitializerTest class in ChannelInitializerTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 1d273673_4ec9_d923_c0aa_b8258d9bebe4["ChannelInitializerTest"] c325dd3c_6448_75c4_1715_a1af2456be2b["ChannelInitializerTest.java"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|defined in| c325dd3c_6448_75c4_1715_a1af2456be2b 6c57cd5c_2632_2bfa_be7b_3d4ef3aa4bb6["setUp()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 6c57cd5c_2632_2bfa_be7b_3d4ef3aa4bb6 b3f7bf4b_54e4_cf4c_9811_a40bed0de40c["tearDown()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| b3f7bf4b_54e4_cf4c_9811_a40bed0de40c 3c8bc239_f2e4_ad3b_5c28_37b0e0deb19f["testInitChannelThrowsRegisterFirst()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 3c8bc239_f2e4_ad3b_5c28_37b0e0deb19f 562eaef8_dcc4_7af8_71b3_ef17b555d753["testInitChannelThrowsRegisterAfter()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 562eaef8_dcc4_7af8_71b3_ef17b555d753 c492b1c1_f6d3_2090_6fd0_181783165065["testInitChannelThrows()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| c492b1c1_f6d3_2090_6fd0_181783165065 6bad5e48_9d4e_32d3_9adf_2b33c960a4b6["testChannelInitializerInInitializerCorrectOrdering()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 6bad5e48_9d4e_32d3_9adf_2b33c960a4b6 fb80681c_08b8_e96a_7b4b_a7d8ff936b98["testChannelInitializerReentrance()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| fb80681c_08b8_e96a_7b4b_a7d8ff936b98 95df6634_45a3_f1df_2e55_51e722b186d4["firstHandlerInPipelineShouldReceiveChannelRegisteredEvent()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 95df6634_45a3_f1df_2e55_51e722b186d4 77987415_086d_b896_3578_190ba1161255["lastHandlerInPipelineShouldReceiveChannelRegisteredEvent()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 77987415_086d_b896_3578_190ba1161255 456ac6bd_a1cd_6036_9316_5e875b51f1ef["testAddFirstChannelInitializer()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 456ac6bd_a1cd_6036_9316_5e875b51f1ef bf2a4fbd_583d_2233_a274_7e4fa79f6a77["testAddLastChannelInitializer()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| bf2a4fbd_583d_2233_a274_7e4fa79f6a77 15c06dbc_8bf9_bdce_11c6_845769f210ff["testAddChannelInitializer()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 15c06dbc_8bf9_bdce_11c6_845769f210ff 7c459eda_a662_432c_51c7_fb43b84d54c9["testChannelRegisteredEventPropagation()"] 1d273673_4ec9_d923_c0aa_b8258d9bebe4 -->|method| 7c459eda_a662_432c_51c7_fb43b84d54c9
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/ChannelInitializerTest.java lines 49–415
public class ChannelInitializerTest {
private static final int TIMEOUT_MILLIS = 1000;
private static final LocalAddress SERVER_ADDRESS = new LocalAddress("addr");
private EventLoopGroup group;
private ServerBootstrap server;
private Bootstrap client;
private InspectableHandler testHandler;
@BeforeEach
public void setUp() {
group = new MultiThreadIoEventLoopGroup(1, LocalIoHandler.newFactory());
server = new ServerBootstrap()
.group(group)
.channel(LocalServerChannel.class)
.localAddress(SERVER_ADDRESS);
client = new Bootstrap()
.group(group)
.channel(LocalChannel.class)
.handler(new ChannelInboundHandlerAdapter());
testHandler = new InspectableHandler();
}
@AfterEach
public void tearDown() {
group.shutdownGracefully(0, TIMEOUT_MILLIS, TimeUnit.MILLISECONDS).syncUninterruptibly();
}
@Test
public void testInitChannelThrowsRegisterFirst() {
testInitChannelThrows(true);
}
@Test
public void testInitChannelThrowsRegisterAfter() {
testInitChannelThrows(false);
}
private void testInitChannelThrows(boolean registerFirst) {
final Exception exception = new Exception();
final AtomicReference<Throwable> causeRef = new AtomicReference<Throwable>();
ChannelPipeline pipeline = new LocalChannel().pipeline();
if (registerFirst) {
group.register(pipeline.channel()).syncUninterruptibly();
}
pipeline.addFirst(new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel ch) throws Exception {
throw exception;
}
@Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
causeRef.set(cause);
super.exceptionCaught(ctx, cause);
}
});
if (!registerFirst) {
group.register(pipeline.channel()).syncUninterruptibly();
}
pipeline.channel().close().syncUninterruptibly();
pipeline.channel().closeFuture().syncUninterruptibly();
assertSame(exception, causeRef.get());
}
@Test
public void testChannelInitializerInInitializerCorrectOrdering() {
final ChannelInboundHandlerAdapter handler1 = new ChannelInboundHandlerAdapter();
final ChannelInboundHandlerAdapter handler2 = new ChannelInboundHandlerAdapter();
final ChannelInboundHandlerAdapter handler3 = new ChannelInboundHandlerAdapter();
final ChannelInboundHandlerAdapter handler4 = new ChannelInboundHandlerAdapter();
client.handler(new ChannelInitializer<Channel>() {
@Override
protected void initChannel(Channel ch) {
ch.pipeline().addLast(handler1);
ch.pipeline().addLast(new ChannelInitializer<Channel>() {
@Override
Source
Frequently Asked Questions
What is the ChannelInitializerTest class?
ChannelInitializerTest is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/ChannelInitializerTest.java.
Where is ChannelInitializerTest defined?
ChannelInitializerTest is defined in transport/src/test/java/io/netty/channel/ChannelInitializerTest.java at line 49.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free