/**
*
*/
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.StrestRouter;
import com.trendrr.strest.server.StrestServer;
import com.trendrr.strest.server.v2.StrestJsonServerPipelineFactory;
/**
* @author Dustin Norlander
* @created May 4, 2012
*
*/
public class StrestJsonServerListener extends ServerListenerBase{
/**
* @param master
* @param config
*/
public StrestJsonServerListener(StrestServer master, DynMap config) {
super(master, config);
}
protected static Log log = LogFactory.getLog(StrestJsonServerListener.class);
protected ServerBootstrap bootstrap;
public void start(Executor bossExecutor, Executor workerExecutor) {
// Configure the server.
this.bootstrap = new ServerBootstrap(
new NioServerSocketChannelFactory(
bossExecutor,
bossExecutor));
// Set up the event pipeline factory.
bootstrap.setPipelineFactory(new StrestJsonServerPipelineFactory(this.master.getRouter(), null));
int port = this.config.getInteger("port", 8009);
// Bind and start to accept incoming connections.
bootstrap.bind(new InetSocketAddress(port));
System.out.println("STREST server json started at port " + port + '.');
}
/* (non-Javadoc)
* @see com.trendrr.strest.server.v2.servers.ServerListenerBase#getName()
*/
@Override
public String getName() {
return "strest-json";
}
/* (non-Javadoc)
* @see com.trendrr.strest.server.v2.servers.ServerListenerBase#stop()
*/
@Override
public void stop() {
this.bootstrap.releaseExternalResources();
}
}