package com.robert.vesta.rest.netty; import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.Channel; import io.netty.channel.ChannelOption; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.nio.NioServerSocketChannel; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class VestaRestNettyServer { private static final Log log = LogFactory .getLog(VestaRestNettyServer.class); private final int port; public VestaRestNettyServer(int port) { this.port = port; } public void run() throws Exception { // Configure the server. EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup(); try { ServerBootstrap b = new ServerBootstrap(); b.option(ChannelOption.SO_BACKLOG, 1024); b.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new VestaRestNettyServerInitializer()); Channel ch = b.bind(port).sync().channel(); if (log.isDebugEnabled()) log.debug("VestaRestNettyServer is started."); ch.closeFuture().sync(); } finally { bossGroup.shutdownGracefully(); workerGroup.shutdownGracefully(); } } public static void main(String[] args) throws Exception { int port = 8080; if (args.length > 0) { port = Integer.parseInt(args[0]); } new VestaRestNettyServer(port).run(); } }