From 426175c793c2ca036a6efcef7a43b828783efca7 Mon Sep 17 00:00:00 2001 From: Sebastian Sdorra Date: Wed, 15 May 2013 08:47:06 +0200 Subject: [PATCH] fix registration of synchronous event handlers --- .../java/sonia/scm/ScmEventBusModule.java | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java b/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java index 934df3088f..71e74aa20a 100644 --- a/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java +++ b/scm-webapp/src/main/java/sonia/scm/ScmEventBusModule.java @@ -46,6 +46,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import sonia.scm.event.ScmEventBus; +import sonia.scm.event.Subscriber; /** * @@ -80,16 +81,38 @@ public class ScmEventBusModule extends AbstractModule @Override public void afterInjection(Object object) { - if (logger.isTraceEnabled()) - { - logger.trace("register subscriber {}", object.getClass()); - } + Class clazz = object.getClass(); - ScmEventBus.getInstance().register(object); + logger.trace("register subscriber {}", clazz); + + ScmEventBus.getInstance().register(object, isAsync(clazz)); } }); } }); } + + //~--- get methods ---------------------------------------------------------- + + /** + * Method description + * + * + * @param clazz + * + * @return + */ + private boolean isAsync(Class clazz) + { + boolean async = true; + Subscriber subscriber = clazz.getAnnotation(Subscriber.class); + + if (subscriber != null) + { + async = subscriber.async(); + } + + return async; + } }