public AnnotationHandler handleAnnotation(final AtmosphereFramework framework, final Class<? extends Annotation> annotation, final Class<?> discoveredClass) { logger.info("Found Annotation in {} being scanned: {}", discoveredClass, annotation); framework.annotationScanned(true); Class<? extends Processor> a = annotations.get(annotation); if (a != null) { Processor p = processors.get(a); if (p == null) { try { p = framework.newClassInstance(Processor.class, a); } catch (Exception e) { logger.warn("Unable to create Processor {}", p); } processors.put(a, p); } p.handle(framework, discoveredClass); logger.trace("Annotation {} handled by {}", annotation, p.getClass().getName()); } else { logger.trace("Annotation {} unhandled", annotation); } return this; }