3import java.net.InetSocketAddress;
4import java.net.SocketAddress;
5import java.util.concurrent.ExecutorService;
6import java.util.concurrent.Executors;
7import java.util.logging.Level;
8import java.util.logging.Logger;
10import org.jboss.netty.bootstrap.ServerBootstrap;
11import org.jboss.netty.channel.ChannelPipelineFactory;
12import org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory;
13import org.jboss.netty.util.HashedWheelTimer;
14import org.jboss.netty.util.Timer;
16import dev.advo.fs.dispatch.RequestWorkerPool;
17import dev.advo.fs.net.FileServerHandler;
18import dev.advo.fs.net.NetworkConstants;
19import dev.advo.fs.net.OnDemandPipelineFactory;
24 public static void main(String[] args) {
27 }
catch (Throwable t) {
28 logger.log(Level.SEVERE,
"Error starting server.", t);
32 private final ExecutorService
service = Executors.newCachedThreadPool();
38 private final Timer
timer =
new HashedWheelTimer();
40 public void start() throws Exception {
41 logger.info(
"Starting workers...");
44 logger.info(
"Starting services...");
47 logger.info(
"Ready for connections.");
50 private void start(String name, ChannelPipelineFactory pipelineFactory,
int port) {
51 SocketAddress address =
new InetSocketAddress(port);
53 logger.info(
"Binding " + name +
" service to " + address +
"...");
55 ServerBootstrap bootstrap =
new ServerBootstrap();
56 bootstrap.setFactory(
new NioServerSocketChannelFactory(
service,
service));
57 bootstrap.setPipelineFactory(pipelineFactory);
58 bootstrap.bind(address);
final ExecutorService service
final FileServerHandler handler
static final Logger logger
void start(String name, ChannelPipelineFactory pipelineFactory, int port)
static void main(String[] args)
final RequestWorkerPool pool
A class which manages the pool of request workers.
static final int SERVICE_PORT