package atmosphere.chat; import java.io.File; import org.apache.wicket.protocol.http.ContextParamWebApplicationFactory; import org.apache.wicket.protocol.http.WicketFilter; import org.apache.wicket.util.time.Duration; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.servlet.DefaultServlet; import org.eclipse.jetty.servlet.ServletContextHandler; import de.alpharogroup.file.search.PathFinder; import de.alpharogroup.jetty9.runner.Jetty9Runner; import de.alpharogroup.jetty9.runner.config.FilterHolderConfiguration; import de.alpharogroup.jetty9.runner.config.Jetty9RunConfiguration; import de.alpharogroup.jetty9.runner.config.ServletContextHandlerConfiguration; import de.alpharogroup.jetty9.runner.config.ServletHolderConfiguration; import de.alpharogroup.jetty9.runner.factories.ServletContextHandlerFactory; public class Start { public static void main(String[] args) throws Exception { int sessionTimeout = (int)Duration.minutes(30).seconds();// set timeout to 30min(60sec * // 30min=1800sec)... System.setProperty("wicket.configuration", "development"); String projectname = "atmosphere.chat"; File projectDirectory = PathFinder.getProjectDirectory(); File webapp = PathFinder.getRelativePath(projectDirectory, projectname, "src", "main", "webapp"); String filterPath = "/*"; ServletContextHandler servletContextHandler = ServletContextHandlerFactory .getNewServletContextHandler(ServletContextHandlerConfiguration.builder() .filterHolderConfiguration(FilterHolderConfiguration.builder() .filterClass(WicketFilter.class).filterPath(filterPath) .initParameter(WicketFilter.FILTER_MAPPING_PARAM, "/*") .initParameter(ContextParamWebApplicationFactory.APP_CLASS_PARAM, WicketApplication.class.getName()) .build()) .servletHolderConfiguration(ServletHolderConfiguration.builder() .servletClass(DefaultServlet.class).pathSpec(filterPath).build()) .contextPath("/").webapp(webapp).maxInactiveInterval(sessionTimeout) .filterPath(filterPath).build()); final Jetty9RunConfiguration config = newJetty9RunConfiguration(servletContextHandler); Server server = new Server(); Jetty9Runner.runServletContextHandler(server, config); } private static Jetty9RunConfiguration newJetty9RunConfiguration( final ServletContextHandler servletContextHandler) { final Jetty9RunConfiguration config = Jetty9RunConfiguration.builder() .servletContextHandler(servletContextHandler) .httpPort(WicketApplication.DEFAULT_HTTP_PORT) .httpsPort(WicketApplication.DEFAULT_HTTPS_PORT).keyStorePassword("wicket") .keyStorePathResource("/keystore").build(); return config; } }