Home / Function/ main() — netty Function Reference

main() — netty Function Reference

Architecture documentation for the main() function in HttpHelloWorldServer.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  eb63378e_3c3e_61ff_5709_8868e3e65c6b["main()"]
  38799e92_faf4_5a0c_b71a_0734bd6fa449["HttpHelloWorldServer"]
  eb63378e_3c3e_61ff_5709_8868e3e65c6b -->|defined in| 38799e92_faf4_5a0c_b71a_0734bd6fa449
  style eb63378e_3c3e_61ff_5709_8868e3e65c6b fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

testsuite-jpms/src/main/java/io/netty/testsuite_jpms/main/HttpHelloWorldServer.java lines 83–217

    public static void main(String[] args) throws Exception {

        String transport = "nio";
        boolean ssl = false;
        SslProvider sslProvider = SslProvider.JDK;
        boolean http3 = false;

        Integer port = null;
        for (int i = 0; i < args.length; i++) {
            if (args[i].equals("--help")) {
                System.out.println("usage: [options]");
                System.out.println("--ssl");
                System.out.println("--ssl-provider [ JDK | OPENSSL ]");
                System.out.println("--port <port>");
                System.out.println("--transport [ nio | kqueue | epoll | io_uring ]");
                System.out.println("--http3");
                System.exit(0);
            }
            if (args[i].equals("--ssl")) {
                ssl = true;
            }
            if (args[i].equals("--ssl-provider")) {
                if (i < args.length - 1) {
                    sslProvider = SslProvider.valueOf(args[++i]);
                } else {
                    System.exit(1);
                }
            }
            if (args[i].equals("--port")) {
                if (i < args.length - 1) {
                    port = Integer.parseInt(args[++i]);
                } else {
                    System.exit(1);
                }
            }
            if (args[i].equals("--transport")) {
                if (i < args.length - 1) {
                    transport = args[++i];
                } else {
                    System.exit(1);
                }
            }
            if (args[i].equals("--http3")) {
                http3 = true;
            }
        }

        if (port == null) {
            port = ssl ? 8443 : 8080;
        }

        IoHandlerFactory ioHandlerFactory;
        Class<? extends ServerSocketChannel> serverSocketChannelFactory;
        switch (transport) {
            case "nio":
                ioHandlerFactory = NioIoHandler.newFactory();
                serverSocketChannelFactory = NioServerSocketChannel.class;
                break;
            case "kqueue":
                ioHandlerFactory = KQueueIoHandler.newFactory();
                serverSocketChannelFactory = KQueueServerSocketChannel.class;
                break;
            case "epoll":
                ioHandlerFactory = EpollIoHandler.newFactory();
                serverSocketChannelFactory = EpollServerSocketChannel.class;
                break;
            case "io_uring":
                ioHandlerFactory = IoUringIoHandler.newFactory();
                serverSocketChannelFactory = IoUringServerSocketChannel.class;
                break;
            default:
                System.exit(1);
                return;
        }

        X509Bundle cert = new CertificateBuilder()
                .subject("cn=localhost")
                .setIsCertificateAuthority(true)
                .buildSelfSigned();

        // Configure the server.

Domain

Subdomains

Frequently Asked Questions

What does main() do?
main() is a function in the netty codebase, defined in testsuite-jpms/src/main/java/io/netty/testsuite_jpms/main/HttpHelloWorldServer.java.
Where is main() defined?
main() is defined in testsuite-jpms/src/main/java/io/netty/testsuite_jpms/main/HttpHelloWorldServer.java at line 83.

Analyze Your Own Codebase

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

Try Supermodel Free