package org.apache.wicket.examples.requestmapper;
import javax.servlet.http.HttpServletRequest;
import org.apache.wicket.Page;
import org.apache.wicket.examples.WicketExampleApplication;
import org.apache.wicket.examples.requestmapper.packageMount.PackageMountedPage;
import org.apache.wicket.protocol.https.HttpsConfig;
import org.apache.wicket.protocol.https.HttpsMapper;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.core.request.mapper.MountedMapper;
@author
public class RequestMapperApplication extends WicketExampleApplication
{
@Override
public Class<? extends Page> getHomePage()
{
return RequestMapperHomePage.class;
}
@Override
public void init()
{
super.init();
getRootRequestMapperAsCompound().add(new CustomHomeMapper(getHomePage()));
getRootRequestMapperAsCompound().add(
new LocaleFirstMapper(new MountedMapper("/localized", LocalizedPage.class)));
mountPage("secured", HttpsPage.class);
mountPackage("pMount", PackageMountedPage.class);
mountResource("/print/${sheet}/${format}", new MapperDemoResourceReference());
setRootRequestMapper(new HttpsMapper(getRootRequestMapper(), new LazyHttpsConfig()));
}
private static class LazyHttpsConfig extends HttpsConfig
{
@Override
public int getHttpPort()
{
int port = -1;
RequestCycle requestCycle = RequestCycle.get();
if (requestCycle != null)
{
HttpServletRequest containerRequest = (HttpServletRequest)requestCycle.getRequest()
.getContainerRequest();
if (containerRequest != null)
{
port = containerRequest.getLocalPort();
}
}
if (port == -1)
{
port = super.getHttpPort();
}
return port;
}
@Override
public int getHttpsPort()
{
return 443;
}
}
}