package org.ops4j.pax.web.extender.impl; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.event.Observes; import javax.enterprise.inject.spi.AnnotatedType; import javax.enterprise.inject.spi.Extension; import javax.enterprise.inject.spi.ProcessAnnotatedType; import javax.enterprise.inject.spi.ProcessBeanAttributes; import javax.enterprise.inject.spi.WithAnnotations; import javax.servlet.annotation.WebFilter; import javax.servlet.annotation.WebListener; import javax.servlet.annotation.WebServlet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @ApplicationScoped public class ServletScanExtension implements Extension { private static Logger log = LoggerFactory.getLogger(ServletScanExtension.class); <T> void processAnnotatedType( @WithAnnotations({ WebServlet.class, WebFilter.class,WebListener.class }) @Observes ProcessAnnotatedType<T> event) { AnnotatedType<T> annotatedType = event.getAnnotatedType(); if (annotatedType.getAnnotation(WebServlet.class) != null) { log.info("@WebServlet on {}", annotatedType.getJavaClass().getName()); } if (annotatedType.getAnnotation(WebFilter.class) != null) { log.info("@WebFilter on {}", annotatedType.getJavaClass().getName()); } if (annotatedType.getAnnotation(WebListener.class) != null) { log.info("@WebListener on {}", annotatedType.getJavaClass().getName()); } } <T> void processBeanAttributes(@Observes ProcessBeanAttributes<T> attributes) { //attributes.veto(); } }