package org.deephacks.westty.internal.jaxrs; 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.inject.Singleton; import javax.ws.rs.Path; import javax.ws.rs.ext.Provider; import java.util.HashSet; import java.util.Set; @Singleton public class JaxrsCdiExtension implements Extension { private static Set<Class<?>> jaxrsClasses = new HashSet<>(); <X> void processAnnotatedType(@Observes ProcessAnnotatedType<X> pat) { AnnotatedType<X> type = pat.getAnnotatedType(); if (!type.isAnnotationPresent(Path.class) && !type.isAnnotationPresent(Provider.class)) { return; } Class<?> cls = pat.getAnnotatedType().getJavaClass(); jaxrsClasses.add(cls); } public Set<Class<?>> getJaxrsClasses() { return jaxrsClasses; } }