blob: 3b02a8d336fd153c6b0b5ade13f2333a32edd106 [file] [log] [blame]
package ${package};
import org.apache.tapestry5.TapestryFilter;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.servlet.ServletContextInitializer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpStatus;
import javax.servlet.DispatcherType;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.SessionTrackingMode;
import java.util.EnumSet;
@Configuration
@ComponentScan({ "${package}" })
public class AppConfiguration
{
@Bean
public ServletContextInitializer initializer()
{
return new ServletContextInitializer()
{
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("tapestry.app-package", "${package}");
servletContext.setInitParameter("tapestry.development-modules", "${package}.services.DevelopmentModule");
servletContext.setInitParameter("tapestry.qa-modules", "com.foo.services.QaModule");
//servletContext.setInitParameter("tapestry.use-external-spring-context", "true");
servletContext.addFilter("app", TapestryFilter.class).addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ERROR), false, "/*");
//servletContext.addFilter("app", TapestrySpringFilter.class).addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ERROR), false, "/*");
servletContext.setSessionTrackingModes(EnumSet.of(SessionTrackingMode.COOKIE));
}
};
}
@Bean
public ConfigurableServletWebServerFactory webServerFactory()
{
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, "/error404"));
return factory;
}
}