package ste.web.beanshell.jetty;
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.session.SessionHandler;
import static ste.web.beanshell.Constants.*;
public class JettyServer {
public static final String PROPERTY_ROOT = "ste.web.jetty.root";
private Server server;
public static final String ROOT = "src/main/webapp";
public JettyServer() {
server = new Server(8080);
String root = System.getProperty(PROPERTY_ROOT, ROOT);
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(true);
resourceHandler.setWelcomeFiles(new String[]{ "index.html" });
resourceHandler.setResourceBase(root);
BeanShellHandler bsHandler = new BeanShellHandler();
bsHandler.setControllersFolder("/c");
VelocityHandler velocityHandler = new VelocityHandler();
velocityHandler.setViewsFolder("/v");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[] { resourceHandler, bsHandler, velocityHandler, new DefaultHandler() });
SessionHandler sh = new SessionHandler();
sh.setHandler(handlers);
server.setHandler(sh);
server.setAttribute(ATTR_APP_ROOT, root);
}
public boolean start() {
try {
server.start();
server.join();
} catch (Exception e) {
//
// log the error?
//
e.printStackTrace();
return false;
}
return true;
}
public static void main(String[] args) {
new JettyServer().start();
}
}