Типовые рамки уведомлений о событиях на основе аннотаций

В то время как простые документированные управляемые интерфейсом платформы уведомлений о событиях в Java существовали еще с докембрийских времен (например, java.beans.PropertyChangeSupport), для сред становится все более популярным использование аннотационных уведомлений о событиях.

Например, см.JBossCache 2.2, Класс слушателя имеет свои методы слушателя, аннотированные, а не соответствующие жесткому интерфейсу. Это довольно легко программировать и легче читать, поскольку вам не нужно писать пустые реализации обратных вызовов слушателей, которые вас не интересуют (и да, я знаю о суперклассах адаптера слушателя).

Вот пример из документации по 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");
   }

}

Проблема в том, что это гораздо более сложный процесс, пишущий платформу для поддержки такого рода вещей, из-за природы ее аннотации-отражения.

Итак, прежде чем я начну писать общую структуру, я надеялся, что кто-то уже сделал это. Кто-нибудь сталкивался с такой вещью?