package de.alpharogroup;
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 org.wicketstuff.chat.channel.examples.application.WicketApplication;
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 StartChatExamples
{
public static void main(final String[] args) throws Exception
{
final int sessionTimeout = (int)Duration.minutes(30).seconds();// set timeout to 30min(60sec
// *
// 30min=1800sec)...
System.setProperty("wicket.configuration", "development");
final String projectname = "wicket-channel-chat-examples";
final File projectDirectory = PathFinder.getProjectDirectory();
final File webapp = PathFinder.getRelativePath(projectDirectory, projectname, "src", "main",
"webapp");
final String filterPath = "/*";
final 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 = Jetty9RunConfiguration.builder()
.servletContextHandler(servletContextHandler)
.httpPort(WicketApplication.DEFAULT_HTTP_PORT)
.httpsPort(WicketApplication.DEFAULT_HTTPS_PORT).keyStorePassword("wicket")
.keyStorePathResource("/keystore").build();
final Server server = new Server();
Jetty9Runner.runServletContextHandler(server, config);
}
}