package com.aol.micro.server.servers; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.ServletContextListener; import javax.servlet.ServletRequestListener; import lombok.AllArgsConstructor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.aol.micro.server.servers.model.ServerData; @AllArgsConstructor public class ServletContextListenerConfigurer { private final Logger logger = LoggerFactory.getLogger(getClass()); private final ServerData serverData; private final List<ServletContextListener> listenerData; private final List<ServletRequestListener> listenerRequestData; public void addListeners(ServletContext webappContext) { serverData.getRootContext() .getBeansOfType(ServletContextListener.class) .values() .stream() .peek(this::logListener) .forEach(listener -> webappContext.addListener(listener)); listenerData.forEach(it -> webappContext.addListener(it)); serverData.getRootContext() .getBeansOfType(ServletRequestListener.class) .values() .stream() .peek(this::logListener) .forEach(listener -> webappContext.addListener(listener)); listenerRequestData.forEach(it -> webappContext.addListener(it)); } private void logListener(ServletContextListener listener) { logger.info("Registering servlet context listener {}", listener.getClass().getName()); } private void logListener(ServletRequestListener listener) { logger.info("Registering servlet request listener {}",listener.getClass().getName()); } }