package org.sakaiproject.delegatedaccess.tool;
import org.apache.wicket.Page;
import org.apache.wicket.Request;
import org.apache.wicket.RequestCycle;
import org.apache.wicket.Response;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.WebRequest;
import org.apache.wicket.protocol.http.WebRequestCycle;
import org.apache.wicket.protocol.http.WebResponse;
import org.apache.wicket.spring.injection.annot.SpringComponentInjector;
import org.sakaiproject.delegatedaccess.tool.pages.UserPage;
/**
* Main application class for delegated access
*
* @author Bryan Holladay (holladay@longsight.com)
*
*/
public class DelegatedAccessApplication extends WebApplication {
/**
* Configure your app here
*/
@Override
protected void init() {
//Configure for Spring injection
addComponentInstantiationListener(new SpringComponentInjector(this));
//Don't throw an exception if we are missing a property, just fallback
getResourceSettings().setThrowExceptionOnMissingResource(false);
//Remove the wicket specific tags from the generated markup
getMarkupSettings().setStripWicketTags(true);
//Don't add any extra tags around a disabled link (default is <em></em>)
getMarkupSettings().setDefaultBeforeDisabledLink(null);
getMarkupSettings().setDefaultAfterDisabledLink(null);
// On Wicket session timeout, redirect to main page
getApplicationSettings().setPageExpiredErrorPage(UserPage.class);
getApplicationSettings().setAccessDeniedPage(UserPage.class);
//to put this app into deployment mode, see web.xml
}
/**
* Throw RuntimeExceptions so they are caught by the Sakai ErrorReportHandler(non-Javadoc)
*
* @see org.apache.wicket.protocol.http.WebApplication#newRequestCycle(org.apache.wicket.Request, org.apache.wicket.Response)
*/
@Override
public RequestCycle newRequestCycle(Request request, Response response) {
return new WebRequestCycle(this, (WebRequest)request, (WebResponse)response) {
@Override
public Page onRuntimeException(Page page, RuntimeException e) {
throw e;
}
};
}
/**
* The main page for our app
*
* @see org.apache.wicket.Application#getHomePage()
*/
public Class<UserPage> getHomePage() {
return UserPage.class;
}
/**
* Constructor
*/
public DelegatedAccessApplication()
{
}
}