DefaultChannelPipelineTest Class — netty Architecture
Architecture documentation for the DefaultChannelPipelineTest class in DefaultChannelPipelineTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 666d912b_4166_a807_ed10_ba12f328a7b2["DefaultChannelPipelineTest"] ded22145_bbcf_15a1_69b7_30cac8d4be02["DefaultChannelPipelineTest.java"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|defined in| ded22145_bbcf_15a1_69b7_30cac8d4be02 06655860_6345_cf58_2b97_fcee7aa61dbf["beforeClass()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 06655860_6345_cf58_2b97_fcee7aa61dbf 56708d38_36b4_a395_0bc8_9a23fd2a6cfc["afterClass()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 56708d38_36b4_a395_0bc8_9a23fd2a6cfc 1d577730_98cf_e645_a0bd_8e177a3273f3["setUp()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 1d577730_98cf_e645_a0bd_8e177a3273f3 e3d0397a_c512_8300_661b_5e641ff5bc13["tearDown()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| e3d0397a_c512_8300_661b_5e641ff5bc13 08e8fcf4_2ac6_067a_5b74_1b1417fab029["testFreeCalled()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 08e8fcf4_2ac6_067a_5b74_1b1417fab029 9112dc96_9124_3875_f460_a348cd9d96ff["testRemoveChannelHandler()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 9112dc96_9124_3875_f460_a348cd9d96ff a07544b4_e756_9c78_4f94_9e5e4b00e816["testRemoveIfExists()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| a07544b4_e756_9c78_4f94_9e5e4b00e816 41051469_aa63_66f5_9615_120713db700f["testRemoveIfExistsDoesNotThrowException()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 41051469_aa63_66f5_9615_120713db700f b7601ae4_7ec7_6c51_6daa_aaad2afcc307["testRemoveThrowNoSuchElementException()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| b7601ae4_7ec7_6c51_6daa_aaad2afcc307 546dafe1_0509_af99_b137_e00b721fbbd8["testReplaceChannelHandler()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 546dafe1_0509_af99_b137_e00b721fbbd8 d6a83eab_45ec_1d12_337d_f721d0c8e324["testReplaceHandlerChecksDuplicateNames()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| d6a83eab_45ec_1d12_337d_f721d0c8e324 eafa2e0b_8697_334f_4614_1b585b838a64["testReplaceNameWithGenerated()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| eafa2e0b_8697_334f_4614_1b585b838a64 43bbf649_da21_0de7_b3de_4e13349eb748["testRenameChannelHandler()"] 666d912b_4166_a807_ed10_ba12f328a7b2 -->|method| 43bbf649_da21_0de7_b3de_4e13349eb748
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java lines 84–2589
public class DefaultChannelPipelineTest {
private static EventLoopGroup group;
private Channel self;
private Channel peer;
@BeforeAll
public static void beforeClass() throws Exception {
group = new MultiThreadIoEventLoopGroup(1, LocalIoHandler.newFactory());
}
@AfterAll
public static void afterClass() throws Exception {
group.shutdownGracefully().sync();
}
private void setUp(final ChannelHandler... handlers) throws Exception {
final AtomicReference<Channel> peerRef = new AtomicReference<Channel>();
ServerBootstrap sb = new ServerBootstrap();
sb.group(group).channel(LocalServerChannel.class);
sb.childHandler(new ChannelInboundHandlerAdapter() {
@Override
public void channelRegistered(ChannelHandlerContext ctx) {
peerRef.set(ctx.channel());
}
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) {
ReferenceCountUtil.release(msg);
}
});
ChannelFuture bindFuture = sb.bind(LocalAddress.ANY).sync();
Bootstrap b = new Bootstrap();
b.group(group).channel(LocalChannel.class);
b.handler(new ChannelInitializer<LocalChannel>() {
@Override
protected void initChannel(LocalChannel ch) {
ch.pipeline().addLast(handlers);
}
});
self = b.connect(bindFuture.channel().localAddress()).sync().channel();
peer = peerRef.get();
bindFuture.channel().close().sync();
}
@AfterEach
public void tearDown() throws Exception {
if (peer != null) {
peer.close();
peer = null;
}
if (self != null) {
self = null;
}
}
@Test
public void testFreeCalled() throws Exception {
final CountDownLatch free = new CountDownLatch(1);
final ReferenceCounted holder = new AbstractReferenceCounted() {
@Override
protected void deallocate() {
free.countDown();
}
@Override
public ReferenceCounted touch(Object hint) {
return this;
}
};
StringInboundHandler handler = new StringInboundHandler();
setUp(handler);
peer.writeAndFlush(holder).sync();
Source
Frequently Asked Questions
What is the DefaultChannelPipelineTest class?
DefaultChannelPipelineTest is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java.
Where is DefaultChannelPipelineTest defined?
DefaultChannelPipelineTest is defined in transport/src/test/java/io/netty/channel/DefaultChannelPipelineTest.java at line 84.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free