package rfx.server.test; import java.lang.annotation.Annotation; import java.util.HashSet; import java.util.Set; import org.reflections.Reflections; import rfx.server.http.HttpProcessorConfig; public class TestHttpProcessors { final static String BASE_CONTROLLER_PACKAGE = "rfx.server.http.processor"; public static Set<Class<?>> getClasses() { final HashSet<Class<?>> classes = new HashSet<Class<?>>(); // register root resource Reflections reflections = new Reflections(BASE_CONTROLLER_PACKAGE); Set<Class<?>> clazzes = reflections .getTypesAnnotatedWith(HttpProcessorConfig.class); for (Class<?> clazz : clazzes) { if (!classes.contains(clazz)) { classes.add(clazz); System.out.println("...registered controller class: " + clazz); if (clazz.isAnnotationPresent(HttpProcessorConfig.class)) { Annotation annotation = clazz .getAnnotation(HttpProcessorConfig.class); HttpProcessorConfig mapper = (HttpProcessorConfig) annotation; System.out.println(mapper.uriPath()); System.out.println(mapper.contentType()); } } } // classes.add(HttpNodeResourceHandler.class); return classes; } public static void main(String[] args) { // TestHttpProcessors testHttpProcessors = new TestHttpProcessors(); System.out.println(getClasses()); } }