La mejor manera de combinar guava eventbus y AWT Event thread manager

Cuando tiene un bus de eventos asíncrono y dispara eventos, digamos dentro del modelo que queda atrapado en la interfaz de usuario, probablemente tenga el siguiente problema:

El controlador registrado se ejecuta en un subproceso de trabajo, pero todos los cambios de oscilación de la interfaz de usuario deben ejecutarse dentro del subproceso de evento AWT. Esto significa que necesita envolver todo el clode de su manejador enEventQueue.invokeLater(...).

Esto parece mucho código de placa de caldera. Me pregunto si hay una solución más inteligente para ese problema.

¿Qué pasa con una extensión del bus de eventos de guayaba que marca un controlador para la ejecución dentro de un hilo especial? Esto podría marcarse con una anotación, p. @@ExecuteWithinEDT:

class EventBusChangeRecorder {
  @Subscribe @ExecuteWithinEDT void recordCustomerChange(ChangeEvent e) {
    recordChange(e.getChange());
  }
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta