package com.aol.micro.server.servers.tomcat; import java.util.Set; import javax.servlet.ServletContainerInitializer; import javax.servlet.ServletContext; import javax.servlet.ServletContextListener; import javax.servlet.ServletException; import javax.servlet.ServletRequestListener; import org.pcollections.PStack; import lombok.AllArgsConstructor; import com.aol.micro.server.servers.FilterConfigurer; import com.aol.micro.server.servers.JaxRsServletConfigurer; import com.aol.micro.server.servers.ServerThreadLocalVariables; import com.aol.micro.server.servers.ServletConfigurer; import com.aol.micro.server.servers.ServletContextListenerConfigurer; import com.aol.micro.server.servers.model.FilterData; import com.aol.micro.server.servers.model.ServerData; import com.aol.micro.server.servers.model.ServletData; @AllArgsConstructor public class TomcatListener implements ServletContainerInitializer { private final JaxRsServletConfigurer jaxRsConfigurer; private final ServerData serverData; private final PStack<FilterData> filterData; private final PStack<ServletData> servletData; private final PStack<ServletContextListener> servletContextListenerData; private final PStack<ServletRequestListener> servletRequestListenerData; @Override public void onStartup(Set<Class<?>> classes, ServletContext webappContext) throws ServletException { try { ServerThreadLocalVariables.getContext().set(serverData.getModule().getContext()); jaxRsConfigurer.addServlet(this.serverData,webappContext); new ServletConfigurer(serverData, servletData).addServlets(webappContext); new FilterConfigurer(serverData, this.filterData).addFilters(webappContext); new ServletContextListenerConfigurer(serverData, servletContextListenerData, servletRequestListenerData).addListeners(webappContext); } catch (Exception ex) { } } }