Marcos genéricos de notificación de eventos basados ​​en anotaciones

Si bien los marcos de notificación de eventos simples y controlados por interfaz en Java han existido desde tiempos anteriores al Cámbrico (por ejemplo, java.beans.PropertyChangeSupport), se está volviendo cada vez más popular para los marcos que utilizan la notificación de eventos basados ​​en anotaciones.

Para un ejemplo, verJBossCache 2.2. La clase de oyente tiene sus métodos de escucha anotados, en lugar de ajustarse a una interfaz rígida. Esto es más fácil de programar y más fácil de leer, ya que no tiene que escribir implementaciones vacías de devoluciones de llamada de escucha en las que no está interesado (y sí, sé acerca de las superclases de adaptador de escucha).

Aquí hay una muestra de los documentos de JBossCache:

@CacheListener
public class MyListener {
   @CacheStarted
   @CacheStopped
   public void cacheStartStopEvent(Event e) {
         switch (e.getType()) {
            case Event.Type.CACHE_STARTED:
               System.out.println("Cache has started");
               break;    
            case Event.Type.CACHE_STOPPED:    
               System.out.println("Cache has stopped");
               break;    
         }
   }    

   @NodeCreated    
   @NodeRemoved
   @NodeVisited
   @NodeModified
   @NodeMoved
   public void logNodeEvent(NodeEvent ne) {
         log("An event on node " + ne.getFqn() + " has occured");
   }

}

El problema con esto, es que es mucho más un proceso involucrado que escribe el marco para apoyar este tipo de cosas, debido a la naturaleza de la anotación-reflexión.

Por lo tanto, antes de que me vaya por el camino de escribir un marco genérico, esperaba que alguien ya lo hubiera hecho. ¿Alguien ha encontrado tal cosa?

Respuestas a la pregunta(8)

Su respuesta a la pregunta