package com.ttdev.wicketpagetest; import javax.servlet.ServletContext; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.nio.SelectChannelConnector; import org.eclipse.jetty.servlet.FilterHolder; import org.eclipse.jetty.webapp.WebAppContext; /** * This class allows you to launch Jetty to run the specified webapp. * * @see WebAppJettyConfiguration * * @author Kent Tong * */ public class WebAppJettyLauncher { private WebAppContext context; private Server server; @SuppressWarnings("deprecation") public void startAppInJetty(WebAppJettyConfiguration cfg) { server = new Server(); Connector connector = new SelectChannelConnector(); connector.setPort(cfg.getJettyServerPort()); server.addConnector(connector); context = new WebAppContext(); context.setContextPath("/"); context.setWar(cfg.getDocBase()); context.setOverrideDescriptor(cfg.getOverrideWebXml()); server.setHandler(context); try { server.start(); } catch (Exception e) { throw new RuntimeException(e); } } public void stopJetty() { try { server.stop(); } catch (Exception e) { throw new RuntimeException(e); } } public ServletContext getServletContext() { return context.getServletHandler().getServletContext(); } public FilterHolder[] getFilters() { return context.getServletHandler().getFilters(); } }