/** * */ package com.trendrr.strest.server.v2.servers; import java.net.InetSocketAddress; import java.util.concurrent.Executor; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory; import com.trendrr.oss.DynMap; import com.trendrr.strest.server.StrestServer; import com.trendrr.strest.server.StrestServerPipelineFactory; /** * @author Dustin Norlander * @created May 7, 2012 * */ public class StrestHttpServerListener extends ServerListenerBase { /** * @param master * @param config */ public StrestHttpServerListener(StrestServer master, DynMap config) { super(master, config); } protected static Log log = LogFactory .getLog(StrestHttpServerListener.class); protected ServerBootstrap bootstrap; /* (non-Javadoc) * @see com.trendrr.strest.server.v2.servers.ServerListenerBase#getName() */ @Override public String getName() { return "http"; } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.servers.ServerListenerBase#start(java.util.concurrent.Executor, java.util.concurrent.Executor) */ @Override public void start(Executor bossExecutor, Executor workerExecutor) { this.bootstrap = new ServerBootstrap( new NioServerSocketChannelFactory( bossExecutor, bossExecutor)); // Set up the event pipeline factory. int port = this.config.getInteger("port", 8010); bootstrap.setPipelineFactory(new StrestServerPipelineFactory(this.master.getRouter(), null)); bootstrap.bind(new InetSocketAddress(port)); System.out.println("HTTP server started at port " + port + '.'); } /* (non-Javadoc) * @see com.trendrr.strest.server.v2.servers.ServerListenerBase#stop() */ @Override public void stop() { this.bootstrap.releaseExternalResources(); } }