package org.openbakery.racecontrol.web; import org.apache.wicket.Page; import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession; import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.request.Request; import org.apache.wicket.Session; import org.apache.wicket.protocol.http.WebApplication; import org.apache.wicket.request.Response; import org.openbakery.racecontrol.plugin.profile.web.DriverProfilePage; import org.openbakery.racecontrol.plugin.profile.web.TeamProfileOverviewPage; import org.openbakery.racecontrol.plugin.tracker.Tracker; import org.openbakery.racecontrol.plugin.tracker.web.TrackerPage; import org.openbakery.racecontrol.plugin.tracker.web.TrackerSettingsPage; import org.openbakery.racecontrol.service.SettingsLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class RaceControlWebApplication extends AuthenticatedWebApplication { private ApplicationContext context; private static Logger log = LoggerFactory.getLogger(RaceControlWebApplication.class); @Override public Class<? extends Page> getHomePage() { return TrackerPage.class; } @Override protected void init() { super.init(); // context = new GenericApplicationContext(); // XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(context); // xmlReader.loadBeanDefinitions(new ClassPathResource("spring-config.xml")); String dir = "spring-config.xml"; context = new ClassPathXmlApplicationContext(new String[] { dir }); SettingsLoader loader = (SettingsLoader) context.getBean("settingsLoader"); loader.setBasePath(getServletContext().getRealPath("WEB-INF")); log.debug("WEB-INF path {}", getServletContext().getRealPath("WEB-INF")); log.info("Init is called..."); mountPage("/tracker", TrackerPage.class); String adminPath = "/admin"; mountPage(adminPath + "/login", LoginPage.class); mountPage(adminPath + "/logout", LogoutPage.class); mountPage(adminPath + "/driver", DriverProfilePage.class); mountPage(adminPath + "/team", TeamProfileOverviewPage.class); mountPage(adminPath + "/tracker", TrackerSettingsPage.class); mountPage(adminPath + "/settings", SettingsPage.class); } @Override protected Class<? extends WebPage> getSignInPageClass() { return LoginPage.class; } @Override public Session newSession(Request request, Response response) { return new RaceControlSession(request); } @Override protected Class<? extends AbstractAuthenticatedWebSession> getWebSessionClass() { return RaceControlSession.class; } public ApplicationContext getContext() { return context; } }