Home / Class/ SocketObjectEchoTest Class — netty Architecture

SocketObjectEchoTest Class — netty Architecture

Architecture documentation for the SocketObjectEchoTest class in SocketObjectEchoTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  6232f272_0884_1a0c_5042_b62d30858ab2["SocketObjectEchoTest"]
  e6441b19_4ea7_cefa_16d5_cc332a23b8ae["SocketObjectEchoTest.java"]
  6232f272_0884_1a0c_5042_b62d30858ab2 -->|defined in| e6441b19_4ea7_cefa_16d5_cc332a23b8ae
  8e90dba7_155c_66d6_0b36_cbf040b34c92["testObjectEcho()"]
  6232f272_0884_1a0c_5042_b62d30858ab2 -->|method| 8e90dba7_155c_66d6_0b36_cbf040b34c92
  0b6a6aa8_2a90_af6d_c579_5b616fdfc459["testObjectEchoNotAutoRead()"]
  6232f272_0884_1a0c_5042_b62d30858ab2 -->|method| 0b6a6aa8_2a90_af6d_c579_5b616fdfc459

Relationship Graph

Source Code

testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketObjectEchoTest.java lines 37–204

public class SocketObjectEchoTest extends AbstractSocketTest {

    static final Random random = new Random();
    static final String[] data = new String[1024];

    static {
        for (int i = 0; i < data.length; i ++) {
            int eLen = random.nextInt(512);
            char[] e = new char[eLen];
            for (int j = 0; j < eLen; j ++) {
                e[j] = (char) ('a' + random.nextInt(26));
            }

            data[i] = new String(e);
        }
    }

    @Test
    public void testObjectEcho(TestInfo testInfo) throws Throwable {
        run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
            @Override
            public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
                testObjectEcho(serverBootstrap, bootstrap);
            }
        });
    }

    public void testObjectEcho(ServerBootstrap sb, Bootstrap cb) throws Throwable {
        testObjectEcho(sb, cb, true);
    }

    @Test
    public void testObjectEchoNotAutoRead(TestInfo testInfo) throws Throwable {
        run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
            @Override
            public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
                testObjectEchoNotAutoRead(serverBootstrap, bootstrap);
            }
        });
    }

    public void testObjectEchoNotAutoRead(ServerBootstrap sb, Bootstrap cb) throws Throwable {
        testObjectEcho(sb, cb, false);
    }

    private static void testObjectEcho(ServerBootstrap sb, Bootstrap cb, boolean autoRead) throws Throwable {
        sb.childOption(ChannelOption.AUTO_READ, autoRead);
        cb.option(ChannelOption.AUTO_READ, autoRead);

        final EchoHandler sh = new EchoHandler(autoRead);
        final EchoHandler ch = new EchoHandler(autoRead);

        sb.childHandler(new ChannelInitializer<Channel>() {
            @Override
            public void initChannel(Channel sch) throws Exception {
                sch.pipeline().addLast(
                        new ObjectDecoder(ClassResolvers.cacheDisabled(getClass().getClassLoader())),
                        new ObjectEncoder(),
                        sh);
            }
        });

        cb.handler(new ChannelInitializer<Channel>() {
            @Override
            public void initChannel(Channel sch) throws Exception {
                sch.pipeline().addLast(
                        new ObjectDecoder(ClassResolvers.cacheDisabled(getClass().getClassLoader())),
                        new ObjectEncoder(),
                        ch);
            }
        });

        Channel sc = sb.bind().sync().channel();
        Channel cc = cb.connect(sc.localAddress()).sync().channel();
        for (String element : data) {
            cc.writeAndFlush(element);
        }

        while (ch.counter < data.length) {
            if (sh.exception.get() != null) {
                break;

Frequently Asked Questions

What is the SocketObjectEchoTest class?
SocketObjectEchoTest is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketObjectEchoTest.java.
Where is SocketObjectEchoTest defined?
SocketObjectEchoTest is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketObjectEchoTest.java at line 37.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free