package bvira.webserver;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.webapp.WebAppContext;
class JettyServer {
private final String hostName;
private final int portNumber;
private final String contextPath;
private final String contextDir;
private final Server server = new Server();
public JettyServer(String hostName, int portNumber, String contextPath, String contextDir) {
this.hostName = hostName;
this.portNumber = portNumber;
this.contextPath = contextPath;
this.contextDir = contextDir;
}
public void start() throws Exception {
server.addConnector(createConnector());
server.addHandler(createContext());
server.setStopAtShutdown(true);
server.start();
}
public void stop() throws Exception {
server.stop();
}
public boolean isRunning() {
return server.isRunning();
}
private Connector createConnector() {
Connector connector = new SelectChannelConnector();
connector.setPort(portNumber);
connector.setHost(hostName);
return connector;
}
private Context createContext() {
WebAppContext wac = new WebAppContext();
wac.setContextPath(contextPath);
// this is path to .war OR TO expanded existing web application
// WILL FIND web.xml and parse it
wac.setWar(contextDir);
return wac;
}
}