package net.yacy.http; import org.eclipse.jetty.server.Handler; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.DefaultHandler; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.server.nio.SelectChannelConnector; public class HttpServer { private Server server = new Server(); /** * @param port TCP Port to listen for http requests */ public HttpServer(int port) { server = new Server(); SelectChannelConnector connector = new SelectChannelConnector(); connector.setPort(port); //connector.setThreadPool(new QueuedThreadPool(20)); server.addConnector(connector); ResourceHandler resource_handler = new ResourceHandler(); resource_handler.setDirectoriesListed(true); resource_handler.setWelcomeFiles(new String[]{ "index.html" }); resource_handler.setResourceBase("htroot/"); HandlerList handlers = new HandlerList(); handlers.setHandlers(new Handler[] { new TemplateHandler(), resource_handler, new DefaultHandler() }); server.setHandler(handlers); } public void start() throws Exception { server.start(); } public void initYaCyServer() { // TODO: delete? // create directories } public void stop() throws Exception { server.stop(); server.join(); } /** * just for testing and debugging */ public static void main(String[] args) throws Exception { HttpServer server = new HttpServer(8090); server.start(); server.stop(); } }