package org.github.etcd.viewer;
import org.apache.wicket.RuntimeConfigurationType;
import org.apache.wicket.authroles.authentication.AbstractAuthenticatedWebSession;
import org.apache.wicket.authroles.authentication.AuthenticatedWebApplication;
import org.apache.wicket.guice.GuiceComponentInjector;
import org.apache.wicket.markup.html.WebPage;
import org.github.etcd.service.RestModule;
import org.github.etcd.viewer.html.pages.AboutPage;
import org.github.etcd.viewer.html.pages.HomePage;
import org.github.etcd.viewer.html.pages.NavigationPage;
import org.github.etcd.viewer.html.pages.AuthPage;
import org.github.etcd.viewer.html.pages.RegistriesPage;
/**
* Application object for your web application.
* If you want to run this application without deploying, run the Start class.
*
* @see org.github.etcd.viewer.Start#main(String[])
*/
public class EtcdViewerApplication extends AuthenticatedWebApplication
{
/**
* @see org.apache.wicket.Application#getHomePage()
*/
@Override
public Class<? extends WebPage> getHomePage()
{
return HomePage.class;
}
/**
* @see org.apache.wicket.Application#init()
*/
@Override
public void init()
{
super.init();
getComponentInstantiationListeners().add(new GuiceComponentInjector(this, new RestModule()));
if (getConfigurationType() == RuntimeConfigurationType.DEVELOPMENT) {
getResourceSettings().setUseMinifiedResources(false);
getDebugSettings().setDevelopmentUtilitiesEnabled(true);
} else {
getResourceSettings().setUseMinifiedResources(true);
getDebugSettings().setDevelopmentUtilitiesEnabled(false);
}
getMarkupSettings().setStripWicketTags(true);
mountPage("/home", HomePage.class);
mountPage("/etcd/#{cluster}", NavigationPage.class);
mountPage("/registries", RegistriesPage.class);
mountPage("/about", AboutPage.class);
mountPage("/signin", AuthPage.class);
// add your configuration here
}
@Override
protected Class<? extends AbstractAuthenticatedWebSession> getWebSessionClass() {
return EtcdWebSession.class;
}
@Override
protected Class<? extends WebPage> getSignInPageClass() {
return AuthPage.class;
}
}