package netty.cookbook.chapter2.recipe3; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import netty.cookbook.common.BootstrapTemplate; import netty.cookbook.common.model.PurchaseData; import org.apache.log4j.Logger; public class PurchaseServer { final static Logger logger = Logger.getLogger(PurchaseServer.class); static final int PORT = 8007; static final String HOST = "127.0.0.1"; public static void main(String[] args) throws Exception { ChannelInitializer<SocketChannel> initializer = new ChannelInitializer<SocketChannel>() { @Override public void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); p.addLast(new PurchaseDataDecoder()); p.addLast(new PurchaseDataEncoder()); p.addLast(new ChannelInboundHandlerAdapter() { @Override public void channelRead(ChannelHandlerContext ctx, Object data) throws Exception { System.out.println("processed Purchase " + data); PurchaseData processed = new PurchaseData(data, true); ctx.writeAndFlush(processed); } }); } }; BootstrapTemplate.newServerBootstrap(HOST, PORT, initializer); } }