ServletContainerInitializer.java

package common.http.interceptor;

import javax.servlet.ServletContext;
import javax.servlet.annotation.HandlesTypes;
import java.util.Set;

/**
 * Classe chiamata nella fase di start-up del servlet container. Vedi JSR 369 sec 8.2.4
 * @see ServletContainerInitializer
 */
@HandlesTypes(ServletInterceptor.class)
public class ServletContainerInitializer implements javax.servlet.ServletContainerInitializer {
    /**
     * @param set L'insieme delle classi che rispettano i criteri imposti dall'annotazione {@link HandlesTypes}
     * @param servletContext Il servlet context della webapp
     */
    @Override
    public void onStartup(Set<Class<?>> set, ServletContext servletContext) {
        //noinspection unchecked
        set.stream().map(x -> (Class<? extends ServletInterceptor<?>>) x).forEach(ServletInterceptorFactory::register);
    }
}